From 32b798becc2f025e6812cf6eb84ed8b4fac049b5 Mon Sep 17 00:00:00 2001 From: Darkere Date: Sat, 28 May 2022 18:03:10 +0200 Subject: [PATCH] fixed storage monitor insertion and non-exact mode --- CHANGELOG.md | 2 ++ .../network/node/StorageMonitorNetworkNode.java | 16 ++++++++++------ .../block/StorageMonitorBlock.java | 6 +++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7977e9171..5ab3d14a2 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixed - Fixed Destructor dupe bug +- Fixed being unable to insert items into the Storage Monitor +- Fixed Storage Monitor not showing all matching items in non-exact mode ### Changed diff --git a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java index 02d1eb06e..2a6d0b80b 100644 --- a/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java +++ b/src/main/java/com/refinedmods/refinedstorage/apiimpl/network/node/StorageMonitorNetworkNode.java @@ -5,16 +5,16 @@ import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.apiimpl.API; -import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; -import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; -import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.blockentity.StorageMonitorBlockEntity; import com.refinedmods.refinedstorage.blockentity.config.IComparable; import com.refinedmods.refinedstorage.blockentity.config.IType; import com.refinedmods.refinedstorage.blockentity.config.RedstoneMode; +import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; +import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; +import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; +import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.StackUtils; -import com.refinedmods.refinedstorage.util.LevelUtils; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -299,9 +299,13 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl return 0; } - ItemStack stored = network.getItemStorageCache().getList().get(toCheck, compare); + if (compare == IComparer.COMPARE_NBT) { + ItemStack stored = network.getItemStorageCache().getList().get(toCheck, compare); + return stored != null ? stored.getCount() : 0; + } else { + return network.getItemStorageCache().getList().getStacks(toCheck).stream().mapToInt(entry -> entry.getStack().getCount()).sum(); + } - return stored != null ? stored.getCount() : 0; } else if (getType() == IType.FLUIDS) { FluidStack toCheck = fluidFilter.getFluid(0); diff --git a/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java b/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java index 051f3a508..74b4e2722 100644 --- a/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java +++ b/src/main/java/com/refinedmods/refinedstorage/block/StorageMonitorBlock.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage.block; import com.refinedmods.refinedstorage.apiimpl.network.node.StorageMonitorNetworkNode; +import com.refinedmods.refinedstorage.blockentity.StorageMonitorBlockEntity; import com.refinedmods.refinedstorage.container.StorageMonitorContainerMenu; import com.refinedmods.refinedstorage.container.factory.BlockEntityMenuProvider; -import com.refinedmods.refinedstorage.blockentity.StorageMonitorBlockEntity; import com.refinedmods.refinedstorage.util.BlockUtils; -import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.LevelUtils; +import com.refinedmods.refinedstorage.util.NetworkUtils; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.server.level.ServerPlayer; @@ -40,7 +40,7 @@ public class StorageMonitorBlock extends NetworkNodeBlock { @SuppressWarnings("deprecation") public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (!level.isClientSide) { - ItemStack held = player.containerMenu.getCarried(); + ItemStack held = player.getItemInHand(handIn); if (player.isCrouching()) { return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui(