generated from isXander/FabricModTemplate
-
-
Notifications
You must be signed in to change notification settings - Fork 57
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Current Behaviour
This used to be a Fabric-only mod, but it was recently ported to NeoForge. However, this line tries to access a Fabric-only asset, which could potentially cause runtime issues — as shown in the image and the runtime exception.
Expected Behaviour
No runtime exception or broken icon occurs. Since the runtime exception could prevent other parts of the mod from loading.
Screenshots
Reproduction Steps
- Create a new NeoForge instance — the Minecraft and mod loader versions are irrelevant.
- Install Controlify v2.4.2 using the branch from PR Fix crash in neoforge <1.21.9 with AbstractWidgetMixin #689 (otherwise, the game will fail to load).
- Either register a custom input bind that does not have an existing radial icon, or install a mod that registers custom vanilla Minecraft key binds, which will cause Controlify to fall back to the Fabric icon.
- Add the action from the previous step to the radial menu in the mod controller configuration.
- Open the radial menu — a runtime crash will occur, and the icon will appear broken.
Logs
Runtime exception
[13:22:38] [Render thread/WARN] [minecraft/TextureManager]: Failed to load texture: fabric-resource-loader-v0:icon.png
java.io.FileNotFoundException: fabric-resource-loader-v0:icon.png
at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.ResourceProvider.lambda$getResourceOrThrow$1(ResourceProvider.java:18) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading}
at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[?:?] {re:mixin}
at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.ResourceProvider.getResourceOrThrow(ResourceProvider.java:18) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.SimpleTexture$TextureImage.load(SimpleTexture.java:83) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.SimpleTexture.getTextureImage(SimpleTexture.java:57) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.SimpleTexture.load(SimpleTexture.java:30) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:92) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.TextureManager.register(TextureManager.java:63) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.texture.TextureManager.getTexture(TextureManager.java:113) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A,re:mixin,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/com.mojang.blaze3d.systems.RenderSystem._setShaderTexture(RenderSystem.java:725) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/com.mojang.blaze3d.systems.RenderSystem.setShaderTexture(RenderSystem.java:718) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.GuiGraphics.innerBlit(GuiGraphics.java:965) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.GuiGraphics.blit(GuiGraphics.java:923) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.GuiGraphics.blit(GuiGraphics.java:865) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.GuiGraphics.blit(GuiGraphics.java:888) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]+1.21.1-neoforge/dev.isxander.controlify.utils.render.Blit.tex(Blit.java:60) ~[controlify-2.4.2-1.21.1-neoforge.jar%23181!/:?] {re:classloading}
at TRANSFORMER/[email protected]+1.21.1-neoforge/dev.isxander.controlify.bindings.RadialIcons.lambda$registerIcons$1(RadialIcons.java:110) ~[controlify-2.4.2-1.21.1-neoforge.jar%23181!/:?] {re:classloading}
at TRANSFORMER/[email protected]+1.21.1-neoforge/dev.isxander.controlify.gui.screen.RadialMenuScreen$RadialButton.render(RadialMenuScreen.java:291) ~[controlify-2.4.2-1.21.1-neoforge.jar%23181!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.screens.Screen.render(Screen.java:136) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:controlify.mixins.json:feature.screenop.ScreenAccessor from mod controlify,pl:mixin:APP:controlify.mixins.json:feature.screenop.ScreenMixin from mod controlify,pl:mixin:APP:controlify.mixins.json:feature.virtualmouse.snapping.ScreenMixin from mod controlify,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]+1.21.1-neoforge/dev.isxander.controlify.gui.screen.RadialMenuScreen.render(RadialMenuScreen.java:191) ~[controlify-2.4.2-1.21.1-neoforge.jar%23181!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.client.gui.screens.Screen.renderWithTooltip(Screen.java:112) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:computing_frames,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:controlify.mixins.json:feature.screenop.ScreenAccessor from mod controlify,pl:mixin:APP:controlify.mixins.json:feature.screenop.ScreenMixin from mod controlify,pl:mixin:APP:controlify.mixins.json:feature.virtualmouse.snapping.ScreenMixin from mod controlify,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.ClientHooks.drawScreenInternal(ClientHooks.java:429) ~[neoforge-21.1.197.jar%23178!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.ClientHooks.drawScreen(ClientHooks.java:423) ~[neoforge-21.1.197.jar%23178!/:?] {re:classloading}
at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:1098) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:controlify.mixins.json:feature.oofinput.GameRendererMixin from mod controlify,pl:mixin:APP:controlify.mixins.json:feature.reacharound.GameRendererMixin from mod controlify,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1201) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:813) ~[neoforge-21.1.197.jar%23177!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:runtimedistcleaner:A}
at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:230) ~[neoforge-21.1.197.jar%23177!/:?] {re:classloading,pl:runtimedistcleaner:A}
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:136) ~[loader-4.0.41.jar%23134!/:4.0] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:124) ~[loader-4.0.41.jar%23134!/:4.0] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.NeoForgeClientDevLaunchHandler.runService(NeoForgeClientDevLaunchHandler.java:23) ~[loader-4.0.41.jar%23134!/:4.0] {}
at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.lambda$launchService$4(CommonLaunchHandler.java:118) ~[loader-4.0.41.jar%23134!/:4.0] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:103) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:74) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-11.0.5.jar%23114!/:?] {}
at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-11.0.5.jar%23114!/:?] {}
at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:210) [bootstraplauncher-2.0.2.jar:?] {}
at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:69) [bootstraplauncher-2.0.2.jar:?] {}
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {}
at net.neoforged.devlaunch.Main.main(Main.java:55) [DevLaunch-1.0.1.jar:?] {}Mod Version
2.4.2+1.21.1
Controller
PS5 dualsense
Bluetooth
- Yes
Operating System
Linux/SteamOS
ARM
- Yes
Additional Information
My suggestion is to either use a vanilla icon or include a NeoForge icon as well.
The current workaround is to add any PNG file at assets/fabric-resource-loader-v0/icon.png.
Just to make sure...
- I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
- I have made sure there are no other issues describing the same problem on the issue tracker.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
