Files
MinecraftForge/patches/common/net/minecraft/src/SlotCrafting.java.patch
T

30 lines
1.4 KiB
Diff

--- ../src_base/common/net/minecraft/src/SlotCrafting.java
+++ ../src_work/common/net/minecraft/src/SlotCrafting.java
@@ -1,4 +1,8 @@
package net.minecraft.src;
+
+import net.minecraftforge.common.ForgeHooks;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -119,9 +123,15 @@
if (var4.getItem().hasContainerItem())
{
- ItemStack var5 = new ItemStack(var4.getItem().getContainerItem());
+ ItemStack var5 = var4.getItem().getContainerItemStack(var4);
+
+ if (var5.isItemStackDamageable() && var5.getItemDamage() > var5.getMaxDamage())
+ {
+ MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(thePlayer, var5));
+ var4 = null;
+ }
- if (!var4.getItem().doesContainerItemLeaveCraftingGrid(var4) || !this.thePlayer.inventory.addItemStackToInventory(var5))
+ if (var5 != null && (!var4.getItem().doesContainerItemLeaveCraftingGrid(var4) || !this.thePlayer.inventory.addItemStackToInventory(var5)))
{
if (this.craftMatrix.getStackInSlot(var3) == null)
{