Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.18.2] Cannot register shaders through Fabric API’s CoreShaderRegistrationCallback #110

Open
bluebear94 opened this issue May 18, 2024 · 0 comments

Comments

@bluebear94
Copy link

  • Minecraft version: 1.18.2
  • Porting Lib version: 1.2.1307+1.18.2
  • Fabric API version: 0.77.0+1.18.2

Since version 0.5, Caxton has used Fabric API’s core shader registration API for registering its custom shaders. However, this conflicts with Porting Lib’s own core shader registration API; trying to register a shader through Fabric API’s callback fails with a ResourceLocationException:

Stack trace (with Caxton, using Yarn mappings)
java.util.concurrent.CompletionException: net.minecraft.util.InvalidIdentifierException: Non [a-z0-9/._-] character in path of location: caxton:caxton:shaders/core/rendertype_text.json
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:791) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:795) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:784) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.resource.SimpleResourceReload.method_18365(SimpleResourceReload.java:69) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.thread.ThreadExecutor.execute(ThreadExecutor.java:103) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SimpleResourceReload.method_18367(SimpleResourceReload.java:68) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompletion.claim(CompletableFuture.java:572) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) ~[?:?]
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[?:?]
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:726) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at com.mojang.blaze3d.systems.RenderSystem.replayQueue(RenderSystem.java:211) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:198) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.util.Window.swapBuffers(Window.java:310) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1147) [minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:737) [minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.main.Main.main(Main.java:236) [minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) [fabric-loader-0.15.11.jar:?]
        at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.15.11.jar:?]
        at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.15.11.jar:?]
        at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
        at dev.architectury.transformer.TransformerRuntime.main(TransformerRuntime.java:219) [architectury-transformer-5.2.83-runtime.jar:5.2.83]
Caused by: net.minecraft.util.InvalidIdentifierException: Non [a-z0-9/._-] character in path of location: caxton:caxton:shaders/core/rendertype_text.json
        at net.minecraft.util.Identifier.<init>(Identifier.java:41) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.util.Identifier.<init>(Identifier.java:46) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.render.Shader.<init>(Shader.java:121) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.fabricmc.fabric.impl.client.rendering.FabricShader.<init>(FabricShader.java:28) ~[fabric-rendering-v1-1.11.0+b7f3cf3460.jar:?]
        at net.minecraft.client.render.GameRenderer.md2f6d85$fabric-rendering-v1$lambda$registerShaders$0$0(GameRenderer.java:3045) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at xyz.flirora.caxton.fabric.CaxtonModIdentifierFlavor.lambda$onInitializeClient$3(CaxtonModIdentifierFlavor.java:32) ~[main/:?]
        at net.fabricmc.fabric.api.client.rendering.v1.CoreShaderRegistrationCallback.lambda$static$0(CoreShaderRegistrationCallback.java:44) ~[fabric-rendering-v1-1.11.0+b7f3cf3460.jar:?]
        at net.minecraft.client.render.GameRenderer.handler$baj000$fabric-rendering-v1$registerShaders(GameRenderer.java:3048) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.render.GameRenderer.loadShaders(GameRenderer.java:442) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.client.render.GameRenderer.reload(GameRenderer.java:387) [minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at net.minecraft.resource.SynchronousResourceReloader.method_29490(SynchronousResourceReloader.java:15) ~[minecraft-merged-59769f9cf0-1.18.2-net.fabricmc.yarn.1_18_2.1.18.2+build.4-v2.jar:?]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787) ~[?:?]
        ... 120 more

This is related to #68, but instead of happening when Fabric API 0.77.0 or later is loaded, it only happens when a mod tries to register a core shader through Fabric API.

See issue on Caxton’s repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant