From dd80927b4647db21cb3d3ec3882292969606ea00 Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Fri, 30 Apr 2021 19:03:46 +0200 Subject: [PATCH] VirtualInventory#canHold --- .../invui/virtualinventory/VirtualInventory.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java index 49875c2..7a51dee 100644 --- a/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java +++ b/src/main/java/de/studiocode/invui/virtualinventory/VirtualInventory.java @@ -420,6 +420,19 @@ public class VirtualInventory implements ConfigurationSerializable { return result; } + /** + * Checks if the {@link VirtualInventory} could theoretically hold the + * provided {@link ItemStack}. + * + * @param itemStacks The {@link ItemStack}s + * @return If the {@link VirtualInventory} can fit all these items + */ + public boolean canHold(List itemStacks) { + if (itemStacks.size() == 0) return true; + else if (itemStacks.size() == 1) return simulateAdd(itemStacks.get(0)) == 0; + else return Arrays.stream(simulateMultiAdd(itemStacks)).allMatch(i -> i == 0); + } + public int collectToCursor(@Nullable UpdateReason updateReason, ItemStack itemStack) { int amount = itemStack.getAmount(); int maxStackSize = itemStack.getMaxStackSize();