Files
CatServer/patches/net/minecraft/inventory/SlotFurnaceOutput.java.patch
2019-02-24 22:29:41 +08:00

41 lines
1.7 KiB
Diff

--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
+++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java
@@ -4,7 +4,10 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
+import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.math.MathHelper;
+import org.bukkit.entity.Player;
+import org.bukkit.event.inventory.FurnaceExtractEvent;
public class SlotFurnaceOutput extends Slot
{
@@ -70,6 +73,19 @@
i = j;
}
+ if (this.inventory instanceof TileEntityFurnace) { // CatServer - mods bypass
+ // CraftBukkit - fire FurnaceExtractEvent
+ Player player = (Player) this.player.getBukkitEntity();
+ TileEntityFurnace furnace = ((TileEntityFurnace) this.inventory);
+ org.bukkit.block.Block block = this.player.world.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.player.world.getServer().getPluginManager().callEvent(event);
+ i = event.getExpToDrop();
+ }
+ }
+
while (i > 0)
{
int k = EntityXPOrb.getXPSplit(i);
@@ -79,5 +95,6 @@
}
this.removeCount = 0;
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(player, stack);
}
}