diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java index f801fae6..f4626640 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java @@ -58,7 +58,7 @@ public void detectAndSendChanges() { // check if parent item is gone ItemStack parentItem = inventory.getParentItem(); if (parentItem != null) { - if (player.getCurrentEquippedItem() != parentItem) { + if (!ItemStack.areItemStacksEqual(player.getCurrentEquippedItem(), parentItem)) { player.closeScreen(); return; } diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java index d7be9f10..8e69758a 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java @@ -80,9 +80,7 @@ public int getInventoryStackLimit() { } @Override - public void markDirty() { - saveToNBT(containerStack.stackTagCompound); - } + public void markDirty() {} @Override public boolean isUseableByPlayer(EntityPlayer player) { diff --git a/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java index f29796c4..cfc9048a 100644 --- a/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java @@ -194,10 +194,15 @@ private boolean placeBackpack(ItemStack stack, EntityPlayer player, World world, boolean from) { if (stack.stackSize == 0 || !player.canPlayerEdit(x, y, z, side, stack)) return false; if (!stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound()); + if (!stack.stackTagCompound.hasKey(TAG_TYPE)) { stack.stackTagCompound.setByte(TAG_TYPE, BackpackTypes.getMeta(BackpackTypes.STANDARD)); } + if (!stack.stackTagCompound.hasKey(TAG_INVENTORY)) { + stack.stackTagCompound.setTag(TAG_INVENTORY, new NBTTagList()); + } + // world.spawnEntityInWorld(new EntityLightningBolt(world, x, y, z)); BlockAdventureBackpack backpack = ModBlocks.blockBackpack; diff --git a/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java b/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java index f2698021..47f9b1df 100644 --- a/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java +++ b/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java @@ -105,6 +105,7 @@ private static void createWearableInventory(ItemStack stack) { public static ItemStack createBackpackStack(BackpackTypes type) { ItemStack backpackStack = new ItemStack(ModItems.adventureBackpack, 1, BackpackTypes.getMeta(type)); setBackpackType(backpackStack, type); + createWearableInventory(backpackStack); return backpackStack; }