Fire off PlayerDestroyItemEvent for crafting contianer items that get damaged to much. PR #183
This commit is contained in:
parent
27e4c3c3d5
commit
c20b71eb20
2 changed files with 15 additions and 3 deletions
|
@ -17,6 +17,7 @@ org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
|
|||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
|
||||
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore
|
||||
|
|
|
@ -1,18 +1,29 @@
|
|||
--- ../src_base/common/net/minecraft/src/SlotCrafting.java
|
||||
+++ ../src_work/common/net/minecraft/src/SlotCrafting.java
|
||||
@@ -1,4 +1,6 @@
|
||||
@@ -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;
|
||||
|
||||
@@ -122,7 +124,7 @@
|
||||
@@ -122,9 +126,15 @@
|
||||
|
||||
if (var3.getItem().hasContainerItem())
|
||||
{
|
||||
- ItemStack var4 = new ItemStack(var3.getItem().getContainerItem());
|
||||
+ ItemStack var4 = var3.getItem().getContainerItemStack(var3);
|
||||
+
|
||||
+ if (var4.isItemStackDamageable() && var4.getItemDamage() > var4.getMaxDamage())
|
||||
+ {
|
||||
+ MinecraftForge.EVENT_BUS.post(new PlayerDestroyItemEvent(thePlayer, var4));
|
||||
+ var4 = null;
|
||||
+ }
|
||||
|
||||
if (!var3.getItem().doesContainerItemLeaveCraftingGrid(var3) || !this.thePlayer.inventory.addItemStackToInventory(var4))
|
||||
- if (!var3.getItem().doesContainerItemLeaveCraftingGrid(var3) || !this.thePlayer.inventory.addItemStackToInventory(var4))
|
||||
+ if (var4 != null && (!var3.getItem().doesContainerItemLeaveCraftingGrid(var3) || !this.thePlayer.inventory.addItemStackToInventory(var4)))
|
||||
{
|
||||
if (this.craftMatrix.getStackInSlot(var2) == null)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue