From f87cf547ac6fedde32f050820c71f84ecabc64d6 Mon Sep 17 00:00:00 2001 From: Arcaratus Date: Fri, 10 Jul 2015 16:51:00 -0400 Subject: [PATCH 1/2] Fix #381 --- .../items/sigil/holding/SigilOfHolding.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java index 7740a287..7b3aea15 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java @@ -156,6 +156,36 @@ public class SigilOfHolding extends EnergyItems return par1ItemStack; } + @Override + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) + { + if (checkAndSetItemOwner(stack, player)) + { + int currentSlot = getCurrentItem(stack); + ItemStack[] inv = getInternalInventory(stack); + + if (inv == null) + { + return false; + } + + ItemStack itemUsed = inv[currentSlot]; + + if (itemUsed == null) + { + return false; + } + + boolean bool = itemUsed.getItem().onItemUseFirst(stack, player, world, x, y, z, side, hitX, hitY, hitZ); + + saveInventory(stack, inv); + + return bool; + } + + return false; + } + public static int next(int mode) { int index = mode + 1; From 0d9db7def19b85053425c8ca18f1fc067a799ead Mon Sep 17 00:00:00 2001 From: Arcaratus Date: Fri, 10 Jul 2015 16:51:00 -0400 Subject: [PATCH 2/2] Fix #381 --- .../items/sigil/holding/SigilOfHolding.java | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java index 7740a287..2ad813c0 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/sigil/holding/SigilOfHolding.java @@ -19,7 +19,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class SigilOfHolding extends EnergyItems { - private static int invSize = 4; + private static int invSize = 5; private static final String NBT_CURRENT_SIGIL = "CurrentSigil"; @@ -83,7 +83,7 @@ public class SigilOfHolding extends EnergyItems par3List.add(StatCollector.translateToLocal("tooltip.item.currentitem") + " " + item.getDisplayName()); } - for (int i = 0; i <= invSize; i++) + for (int i = 0; i < invSize; i++) { if (inv[i] != null) { @@ -156,11 +156,41 @@ public class SigilOfHolding extends EnergyItems return par1ItemStack; } + @Override + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) + { + if (checkAndSetItemOwner(stack, player)) + { + int currentSlot = getCurrentItem(stack); + ItemStack[] inv = getInternalInventory(stack); + + if (inv == null) + { + return false; + } + + ItemStack itemUsed = inv[currentSlot]; + + if (itemUsed == null) + { + return false; + } + + boolean bool = itemUsed.getItem().onItemUseFirst(stack, player, world, x, y, z, side, hitX, hitY, hitZ); + + saveInventory(stack, inv); + + return bool; + } + + return false; + } + public static int next(int mode) { int index = mode + 1; - if (index >= invSize + 1) + if (index >= invSize) { index = 0; } @@ -240,7 +270,7 @@ public class SigilOfHolding extends EnergyItems NBTTagCompound tag = tagList.getCompoundTagAt(i); int slot = tag.getByte("Slot"); - if (slot >= 0 && slot <= invSize) + if (slot >= 0 && slot < invSize) { inv[slot] = ItemStack.loadItemStackFromNBT(tag); } @@ -260,7 +290,7 @@ public class SigilOfHolding extends EnergyItems NBTTagList itemList = new NBTTagList(); - for (int i = 0; i <= invSize; i++) + for (int i = 0; i < invSize; i++) { if (inventory[i] != null) { @@ -301,7 +331,7 @@ public class SigilOfHolding extends EnergyItems return; } - for (int i = 0; i <= invSize; i++) + for (int i = 0; i < invSize; i++) { if (inv[i] == null) {