All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.network.process.processor.ItemFrameDropItemProcessor Maven / Gradle / Ivy

package cn.nukkit.network.process.processor;

import cn.nukkit.PlayerHandle;
import cn.nukkit.blockentity.BlockEntity;
import cn.nukkit.blockentity.BlockEntityItemFrame;
import cn.nukkit.math.Vector3;
import cn.nukkit.network.process.DataPacketProcessor;
import cn.nukkit.network.protocol.ItemFrameDropItemPacket;
import cn.nukkit.network.protocol.ProtocolInfo;
import org.jetbrains.annotations.NotNull;

public class ItemFrameDropItemProcessor extends DataPacketProcessor {

    // PowerNukkit Note: This packed is not being sent anymore since 1.16.210
    @Override
    public void handle(@NotNull PlayerHandle playerHandle, @NotNull ItemFrameDropItemPacket pk) {
        Vector3 vector3 = playerHandle.player.temporalVector.setComponents(pk.x, pk.y, pk.z);
        if (vector3.distanceSquared(playerHandle.player) < 1000) {
            BlockEntity itemFrame = playerHandle.player.level.getBlockEntity(vector3);
            if (itemFrame instanceof BlockEntityItemFrame) {
                ((BlockEntityItemFrame) itemFrame).dropItem(playerHandle.player);
            }
        }
    }

    @Override
    public int getPacketId() {
        return ProtocolInfo.toNewProtocolID(ProtocolInfo.ITEM_FRAME_DROP_ITEM_PACKET);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy