Crash during initialization
middleeasternfag opened this issue · 8 comments
The error is as follows
[11:19:02] [Client thread/ERROR] [FML]: The following problems were captured during this phase
[11:19:02] [Client thread/ERROR] [FML]: Caught exception from hbm
java.lang.NullPointerException
at com.hbm.inventory.RecipesCommon$ComparableStack.hashCode(RecipesCommon.java:171) ~[RecipesCommon$ComparableStack.class:?]
at java.util.HashMap.hash(HashMap.java:339) ~[?:1.8.0_292]
at java.util.HashMap.put(HashMap.java:612) ~[?:1.8.0_292]
at com.hbm.inventory.ShredderRecipes.registerShredder(ShredderRecipes.java:89) ~[ShredderRecipes.class:?]
at com.hbm.main.MainRegistry.PostLoad(MainRegistry.java:1033) ~[MainRegistry.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[forge-1.7.10-10.13.4.1614-1.7.10-universal.jar:?]
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[forge-1.7.10-10.13.4.1614-1.7.10-universal.jar:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[forge-1.7.10-10.13.4.1614-1.7.10-universal.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742) [Loader.class:?]
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311) [FMLClientHandler.class:?]
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552) [bao.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878) [bao.class:?]
at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
I'm reporting this here as HBM seems to be the cause, although I think it's probably a mod interaction, so here is my modlist:
UCHIJ mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCHIJ FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1614-1.7.10-universal.jar)
UCHIJ Forge{10.13.4.1614} [Minecraft Forge] (forge-1.7.10-10.13.4.1614-1.7.10-universal.jar)
UCHIJ tfc_coremod{0.87.0} [TFC[coremod]] (minecraft.jar)
UCHIJ CodeChickenCore{1.0.7.48} [CodeChicken Core] (minecraft.jar)
UCHIJ NotEnoughItems{2.1.7-GTNH} [Not Enough Items] (NotEnoughItems-1.7.10-2.1.7-GTNH-universal.jar)
UCHIJ OmniOcularCore{1.0} [Omni Ocular Core] (minecraft.jar)
UCHIJ OpenComputers|Core{1.7.5.12-GTNH.30} [OpenComputers (Core)] (minecraft.jar)
UCHIJ xaerominimap_core{1.7.10-1.0} [XaeroMinimapCore] (minecraft.jar)
UCHIJ xaeroworldmap_core{1.7.10-1.0} [XaeroWorldMapCore] (minecraft.jar)
UCHIJ OpenModsCore{0.10.1} [OpenModsCore] (minecraft.jar)
UCHIJ GT_ASM{6.14.11} [Greg-ASM®] (minecraft.jar)
UCHIJ FoamFixCore{1.0.0-beta3} [FoamFixCore] (minecraft.jar)
UCHIJ WarpDriveCore{1.7.10-1.4.2.-} [WarpDriveCore] (minecraft.jar)
UCHIJ FastCraft{1.25} [FastCraft] (fastcraft-1.25.jar)
UCHIJ terrafirmacraftplus{0.87.0} [TerraFirmaCraft+] ([1.7.10]TerraFirmaCraftPlus-0.87.0.jar)
UCHIJ TFC-Tweaks{0.4.0} [TFC-Tweaks] (TFC-TweaksPlus-1.7.10-0.4.0.jar)
UCHIJ MineTweaker3{3.1.0} [MineTweaker 3] (CraftTweaker-1.7.10-3.2.2-GTNH.8-legacy.jar)
UCHIJ TFCPlusTweaker{@MOD_VERSION@} [TFC+ Tweaker] (1.7.10-TFCPlusTweaker-1.2.0.3.jar)
UCHIJ tfcwells{1.1} [TFC Wells] (1.7.10.TFC.Wells-1.2.jar)
UCHIJ tfccellars{1.2} [CellarsAddon for TFC+] (1.7.10.TFCPlusCellarsAddon-1.2.jar)
UCHIJ DecorationsTFC{1.0.20} [Decorations] ([1.7.10]Decorations-1.7.10-1.0.20.jar)
UCHIJ tfcadditions{1.0.8} [TFC-Additions] ([1.7.10]TFC-Additions-1.7.10-1.0.8.jar)
UCHIJ tfcplusudarymod{0.3.1} [TFC+ Udary Mod] ([1.7.10]TFCPlusUdaryMod-0.3.01.jar)
UCHIJ betterquesting{3.0.345-GTNH} [Better Questing] (BetterQuesting-3.0.345-GTNH.jar)
UCHIJ spongemixins{1.3.0} [SpongeMixins Loader] (SpongeMixins-1.3.2.jar)
UCHIJ bugtorch{1.1.1-GTNH} [Bug Torch] (BugTorch-1.1.1-GTNH.jar)
UCHIJ ChunkPurge{2.1} [Chunk Purge] (ChunkPurge-1.7.10-2.1.jar)
UCHIJ tfcm{0.14.7} [TerraMisc] (TFCM-1.7.10-0.14.7.jar)
UCHIJ cookingwithtfc{0.0.7.3} [Cooking with TFC] (CookingWithTFC-1.7.10-0.0.7.3.jar)
UCHIJ gregapi{GT6-MC1710} [Greg-API] (gregtech_1.7.10-6.14.20.jar)
UCHIJ CustomOreGen{1.2.26} [Custom Ore Generation] (CustomOreGen-1.7.10-1.2.26.jar)
UCHIJ endercore{1.7.10-0.2.0.39_beta} [EnderCore] (EnderCore-1.7.10-0.2.0.39_beta.jar)
UCHIJ ESM{10.0.148} [Epic Siege Mod] (EpicSiegeMod-10.0.148.jar)
UCHIJ flyingcullers{1.2} [§cF§6l§ey§ai§bn§9g §fCu§7lle§8rs] (FlyingCullers-1.7.10-1.2.jar)
UCHIJ foamfix{@VERSION@} [FoamFix] (FoamFix-1.7.10-universal-1.0.0-beta3.jar)
UCHIJ HardcoreEnderExpansion{1.8.8-GTNH} [Hardcore Ender Expansion] (HardcoreEnderExpansion MC-1.7.10 v1.8.8-GTNH.jar)
UCHIJ Forestry{4.3.1.45} [Forestry for Minecraft] (forestry_1.7.10-4.3.1.45.jar)
UCHIJ funkylocomotion{1.0} [Funky Locomotion] (funky-locomotion-1.7.10-beta-7.jar)
UCHIE hbm{1.0.27 BETA (3952)} [Hbm's Nuclear Tech] (hbm_1.0.27_X3952.jar)
UCHIJ inventorytweaks{1.59-SI-release-2-af46cf3-dirty} [Inventory Tweaks] (InventoryTweaks-1.59-SI-release-2.jar)
UCHIJ LunatriusCore{1.1.2.21} [LunatriusCore] (LunatriusCore-1.7.10-1.1.2.21-universal.jar)
UCHIJ NEIAddons{1.12.15.41} [NEI Addons] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|Developer{1.12.15.41} [NEI Addons: Developer Tools] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|AppEng{1.12.15.41} [NEI Addons: Applied Energistics 2] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|Botany{1.12.15.41} [NEI Addons: Botany] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|Forestry{1.12.15.41} [NEI Addons: Forestry] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|CraftingTables{1.12.15.41} [NEI Addons: Crafting Tables] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ NEIAddons|ExNihilo{1.12.15.41} [NEI Addons: Ex Nihilo] (neiaddons-1.12.15.41-mc1.7.10.jar)
UCHIJ neiintegration{1.1.2} [NEI Integration] (NEIIntegration-MC1.7.10-1.1.2.jar)
UCHIJ netherlicious{3.0.7} [§6Netherlicious] (netherlicious-3.0.7.jar)
UCHIJ OpenMods{0.10.1} [OpenMods] (OpenModsLib-1.7.10-0.10.1.jar)
UCHIJ OpenBlocks{1.6.3} [OpenBlocks] (OpenBlocks-1.7.10-1.6.3-1.7.10-snapshot-6.jar)
UCHIJ ImmibisCore{59.1.4} [Immibis Core] (immibis-core-59.1.4.jar)
UCHIJ RedLogic{59.1.13} [RedLogic] (redlogic-59.1.13.jar)
UCHIJ OpenComputers{1.7.5.12-GTNH.30} [OpenComputers] (OpenComputers-MC1.7.10-1.7.5.12-GTNH.30-universal.jar)
UCHIJ Railcraft{9.12.2.0} [Railcraft] (Railcraft_1.7.10-9.12.2.0.jar)
UCHIJ Stackie{1.6.0.36} [Stackie] (Stackie-1.7.10-1.6.0.36-universal.jar)
UCHIJ StorageDrawers{1.7.10-1.10.9} [Storage Drawers] (StorageDrawers-1.7.10-1.10.9.jar)
UCHIJ worldedit{6.0-beta-01} [WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar)
UCHIJ gregapi_post{GT6-MC1710} [Greg-API-Post] (gregtech_1.7.10-6.14.20.jar)
UCHIJ gregtech{GT6-MC1710} [GregTech] (gregtech_1.7.10-6.14.20.jar)
UCHIJ MTUtils{1.6} [MTUtils] (GT6TweakerInMTUtils-1.8.jar)
UCHIJ hodgepodge{1.6.9} [Hodgepodge] (hodgepodge-1.7.10-1.6.9.jar)
UCHIJ HoloInventory{1.9.1.124} [HoloInventory] (HoloInventory-1.7.10-1.9.1.124.jar)
UCHIJ ifu{2.0} [I Will Find You] (IFU-2.0.jar)
UCHIJ lwstfc{3.9} [Leather Water Sac TFC+] (LeatherWaterSac-TFC+-3.9.jar)
UCHIJ legiblenei{1.6.7.6} [LegibleNei] (legiblenei_1.7.10-1.6.7.6.jar)
UCHIJ MTRM{1.0} [MineTweakerRecipeMaker] (MineTweakerRecipeMaker-1.7.10-1.1.1.jar)
UCHIJ MobProperties{1.0.2} [Mob Properties] (MobProperties-1.7.10-1.0.2.jar)
UCHIJ modtweaker2{0.9.6} [Mod Tweaker 2] (ModTweaker2-0.9.6.jar)
UCHIJ NetherDungeons{1.2.1} [Nether Dungeons] (NetherDungeons-1.7.2-v-1.2.1.jar)
UCHIJ Waila{1.5.10} [Waila] (Waila-1.5.10_1.7.10.jar)
UCHIJ OmniOcular{1.7.10-1.0build107} [Omni Ocular] (OmniOcular-1.7.10-1.0build107.jar)
UCHIJ OpenPeripheralCore{1.4} [OpenPeripheralCore] (OpenPeripheralCore-1.7.10-1.4.jar)
UCHIJ OpenPeripheral{0.6} [OpenPeripheralAddons] (OpenPeripheralAddons-1.7.10-0.6.jar)
UCHIJ OpenPeripheralIntegration{0.6} [OpenPeripheralIntegration] (OpenPeripheralIntegration-1.7.10-0.6.jar)
UCHIJ qwertech{1.0.0-a.76} [QwerTech] (qwertech-1.0.0-a.76.jar)
UCHIJ bq_standard{3.0.184-GTNH} [Standard Expansion] (StandardExpansion-3.0.184-GTNH.jar)
UCHIJ stepup{v.2.0.0-mc1.7.10} [StepUp] (StepUp-v.2.0.0-mc1.7.10.jar)
UCHIJ teloaddon{1.0.5} [Telomerase Addon] (TelomeraseAddon-1.0.5.jar)
UCHIJ TerraFirmaCraftNEIplugin{1.7.0} [TerraFirmaCraftNEIplugin] (TerraFirmaCraftPlusNEIplugin-1.7.10-1.8.0.jar)
UCHIJ tfcprimitivetechplus{0.3.0} [TFC+ Primitive Technology Plus] (TFC+-PrimtiveTechnologyPlus-1.7.10-0.3.jar)
UCHIJ tfcquickpockets{1.1.6} [TFC+ Quick Pockets] (tfcquickpockets-1.1.6.jar)
UCHIJ tfice{1.0} [Thin Ice] (tfcthinice-1.0.jar)
UCHIJ wailaevents{1.0.0} [Waila Events] (WailaEvents-1.0.0.jar)
UCHIJ WailaHarvestability{1.1.7-GTNH} [Waila Harvestability] (WailaHarvestability-mc1.7.10-1.1.7-GTNH.jar)
UCHIJ wailaplugins{MC1.7.10-0.2.3.2-16} [WAILA Plugins] (WAILAPlugins-MC1.7.10-0.2.3.2-16.jar)
UCHIJ WarpDrive{1.7.10-1.4.2.-} [WarpDrive] (WarpDrive-1.7.10-1.4.2.-.jar)
UCHIJ waterwheel4gt6{1.1} [Waterwheels for Gregtech 6] (waterwheel4gt6-1.2.jar)
UCHIJ XaeroMinimap{21.10.5} [Xaero's Minimap] (Xaeros_Minimap_21.10.5_Forge_1.7.10.jar)
UCHIJ XaeroWorldMap{1.14.1.5} [Xaero's World Map] (XaerosWorldMap_1.14.1.5_Forge_1.7.10.jar)
It's the shredder's automated recipe detector crashing due to an ore dictionary entry being registered wrong. One of your mods either registered an ore dict entry wrong (with a not-null stack with null for an item which should never happen) or removed an item from the item registry (which is also a very bad idea) leaving a broken ore dict entry behind.
I've added a few more checks in the last commit just now, hopefully that will resolve the issue once the new release rolls out.
Yes, after some testing, I found out that it seems to be related to the TFC+ addon TFC+ Decorations. I will look forward to the next release.
Thank you!
I was wondering if the fix is already present in the latest release since I still get the following crash with TFC+ Decorations:
java.lang.NullPointerException: Initializing game
at com.hbm.inventory.RecipesCommon$ComparableStack.hashCode(RecipesCommon.java:181)
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.put(HashMap.java:612)
at com.hbm.inventory.ShredderRecipes.putIfValid(ShredderRecipes.java:96)
at com.hbm.inventory.ShredderRecipes.generateRecipes(ShredderRecipes.java:85)
at com.hbm.inventory.ShredderRecipes.registerShredder(ShredderRecipes.java:45)
at com.hbm.main.MainRegistry.PostLoad(MainRegistry.java:1035)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
The attempted fix is in the latest version, yes. My next best guess would be that the stack holds an item that isn't even registered which would explain the lack of a registry name. I can add another check for that too, but if that's not the issue either then I'm all out of ideas.
@HbmMods
As far as i've tested, oredict entries with different itemstack name and item name crash the game. I suppose adding something like if(in.getUnlocalizedName().equals(in.getItem().getUnlocalizedName()))
after the first check com.hbm.inventory.ShredderRecipes.java:95.
The names being different isn't an issue in itself, after all neither Item.getUnlocalizedName()
nor ItemStack.getUnlocalizedName()
are being called in the hash function, it's that Item.itemRegistry.getNameForObject()
returns null
which implies that the item was never registered in the first place. I added ShredderRecipes.java#181 yesterday which adds a null check to the registered name and substitutes the item with a stick + printing an error message. Comparing the item's unlocalized name with the stack's name I assume works because the item that isn't registered has differently named subtypes, similar to vanilla dyes. The only remaining way to break the hash function is to remove the fallback item from the registry entirely which hopefully nobody is stupid enough to do.