--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnace.java +++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnace.java @@ -9,6 +9,12 @@ import net.minecraft.stats.AchievementList; import net.minecraft.util.MathHelper; +// CraftBukkit start +import net.minecraft.tileentity.TileEntityFurnace; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.FurnaceExtractEvent; +// CraftBukkit end + public class SlotFurnace extends Slot { private EntityPlayer thePlayer; @@ -74,6 +80,20 @@ i = j; } + // Cauldron start - validate inventory before attempting to cast it + if (this.inventory instanceof TileEntityFurnace) + { + // CraftBukkit start + Player player = (Player) thePlayer.getBukkitEntity(); + TileEntityFurnace furnace = ((TileEntityFurnace) this.inventory); + org.bukkit.block.Block block = thePlayer.worldObj.getWorld().getBlockAt(furnace.xCoord, furnace.yCoord, furnace.zCoord); + FurnaceExtractEvent event = new FurnaceExtractEvent(player, block, org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(p_75208_1_.getItem()), p_75208_1_.stackSize, i); + thePlayer.worldObj.getServer().getPluginManager().callEvent(event); + i = event.getExpToDrop(); + // CraftBukkit end + } + // Cauldron end + while (i > 0) { j = EntityXPOrb.getXPSplit(i);