From 17a11ce56aa87e87e68ba04a11e1620586d0b219 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sat, 8 Feb 2025 17:27:49 +0100 Subject: [PATCH] fixed exception on too many items in a slot --- gradle.properties | 2 +- .../blockentity/ItemHoarderBlockEntity.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 4d16e4d..781bd00 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ yarn_mappings=1.21.4+build.1 loader_version=0.16.9 # Mod Properties -mod_version=1.21.4.4 +mod_version=1.21.4.5 maven_group=de.jottyfan.quickiemod archives_base_name=quickiemod diff --git a/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java b/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java index 6376f66..a9a7b13 100644 --- a/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java +++ b/src/main/java/de/jottyfan/quickiemod/blockentity/ItemHoarderBlockEntity.java @@ -30,7 +30,6 @@ import net.minecraft.world.World; */ public class ItemHoarderBlockEntity extends LootableContainerBlockEntity { - private DefaultedList stacks; private float suckradius; @@ -44,9 +43,17 @@ public class ItemHoarderBlockEntity extends LootableContainerBlockEntity { public final static boolean setStackToSlots(ItemStack stack, List stacks) { for (ItemStack slot : stacks) { + Integer sum = stack.getCount() + slot.getCount(); if (slot.getItem().equals(stack.getItem())) { - slot.increment(stack.getCount()); - return true; + if (slot.getItem().getMaxCount() >= sum) { + slot.increment(stack.getCount()); + return true; + } else { + Integer transferSize = 64 - stack.getCount(); + stack.setCount(stack.getCount() - transferSize); + slot.setCount(64); + // to not return sth. here so that the next loop will sum up the result + } } } // if not found, seek for an empty stack instead for (ItemStack slot : stacks) {