From 0e8de038455d16dce9d0c261804dab1128edcb22 Mon Sep 17 00:00:00 2001 From: M-W-K <31022105+M-W-K@users.noreply.github.com> Date: Tue, 11 Feb 2025 19:33:01 -0700 Subject: [PATCH] fallback in case *someone* queries toolbelt before cap init --- .../java/gregtech/api/items/toolitem/ItemGTToolbelt.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java b/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java index 2f4af5961da..e586bec2f37 100644 --- a/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java +++ b/src/main/java/gregtech/api/items/toolitem/ItemGTToolbelt.java @@ -43,6 +43,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreIngredient; @@ -410,7 +411,9 @@ public boolean supportsTool(ItemStack stack, ItemStack tool) { } private ToolStackHandler getHandler(ItemStack stack) { - return (ToolStackHandler) stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); + IItemHandler handler = stack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); + if (handler instanceof ToolStackHandler h) return h; + else return FALLBACK; } @Override @@ -601,6 +604,8 @@ public void readNBTShareTag(ItemStack stack, NBTTagCompound nbt) { stack.setTagCompound(nbt == null ? null : (nbt.hasKey("NBT") ? nbt.getCompoundTag("NBT") : null)); } + protected static final ToolStackHandler FALLBACK = new ToolStackHandler(0); + protected static class ToolStackHandler extends ItemStackHandler { private static final Set EMPTY = ImmutableSet.of();