From fd35c432d8bbc746f02d284e80bbd580473ee90e Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 28 Jan 2020 17:56:38 -0500 Subject: [PATCH] fixed major bug with chest loot sim --- .../seedcracker/cracker/ChestLootData.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/kaptainwutax/seedcracker/cracker/ChestLootData.java b/src/main/java/kaptainwutax/seedcracker/cracker/ChestLootData.java index 06ae207..c2f0330 100644 --- a/src/main/java/kaptainwutax/seedcracker/cracker/ChestLootData.java +++ b/src/main/java/kaptainwutax/seedcracker/cracker/ChestLootData.java @@ -40,18 +40,23 @@ public class ChestLootData implements ISeedData { .put(LootContextParameters.POSITION, new BlockPos(0, 0, 0)).build(LootContextTypes.CHEST); List itemStacks = this.lootTable.getDrops(lootContext); + Map lootItems = new HashMap<>(); + + itemStacks.forEach(itemStack -> { + lootItems.put(itemStack.getItem(), lootItems.getOrDefault(itemStack.getItem(), 0) + itemStack.getCount()); + }); Set foundItems = new HashSet<>(); - for(ItemStack itemStack: itemStacks) { - Item item = itemStack.getItem(); + for(Map.Entry lootItem: lootItems.entrySet()) { + Item item = lootItem.getKey(); List stacks = this.stacksMap.get(item); if(stacks == null)continue; boolean matches = true; for(Stack stack: stacks) { - if(!stack.test(itemStack.getCount())) { + if(!stack.test(lootItem.getValue())) { matches = false; break; }