diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/event/CommonEvents.java b/src/main/java/de/ellpeck/actuallyadditions/mod/event/CommonEvents.java index 86929998a..5562803c4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/event/CommonEvents.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/event/CommonEvents.java @@ -19,6 +19,7 @@ import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.items.DrillItem; import de.ellpeck.actuallyadditions.mod.items.Sack; import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper; +import de.ellpeck.actuallyadditions.mod.sack.SackManager; import de.ellpeck.actuallyadditions.mod.tile.FilterSettings; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA; import de.ellpeck.actuallyadditions.mod.util.ItemUtil; @@ -72,8 +73,12 @@ public class CommonEvents { boolean changed = false; boolean isVoid = ((Sack) invStack.getItem()).isVoid; - ItemStackHandlerAA inv = new ItemStackHandlerAA(28); //TODO whats going on here - DrillItem.loadSlotsFromNBT(inv, invStack); + var optHandler = SackManager.get().getHandler(invStack); + + if (optHandler.isEmpty()) + continue; + + ItemStackHandlerAA inv = optHandler.get(); FilterSettings filter = new FilterSettings(4, false, false); filter.readFromNBT(invStack.getOrCreateTag(), "Filter"); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/sack/SackManager.java b/src/main/java/de/ellpeck/actuallyadditions/mod/sack/SackManager.java index 075c1fd81..30d3608ba 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/sack/SackManager.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/sack/SackManager.java @@ -1,6 +1,7 @@ package de.ellpeck.actuallyadditions.mod.sack; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.world.item.ItemStack; @@ -70,6 +71,16 @@ public class SackManager extends SavedData { return Optional.empty(); } + public Optional getHandler(ItemStack stack) { + if (stack.getOrCreateTag().contains("UUID")) { + UUID uuid = stack.getTag().getUUID("UUID"); + if (data.containsKey(uuid)) + return Optional.of(data.get(uuid).getSpecialHandler()); + } + + return Optional.empty(); + } + public static SackManager load(CompoundTag nbt) { if (nbt.contains("Sacks")) { ListTag list = nbt.getList("Sacks", CompoundTag.TAG_COMPOUND);