From 39b994f951f89a30d14fbdbf56ac58355fe3ca8b Mon Sep 17 00:00:00 2001 From: zyxkad Date: Thu, 25 Apr 2024 16:31:38 -0600 Subject: [PATCH 1/3] add slot field to inventoryManager.getItemInHand close IntelligenceModding/Advanced-Peripherals-Features#67 --- .../computercraft/peripheral/InventoryManagerPeripheral.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java b/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java index 190ba5aa7..922db0bda 100644 --- a/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java +++ b/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java @@ -189,7 +189,7 @@ public final int getFreeSlot() throws LuaException { @LuaFunction(mainThread = true) public final Map getItemInHand() throws LuaException { - return LuaConverter.itemStackToObject(getOwnerPlayer().getMainHandItem()); + return LuaConverter.stackToObjectWithSlot(getOwnerPlayer().getMainHandItem(), getOwnerPlayer().getInventory().selected); } @LuaFunction(mainThread = true) From 62e55839b1d90a75aa52af2d5cb1951404dd34f3 Mon Sep 17 00:00:00 2001 From: zyxkad Date: Sat, 27 Apr 2024 07:05:42 -0600 Subject: [PATCH 2/3] make inventoryManager.getItem return nil instead of empty table --- .../peripheral/InventoryManagerPeripheral.java | 9 +++++++-- .../common/util/LuaConverter.java | 13 ++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java b/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java index 922db0bda..6f93e56cf 100644 --- a/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java +++ b/src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java @@ -23,8 +23,8 @@ import net.minecraftforge.items.wrapper.PlayerArmorInvWrapper; import net.minecraftforge.items.wrapper.PlayerInvWrapper; import net.minecraftforge.items.wrapper.PlayerOffhandInvWrapper; -import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -187,9 +187,14 @@ public final int getFreeSlot() throws LuaException { return getOwnerPlayer().getInventory().getFreeSlot(); } + @LuaFunction(mainThread = true) + public final int getHandSlot() throws LuaException { + return getOwnerPlayer().getInventory().selected; + } + @LuaFunction(mainThread = true) public final Map getItemInHand() throws LuaException { - return LuaConverter.stackToObjectWithSlot(getOwnerPlayer().getMainHandItem(), getOwnerPlayer().getInventory().selected); + return LuaConverter.itemStackToObject(getOwnerPlayer().getMainHandItem(), getOwnerPlayer().getInventory().selected); } @LuaFunction(mainThread = true) diff --git a/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java b/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java index 08b24136d..e23c9242f 100644 --- a/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java +++ b/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java @@ -19,8 +19,9 @@ import net.minecraftforge.common.IForgeShearable; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidType; -import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -104,8 +105,11 @@ public static Object posToObject(BlockPos pos) { return map; } + @Nullable public static Map itemStackToObject(@NotNull ItemStack stack) { - if (stack.isEmpty()) return new HashMap<>(); + if (stack.isEmpty()) { + return null; + } Map map = itemToObject(stack.getItem()); CompoundTag nbt = stack.copy().getOrCreateTag(); map.put("count", stack.getCount()); @@ -141,8 +145,11 @@ public static Map itemStackToObject(@NotNull ItemStack itemStack * @return a Map containing proper item stack details * @see InventoryManagerPeripheral#getItems() */ + @Nullable public static Map stackToObjectWithSlot(@NotNull ItemStack stack, int slot) { - if (stack.isEmpty()) return new HashMap<>(); + if (stack.isEmpty()) { + return null; + } Map map = itemStackToObject(stack); map.put("slot", slot); return map; From 5062b4d745a299374473af17c332919833876377 Mon Sep 17 00:00:00 2001 From: zyxkad Date: Sat, 27 Apr 2024 08:01:05 -0600 Subject: [PATCH 3/3] change slot index starts from 1 fix #587 --- .../srendi/advancedperipherals/common/util/LuaConverter.java | 2 +- .../advancedperipherals/common/util/inventory/ItemFilter.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java b/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java index e23c9242f..86003d68a 100644 --- a/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java +++ b/src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java @@ -151,7 +151,7 @@ public static Map stackToObjectWithSlot(@NotNull ItemStack stack return null; } Map map = itemStackToObject(stack); - map.put("slot", slot); + map.put("slot", slot + 1); return map; } diff --git a/src/main/java/de/srendi/advancedperipherals/common/util/inventory/ItemFilter.java b/src/main/java/de/srendi/advancedperipherals/common/util/inventory/ItemFilter.java index cfc9d4892..f44bb19f9 100644 --- a/src/main/java/de/srendi/advancedperipherals/common/util/inventory/ItemFilter.java +++ b/src/main/java/de/srendi/advancedperipherals/common/util/inventory/ItemFilter.java @@ -69,14 +69,14 @@ public static Pair parse(Map item) { } if (item.containsKey("fromSlot")) { try { - itemFilter.fromSlot = TableHelper.getIntField(item, "fromSlot"); + itemFilter.fromSlot = TableHelper.getIntField(item, "fromSlot") - 1; } catch (LuaException luaException) { return Pair.of(null, "NO_VALID_FROMSLOT"); } } if (item.containsKey("toSlot")) { try { - itemFilter.toSlot = TableHelper.getIntField(item, "toSlot"); + itemFilter.toSlot = TableHelper.getIntField(item, "toSlot") - 1; } catch (LuaException luaException) { return Pair.of(null, "NO_VALID_TOSLOT"); }