shedaniel / RoughlyEnoughItems

Clean and Configurable. Your recipe viewer mod for 1.13+.
Other
316 stars 59 forks source link

[Bug] 1.21 Fabric ItemGroupEvents.modifyEntriesEvent is fired with the static registry lookup. #1665

Open modmuss50 opened 3 weeks ago

modmuss50 commented 3 weeks ago

What happened?

Fabric's ItemGroupEvents.modifyEntriesEvent is fired with the static registry lookup, this breaks any mod that tries to query something from a dynamic registry for its item groups, including a vanilla one.

The issue comes from here here: https://github.com/shedaniel/RoughlyEnoughItems/blob/16.x-1.21/fabric/src/main/java/me/shedaniel/rei/impl/client/fabric/CreativeModeTabCollectorImpl.java#L47 where it only uses the builtin registries.

(In yarn names): DynamicRegistryManager.of(Registries.REGISTRIES) only provides a wrapper lookup to the static builtin registries, this breaks mods such as TechReborn here. I think this code should ideally use the static displayContext from ItemGroups, or the DRM.

Tested with REI 16.0.729

What mod loaders are you seeing the problem on?

Fabric

What do you think this bug is of?

Relevant log output

[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] ########################################
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] REIPlugin starting main-reload for START.
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (7):
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultClientPlugin of DefaultClientPlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultPlugin of DefaultPlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) FabricFluidAPISupportPlugin
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) HideIngredientsFromTagsPlugin of HideIngredientsFromTagsPlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultClientRuntimePlugin of DefaultClientRuntimePlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) ReiPlugin of ReiPlugin [techreborn]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultRuntimePlugin of DefaultRuntimePlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] ########################################
[20:03:40] [Render thread/WARN] (REI) [REI] Suppressing Reload Plugins of stage START
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] REIClientPlugin starting main-reload for START.
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (4):
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultClientPlugin of DefaultClientPlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) HideIngredientsFromTagsPlugin of HideIngredientsFromTagsPlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultClientRuntimePlugin of DefaultClientRuntimePlugin [roughlyenoughitems]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) ReiPlugin of ReiPlugin [techreborn]
[20:03:40] [REI-ReloadPlugins/INFO] (REI) [REI] @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[20:03:40] [Render thread/INFO] (Minecraft) [System] [CHAT] Player514 has made the advancement [Tech Reborn]
[20:03:40] [REI-ReloadPlugins/ERROR] (REI) [REI] Failed to collect creative tab: net.minecraft.item.ItemGroup@59d3111e
 java.lang.IllegalStateException: Registry minecraft:banner_pattern not found
    at net.minecraft.registry.RegistryWrapper$WrapperLookup.method_46763(RegistryWrapper.java:107) ~[minecraft-common-0c4c186d85-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
    at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
    at net.minecraft.registry.RegistryWrapper$WrapperLookup.getWrapperOrThrow(RegistryWrapper.java:107) ~[minecraft-common-0c4c186d85-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
    at net.minecraft.item.ItemGroups.method_51332(ItemGroups.java:1266) ~[minecraft-common-0c4c186d85-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
    at me.shedaniel.rei.impl.client.fabric.CreativeModeTabCollectorImpl.collectTabs(CreativeModeTabCollectorImpl.java:56) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
    at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
    at me.shedaniel.rei.plugin.client.DefaultClientPlugin.collectTabs(DefaultClientPlugin.java:195) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.plugin.client.DefaultClientPlugin.registerEntries(DefaultClientPlugin.java:156) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.entry.type.EntryRegistryImpl.acceptPlugin(EntryRegistryImpl.java:69) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.entry.type.EntryRegistryImpl.acceptPlugin(EntryRegistryImpl.java:51) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.api.common.registry.Reloadable.acceptPlugin(Reloadable.java:78) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$startReload$9(PluginManagerImpl.java:417) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$pluginSection$4(PluginManagerImpl.java:199) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$startReload$10(PluginManagerImpl.java:407) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.pluginSection(PluginManagerImpl.java:197) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.startReload(PluginManagerImpl.java:405) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.RoughlyEnoughItemsCore._reloadPlugins(RoughlyEnoughItemsCore.java:162) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.RoughlyEnoughItemsCoreClient.lambda$reloadPlugins$25(RoughlyEnoughItemsCoreClient.java:483) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run$$$capture(CompletableFuture.java:1804) ~[?:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java) ~[?:?]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[?:?]
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
    at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
[20:03:40] [REI-ReloadPlugins/ERROR] (REI) [REI] Failed to collect fabric's creative tab: net.minecraft.item.ItemGroup@7883afe2
 java.lang.IllegalStateException: Registry minecraft:enchantment not found
    at net.minecraft.registry.RegistryWrapper$WrapperLookup.method_46763(RegistryWrapper.java:107) ~[minecraft-common-0c4c186d85-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
    at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
    at net.minecraft.registry.RegistryWrapper$WrapperLookup.getWrapperOrThrow(RegistryWrapper.java:107) ~[minecraft-common-0c4c186d85-1.21-net.fabricmc.yarn.1_21.1.21+build.1-v2.jar:?]
    at techreborn.init.TRItemGroup.addRockCutter(TRItemGroup.java:808) ~[TechReborn.main/:?]
    at techreborn.init.TRItemGroup.entries(TRItemGroup.java:238) ~[TechReborn.main/:?]
    at net.fabricmc.fabric.impl.itemgroup.ItemGroupEventsImpl.lambda$createModifyEvent$1(ItemGroupEventsImpl.java:46) ~[fabric-item-group-api-v1-common-4.1.0+00ab0a6390.jar:?]
    at me.shedaniel.rei.impl.client.fabric.CreativeModeTabCollectorImpl.postFabricEvents(CreativeModeTabCollectorImpl.java:72) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.client.fabric.CreativeModeTabCollectorImpl.collectTabs(CreativeModeTabCollectorImpl.java:57) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
    at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
    at me.shedaniel.rei.plugin.client.DefaultClientPlugin.collectTabs(DefaultClientPlugin.java:195) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.plugin.client.DefaultClientPlugin.registerEntries(DefaultClientPlugin.java:156) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.entry.type.EntryRegistryImpl.acceptPlugin(EntryRegistryImpl.java:69) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.entry.type.EntryRegistryImpl.acceptPlugin(EntryRegistryImpl.java:51) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.api.common.registry.Reloadable.acceptPlugin(Reloadable.java:78) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$startReload$9(PluginManagerImpl.java:417) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$pluginSection$4(PluginManagerImpl.java:199) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.lambda$startReload$10(PluginManagerImpl.java:407) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.pluginSection(PluginManagerImpl.java:197) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.impl.common.plugins.PluginManagerImpl.startReload(PluginManagerImpl.java:405) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.RoughlyEnoughItemsCore._reloadPlugins(RoughlyEnoughItemsCore.java:162) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at me.shedaniel.rei.RoughlyEnoughItemsCoreClient.lambda$reloadPlugins$25(RoughlyEnoughItemsCoreClient.java:483) ~[RoughlyEnoughItems-fabric-16.0.729.jar:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run$$$capture(CompletableFuture.java:1804) ~[?:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java) ~[?:?]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[?:?]
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
    at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
[20:03:40] [Render thread/INFO] (Minecraft) Loaded 123 advancements
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIServerPlugin starting main-reload for START.
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (3):
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultPlugin of DefaultPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) FabricFluidAPISupportPlugin
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultRuntimePlugin of DefaultRuntimePlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIPlugin finished post-reload for START in 3.789 ms, totaling 343.0 ms.
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIClientPlugin finished post-reload for START in 2.773 ms, totaling 863.2 ms.
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIServerPlugin finished post-reload for START in 1.258 ms, totaling 7.438 ms.
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ++++++++++++++++++++++++++++++++++++++++
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIPlugin starting main-reload for END.
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (7):
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultClientPlugin of DefaultClientPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultPlugin of DefaultPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) FabricFluidAPISupportPlugin
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) HideIngredientsFromTagsPlugin of HideIngredientsFromTagsPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultClientRuntimePlugin of DefaultClientRuntimePlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) ReiPlugin of ReiPlugin [techreborn]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultRuntimePlugin of DefaultRuntimePlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ++++++++++++++++++++++++++++++++++++++++
[20:03:41] [Server thread/INFO] (Minecraft) Saving and pausing game...
[20:03:41] [Server thread/INFO] (Minecraft) Saving chunks for level 'ServerLevel[New World]'/minecraft:overworld
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ########################################
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] REIClientPlugin starting main-reload for END.
[20:03:41] [Server thread/INFO] (Minecraft) Saving chunks for level 'ServerLevel[New World]'/minecraft:the_nether
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (4):
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultClientPlugin of DefaultClientPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) HideIngredientsFromTagsPlugin of HideIngredientsFromTagsPlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultClientRuntimePlugin of DefaultClientRuntimePlugin [roughlyenoughitems]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) ReiPlugin of ReiPlugin [techreborn]
[20:03:41] [REI-ReloadPlugins/INFO] (REI) [REI] ########################################
[20:03:41] [Server thread/INFO] (Minecraft) Saving chunks for level 'ServerLevel[New World]'/minecraft:the_end
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] ----------------------------------------
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] REIServerPlugin starting main-reload for END.
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] Plugins (3):
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI]  - (-100.00) DefaultPlugin of DefaultPlugin [roughlyenoughitems]
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) FabricFluidAPISupportPlugin
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI]  - (0.00) DefaultRuntimePlugin of DefaultRuntimePlugin [roughlyenoughitems]
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] ----------------------------------------
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] REIPlugin finished post-reload for END in 1.144 ms, totaling 154.0 ms.
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] REIClientPlugin finished post-reload for END in 1.078 ms, totaling 1.471 s.
[20:03:43] [REI-ReloadPlugins/INFO] (REI) [REI] REIServerPlugin finished post-reload for END in 466.0 μs, totaling 15.43 ms.

Anything else?

No response

By submitting this issue, I have included the necessary logs by pasting the contents into the correct location or attaching the file as an upload.

By submitting this issue, I have confirmed my REI and REI's dependencies are up to date.