diff options
author | Celtic Minstrel <celtic.minstrel.ca@some.place> | 2012-03-18 12:25:39 -0400 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-20 21:18:14 -0400 |
commit | 43001ca2a8bbb566792496a9ce475f3ab4751135 (patch) | |
tree | 771c14bd13afe3c287200b00c641c0b7a6a99d0f | |
parent | 93732e21bc1b6de00438f2b42aaeb8251ad5fc71 (diff) | |
download | craftbukkit-43001ca2a8bbb566792496a9ce475f3ab4751135.tar craftbukkit-43001ca2a8bbb566792496a9ce475f3ab4751135.tar.gz craftbukkit-43001ca2a8bbb566792496a9ce475f3ab4751135.tar.lz craftbukkit-43001ca2a8bbb566792496a9ce475f3ab4751135.tar.xz craftbukkit-43001ca2a8bbb566792496a9ce475f3ab4751135.zip |
[Bleeding] Only fire CraftItemEvent if there's actually an item there to craft (ie, don't fire it for a click on an empty result slot). Fixes BUKKIT-1250
-rw-r--r-- | src/main/java/net/minecraft/server/NetServerHandler.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index 58724a31..494a7028 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -19,6 +19,7 @@ import org.bukkit.Location; import org.bukkit.command.CommandException; import org.bukkit.conversations.Conversable; import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.inventory.CraftInventoryCustom; import org.bukkit.craftbukkit.inventory.CraftInventoryView; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.block.CraftBlock; @@ -47,6 +48,7 @@ import org.bukkit.event.Event.Result; import org.bukkit.event.inventory.*; import org.bukkit.event.inventory.InventoryType.SlotType; import org.bukkit.inventory.CraftingInventory; +import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.Recipe; // CraftBukkit end @@ -1146,12 +1148,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener { InventoryView inventory = this.player.activeContainer.getBukkitView(); SlotType type = CraftInventoryView.getSlotType(inventory, packet102windowclick.slot); - InventoryClickEvent event; - if (packet102windowclick.slot == 0 && inventory.getTopInventory() instanceof CraftingInventory) { - Recipe recipe = ((CraftingInventory) inventory.getTopInventory()).getRecipe(); - event = new CraftItemEvent(recipe, inventory, type, packet102windowclick.slot, packet102windowclick.button != 0, packet102windowclick.shift); - } else { - event = new InventoryClickEvent(inventory, type, packet102windowclick.slot, packet102windowclick.button != 0, packet102windowclick.shift); + InventoryClickEvent event = new InventoryClickEvent(inventory, type, packet102windowclick.slot, packet102windowclick.button != 0, packet102windowclick.shift); + Inventory top = inventory.getTopInventory(); + if (packet102windowclick.slot == 0 && top instanceof CraftingInventory) { + Recipe recipe = ((CraftingInventory) top).getRecipe(); + if (recipe != null) { + event = new CraftItemEvent(recipe, inventory, type, packet102windowclick.slot, packet102windowclick.button != 0, packet102windowclick.shift); + } } server.getPluginManager().callEvent(event); |