Files
CatServer/patches/net/minecraft/inventory/SlotFurnaceOutput.java.patch
2018-09-08 11:39:03 +08:00

42 lines
1.8 KiB
Diff

--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
+++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
@@ -1,12 +1,17 @@
package net.minecraft.inventory;
import javax.annotation.Nullable;
+
+import org.bukkit.entity.Player;
+import org.bukkit.event.inventory.FurnaceExtractEvent;
+
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.stats.AchievementList;
+import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.math.MathHelper;
public class SlotFurnaceOutput extends Slot
@@ -72,6 +77,20 @@
i = j;
}
+ if (this.inventory instanceof TileEntityFurnace) { // CatServer - mods bypass
+ // CraftBukkit start - fire FurnaceExtractEvent
+ Player player = (Player) this.thePlayer.getBukkitEntity();
+ TileEntityFurnace furnace = ((TileEntityFurnace) this.inventory);
+ org.bukkit.block.Block block = this.thePlayer.worldObj.getWorld().getBlockAt(furnace.getPos().getX(), furnace.getPos().getY(), furnace.getPos().getZ());
+
+ if (removeCount != 0) {
+ FurnaceExtractEvent event = new FurnaceExtractEvent(player, block, org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(stack.getItem()), removeCount, i);
+ this.thePlayer.worldObj.getServer().getPluginManager().callEvent(event);
+ i = event.getExpToDrop();
+ }
+ // CraftBukkit end
+ }
+
while (i > 0)
{
int k = EntityXPOrb.getXPSplit(i);