
Raised 1.2.1 is only compatible with 1.19.2 and 1.19.1, despite listing compatibility for 1.19.
akemin-dayo opened this issue ยท 5 comments
Attempting to load Raised 1.2.1 on Minecraft 1.19 results in a mixin apply error, likely due to a regression as the last working version of Raised for 1.19 was 1.1.4.
This issue is not a conflict caused by other mods, as it reproduces with a minimal mod configuration consisting of only Raised and Fabric API.
โป I do realise this only affects a very small minority of users, as most people (including myself) mainly use 1.19.2 anyway, but I figured this should still be addressed regardless.
Possible solutions
- Figure out what broke between 1.1.4 and 1.2.1, and restore compatibility with 1.19.
- Simply declare Raised 1.2.1 as compatible only with 1.19.2 and 1.19.1, and drop 1.19 support.
Stacktrace
Mixin apply for mod raised failed raised.mixins.json:client.gui.hud.ChatHudMixin from mod raised -> net.minecraft.class_338: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @ModifyVariable annotation on modifyChatTooltip could not find any targets matching 'Lnet/minecraft/class_338;method_44724(D)D' in net.minecraft.class_338. Using refmap raised.refmap.json [PREINJECT Applicator Phase -> raised.mixins.json:client.gui.hud.ChatHudMixin from mod raised -> Prepare Injections -> -> localvar$zjc000$modifyChatTooltip(D)D -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @ModifyVariable annotation on modifyChatTooltip could not find any targets matching 'Lnet/minecraft/class_338;method_44724(D)D' in net.minecraft.class_338. Using refmap raised.refmap.json [PREINJECT Applicator Phase -> raised.mixins.json:client.gui.hud.ChatHudMixin from mod raised -> Prepare Injections -> -> localvar$zjc000$modifyChatTooltip(D)D -> Parse]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.validateTargets(InjectionInfo.java:656)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.findTargets(InjectionInfo.java:587)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.readAnnotation(InjectionInfo.java:330)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:316)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:308)
at org.spongepowered.asm.mixin.injection.struct.ModifyVariableInjectionInfo.<init>(ModifyVariableInjectionInfo.java:45)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo$InjectorEntry.create(InjectionInfo.java:149)
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.parse(InjectionInfo.java:708)
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1330)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1043)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325)
at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421)
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323)
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:112)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at net.minecraft.class_315.<init>(class_315.java:428)
at net.minecraft.class_310.<init>(class_310.java:445)
at net.minecraft.client.main.Main.main(Main.java:198)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:461)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
And 1.1.2 and down are only marked for up to 1.19.1. I recall going back and changing these version tags at some point; I may have mistakenly done so when I realized that change in 1.2.0 would have made past versions incompatible with 1.19, but I forgot that it was a change I made more recently? 1.2.0 had a pretty stretched release from when I started working on it, so it is possible it is just a big kerfuffle.
In my testing without other mods that Raised supports, both the oldest 1.0.5 and newest 1.1.4 work in both 1.19 and 1.19.2. I don't see evidence from the changelogs that mod support would have caused some break between 1.1.2 and 1.1.3, so I will remark those builds as compatible up to 1.19.2 then.
Yes, what you said here is correct โ Raised 1.1.4, 1.1.3, and 1.1.2 do all indeed work on 1.19.2, 1.19.1, and 1.19 (Fabric/Quilt).
(โป I haven't personally tested anything lower than that since I only found out about the Raised mod when it was at version 1.1.2, but you've already done the requisite testing anyway ;P)
Thanks for updating!!
Hmm, interesting, this would appear to have to do with the introduction of the message security indicator. While both have getTextStyleAt
, only the newer has getIndicatorAt
, however upon the testing of just directly mixing into those methods, the indicator still seems to move if just the former method is altered.
Back in 1.1.4 this method was used, I suppose I changed it when I realized I could use getChatLineY
as a deeper root but did not realize that this was a new addition between those.
At the moment I cannot account for why the indicator still moves when just using that one method. I'll have to test it further to make sure I am not mistaken in some way, but this should mean that version can still be supported.
Okay, I see what it is now. This is not for the actual indicator, which is part of ChatScreen, but a tooltip, naturally being from ChatHud. If a message is modified by the server, it will generate a tooltip with the original text or something like that, from what I understand. I don't quite know how to cause this to happen; I suppose something like Spigot plugins would trigger it, but I can assume what it would be like.
Therefore, unfortunately this would no longer be compatible with 1.19 if we wanted the 1.19.2 version to have that tooltip be in the desired place. I suppose then the best option is to drop 1.19 support. I will amend the release tags on CF/Modrinth.