MinecraftCapes not working
james090500 opened this issue ยท 3 comments
Hi, I've had various players state WaveyCapes doesn't work with MinecraftCapes since 1.21.3.
I've done some debugging and it seems to work fine in a Dev environment, but when compiled and I throw a stacktrace here, I get the below in game
I believe it is caused by this line https://github.com/tr7zw/WaveyCapes/blob/main/src/main/java/dev/tr7zw/waveycapes/support/MinecraftCapesSupport.java#L31
as test.getCapeHolder()
doesn't seem to have a .getUUID()
method
[23:48:02] [Render thread/INFO]:
[STDERR]: java.lang.AbstractMethodError: Receiver class net.minecraft.class_746 does not define or inherit an implementation of the resolved method 'abstract java.util.UUID getUUID()' of interface dev.tr7zw.waveycapes.versionless.CapeHolder.
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//dev.tr7zw.waveycapes.support.MinecraftCapesSupport.init(MinecraftCapesSupport.java:31)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//dev.tr7zw.waveycapes.support.MinecraftCapesSupport.shouldBeUsed(MinecraftCapesSupport.java:72)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//dev.tr7zw.waveycapes.renderlayers.CustomCapeRenderLayer.getCapeRenderer(CustomCapeRenderLayer.java:492)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//dev.tr7zw.waveycapes.renderlayers.CustomCapeRenderLayer.render(CustomCapeRenderLayer.java:84)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//dev.tr7zw.waveycapes.renderlayers.CustomCapeRenderLayer.method_4199(CustomCapeRenderLayer.java:51)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_922.method_4054(class_922.java:111)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_922.method_3936(class_922.java:36)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_898.method_3954(class_898.java:160)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_898.method_62424(class_898.java:147)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_761.method_22977(class_761.java:993)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_761.method_62207(class_761.java:870)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_761.method_62214(class_761.java:646)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_9909.method_61910(class_9909.java:67)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_761.method_22710(class_761.java:556)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_757.method_3188(class_757.java:731)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_757.method_3192(class_757.java:491)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_310.method_1523(class_310.java:1352)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.class_310.method_1514(class_310.java:933)
[23:48:02] [Render thread/INFO]:
[STDERR]: at knot//net.minecraft.client.main.Main.main(Main.java:265)
[23:48:02] [Render thread/INFO]:
[STDERR]: at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
[23:48:02] [Render thread/INFO]:
[STDERR]: at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
[23:48:02] [Render thread/INFO]:
[STDERR]: at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
[23:48:04] [Server thread/INFO]:
Saving and pausing game...
At the time it was because of my limited mixin knowledge and because of the changes to vertexbuffer to add a glint.
I think I'll aim to do a whole rewrite at some point and put all of the config logic in the player handler so whether the MinecraftCapes should be displayed or not.
Then just override the texture location and inject into the cape render logic to add the glint.
Sounds good. Currently, I'm fighting with updating First-person Mod to 1.21.3, but nearly every single mixin is broken, so that's fun. I'll look into the WaveyCapes mod-compat issues tomorrow.
The error sounds comparable to the Ears issue (#77), I didn't do the 1.21.3 port myself so will have to check what's going on there, and might have gotten broken in the update. While I have you here, might I ask why in general MinecraftCapes doesn't use the vanilla cape logic? If it just injected the vanilla-provided cape from a player, no compatibility issues like this would be possible. Optifine and https://modrinth.com/mod/capes do that afaik, so no work was needed to get them to work together.