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();