package dmillerw.menu.network.packet.server; import dmillerw.menu.helper.HeldHelper; import dmillerw.menu.network.packet.Packet; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EnumHand; import java.io.IOException; /** * @author dmillerw */ public class PacketUseItem extends Packet<PacketUseItem> { private int slot; public PacketUseItem() { } public PacketUseItem(int slot) { this.slot = slot; } @Override protected void handleClientSide(EntityPlayer player) { } @Override protected void handleServerSide(EntityPlayer player) { ItemStack slotStack = player.inventory.getStackInSlot(slot); ItemStack held = player.getHeldItemMainhand(); EnumHand hand = EnumHand.MAIN_HAND; EntityEquipmentSlot slot = HeldHelper.getSlotFromHand(hand); player.setItemStackToSlot(slot, slotStack); ItemStack heldItem = player.getHeldItem(hand); if (!heldItem.isEmpty()) { heldItem.useItemRightClick(player.world, player, hand).getResult(); } player.setItemStackToSlot(slot, held); ((EntityPlayerMP) player).sendContainerToPlayer(player.inventoryContainer); } @Override public void toBytes(PacketBuffer buffer) { buffer.writeInt(slot); } @Override public void fromBytes(PacketBuffer buffer) throws IOException { slot = buffer.readInt(); } }