From 7190bf39f5334a2bc44a49fcdc8a13f34f86547e Mon Sep 17 00:00:00 2001 From: lordIcocain Date: Fri, 11 Apr 2025 17:49:33 +0300 Subject: [PATCH] fix restock crash on out of range --- .../common/item/ItemBaseWirelessTerminal.java | 3 -- .../github/network/CPacketValueConfig.java | 49 ++++++++++--------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java b/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java index 32c18dc0..5d7b6500 100644 --- a/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java +++ b/src/main/java/com/glodblock/github/common/item/ItemBaseWirelessTerminal.java @@ -109,9 +109,6 @@ public class ItemBaseWirelessTerminal extends ToolWirelessTerminal implements II if (hasEnergyCard(stack)) { lines.add(" " + EnumChatFormatting.GOLD + getEnergyCard().getDisplayName()); } - if (hasEnergyCard(stack)) { - lines.add(" " + EnumChatFormatting.GOLD + getEnergyCard().getDisplayName()); - } } else { lines.add(NameConst.i18n(NameConst.TT_CTRL_FOR_MORE)); } diff --git a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java index 6b2ff8e0..e3fd345a 100644 --- a/src/main/java/com/glodblock/github/network/CPacketValueConfig.java +++ b/src/main/java/com/glodblock/github/network/CPacketValueConfig.java @@ -56,13 +56,17 @@ public class CPacketValueConfig implements IMessage { ((ContainerFluidLevelEmitter) container).setLevel(message.amount, player); } else if (container instanceof ContainerPlayer) { ImmutablePair result = Util.getUltraWirelessTerm(player); - if (result == null) return null; - if (message.valueIndex == 1) { - ItemBaseWirelessTerminal - .toggleRestockItemsMode(result.getRight(), !Util.isRestock(result.getRight())); - return null; - } else if (Util.isRestock(result.getRight())) { - restockItems(result.getRight(), result.getLeft(), player); + if (result != null) { + final ItemStack wirelessTerm = result.getRight(); + IGridNode gridNode = Util.getWirelessGrid(wirelessTerm); + if (gridNode != null && Util.rangeCheck(wirelessTerm, player, gridNode)) { + if (message.valueIndex == 1) { + ItemBaseWirelessTerminal + .toggleRestockItemsMode(result.getRight(), !Util.isRestock(result.getRight())); + } else if (Util.isRestock(result.getRight())) { + restockItems(result.getRight(), gridNode, result.getLeft(), player); + } + } } } } @@ -70,30 +74,29 @@ public class CPacketValueConfig implements IMessage { } @SuppressWarnings("unchecked") - private void restockItems(ItemStack terminal, int slot, EntityPlayer player) { - IGridNode iGridNode = Util.getWirelessGrid(terminal); - if (iGridNode == null) return; + private void restockItems(ItemStack terminal, IGridNode gridNode, int slot, EntityPlayer player) { WirelessCraftingTerminalInventory inv = new WirelessCraftingTerminalInventory( terminal, slot, - iGridNode, + gridNode, player); for (int i = 0; i < 9; i++) { ItemStack is = player.inventory.mainInventory[i]; - if (is == null) continue; - int maxSize = is.getMaxStackSize(); - if (is.stackSize == maxSize) continue; + if (is != null) { + int maxSize = is.getMaxStackSize(); + if (is.stackSize < maxSize) { + int fillSize = maxSize - is.stackSize; + IAEItemStack ias = AEApi.instance().storage().createItemStack(is); + ias.setStackSize(fillSize); - int fillSize = maxSize - is.stackSize; - - IAEItemStack ias = AEApi.instance().storage().createItemStack(is); - - ias.setStackSize(fillSize); - IAEItemStack extractedItem = (IAEItemStack) inv - .extractItems(ias, Actionable.MODULATE, inv.getActionSource()); - if (extractedItem == null) continue; - player.inventory.addItemStackToInventory(extractedItem.getItemStack()); + IAEItemStack extractedItem = (IAEItemStack) inv + .extractItems(ias, Actionable.MODULATE, inv.getActionSource()); + if (extractedItem != null) { + player.inventory.addItemStackToInventory(extractedItem.getItemStack()); + } + } + } } } }