Skip to content

Commit cc51a3d

Browse files
committed
make inventoryManager.getItem return nil instead of empty table
1 parent 029e353 commit cc51a3d

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/InventoryManagerPeripheral.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import net.minecraftforge.items.wrapper.PlayerArmorInvWrapper;
2424
import net.minecraftforge.items.wrapper.PlayerInvWrapper;
2525
import net.minecraftforge.items.wrapper.PlayerOffhandInvWrapper;
26-
import org.jetbrains.annotations.NotNull;
2726

27+
import org.jetbrains.annotations.NotNull;
2828
import java.util.ArrayList;
2929
import java.util.List;
3030
import java.util.Map;
@@ -187,6 +187,11 @@ public final int getFreeSlot() throws LuaException {
187187
return getOwnerPlayer().getInventory().getFreeSlot();
188188
}
189189

190+
@LuaFunction(mainThread = true)
191+
public final int getHandSlot() throws LuaException {
192+
return getOwnerPlayer().getInventory().selected;
193+
}
194+
190195
@LuaFunction(mainThread = true)
191196
public final Map<String, Object> getItemInHand() throws LuaException {
192197
return LuaConverter.stackToObjectWithSlot(getOwnerPlayer().getMainHandItem(), getOwnerPlayer().getInventory().selected);

src/main/java/de/srendi/advancedperipherals/common/util/LuaConverter.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
import net.minecraft.world.item.ItemStack;
1616
import net.minecraft.world.level.block.state.properties.Property;
1717
import net.minecraftforge.common.IForgeShearable;
18-
import org.jetbrains.annotations.NotNull;
1918

19+
import org.jetbrains.annotations.NotNull;
20+
import org.jetbrains.annotations.Nullable;
2021
import java.util.Collections;
2122
import java.util.HashMap;
2223
import java.util.List;
@@ -100,8 +101,11 @@ public static Object posToObject(BlockPos pos) {
100101
return map;
101102
}
102103

104+
@Nullable
103105
public static Map<String, Object> stackToObject(@NotNull ItemStack stack) {
104-
if (stack.isEmpty()) return new HashMap<>();
106+
if (stack.isEmpty()) {
107+
return null;
108+
}
105109
Map<String, Object> map = itemToObject(stack.getItem());
106110
CompoundTag nbt = stack.copy().getOrCreateTag();
107111
map.put("count", stack.getCount());
@@ -126,8 +130,11 @@ public static Map<String, Object> stackToObject(@NotNull ItemStack itemStack, in
126130
* @return a Map containing proper item stack details
127131
* @see InventoryManagerPeripheral#getItems()
128132
*/
133+
@Nullable
129134
public static Map<String, Object> stackToObjectWithSlot(@NotNull ItemStack stack, int slot) {
130-
if (stack.isEmpty()) return new HashMap<>();
135+
if (stack.isEmpty()) {
136+
return null;
137+
}
131138
Map<String, Object> map = stackToObject(stack);
132139
map.put("slot", slot);
133140
return map;

0 commit comments

Comments
 (0)