Skip to content

Commit a061c0d

Browse files
authored
Prevent NPE from querying toolbelt before capability initialization (#2721)
1 parent 8e9efb7 commit a061c0d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import net.minecraftforge.fml.relauncher.Side;
4444
import net.minecraftforge.fml.relauncher.SideOnly;
4545
import net.minecraftforge.items.CapabilityItemHandler;
46+
import net.minecraftforge.items.IItemHandler;
4647
import net.minecraftforge.items.ItemStackHandler;
4748
import net.minecraftforge.oredict.OreDictionary;
4849
import net.minecraftforge.oredict.OreIngredient;
@@ -410,7 +411,9 @@ public boolean supportsTool(ItemStack stack, ItemStack tool) {
410411
}
411412

412413
private ToolStackHandler getHandler(ItemStack stack) {
413-
return (ToolStackHandler) stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
414+
IItemHandler handler = stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
415+
if (handler instanceof ToolStackHandler h) return h;
416+
else return FALLBACK;
414417
}
415418

416419
@Override
@@ -601,6 +604,8 @@ public void readNBTShareTag(ItemStack stack, NBTTagCompound nbt) {
601604
stack.setTagCompound(nbt == null ? null : (nbt.hasKey("NBT") ? nbt.getCompoundTag("NBT") : null));
602605
}
603606

607+
protected static final ToolStackHandler FALLBACK = new ToolStackHandler(0);
608+
604609
protected static class ToolStackHandler extends ItemStackHandler {
605610

606611
private static final Set<String> EMPTY = ImmutableSet.of();

0 commit comments

Comments
 (0)