summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCeltic Minstrel <celtic.minstrel.ca@some.place>2012-03-18 12:25:39 -0400
committerEvilSeph <evilseph@gmail.com>2012-03-20 21:18:14 -0400
commit43001ca2a8bbb566792496a9ce475f3ab4751135 (patch)
tree771c14bd13afe3c287200b00c641c0b7a6a99d0f /src
parent93732e21bc1b6de00438f2b42aaeb8251ad5fc71 (diff)
downloadcraftbukkit-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
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java15
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);