package net.glowstone.net.handler.play.player; import com.flowpowered.network.MessageHandler; import net.glowstone.block.ItemTable; import net.glowstone.block.itemtype.ItemType; import net.glowstone.entity.GlowPlayer; import net.glowstone.net.GlowSession; import net.glowstone.net.message.play.player.UseItemMessage; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; public class UseItemHandler implements MessageHandler<GlowSession, UseItemMessage> { @Override public void handle(GlowSession session, UseItemMessage message) { GlowPlayer player = session.getPlayer(); ItemStack holding = player.getItemInHand(); if (holding != null) { ItemType type = ItemTable.instance().getItem(holding.getType()); if (type != null) { if (type.canOnlyUseSelf()) { type.rightClickAir(player, holding); } else { if (holding.getType() == Material.WATER_BUCKET || holding.getType() == Material.LAVA_BUCKET) { holding.setType(Material.BUCKET); } } } } } }