PieKing1215 / DripSounds-Fabric

Minecraft Fabric mod that adds sounds for drip particles landing
GNU Lesser General Public License v3.0
13 stars 4 forks source link

Sodium incompatibility #1

Closed Riteo closed 3 years ago

Riteo commented 3 years ago

Hi, your mod is really neat! It doesn't work with sodium though. I've never used mixins before, but it looks like it injects the same function as your mod. Would it be possible to fix it in some way? The stacktrace talks about modifying the drip chance, maybe you could disable that option if it detects it or in some way fails the injection?

Stacktrace ``` [03:52:40] [main/FATAL]: Mixin apply failed waterdripsound.mixins.json:client.MixinClientWorld -> net.minecraft.class_638: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("CONSTANT") on net/minecraft/class_638::modifyDripChance with priority 1000 cannot inject into net/minecraft/class_638::method_2943(IIIILjava/util/Random;ZLnet/minecraft/class_2338$class_2339;)V merged by me.jellysquid.mods.sodium.mixin.features.world_ticking.MixinClientWorld with priority 1000 [PREINJECT Applicator Phase -> waterdripsound.mixins.json:client.MixinClientWorld -> Prepare Injections -> -> constant$zia000$modifyDripChance(I)I -> Prepare] org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("CONSTANT") on net/minecraft/class_638::modifyDripChance with priority 1000 cannot inject into net/minecraft/class_638::method_2943(IIIILjava/util/Random;ZLnet/minecraft/class_2338$class_2339;)V merged by me.jellysquid.mods.sodium.mixin.features.world_ticking.MixinClientWorld with priority 1000 [PREINJECT Applicator Phase -> waterdripsound.mixins.json:client.MixinClientWorld -> Prepare Injections -> -> constant$zia000$modifyDripChance(I)I -> Prepare] at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:293) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:375) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1255) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1033) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23) [fabric-loader-0.11.1.jar:0.8.2+build.24+unknown-b24.git-unknown] at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150) [fabric-loader-0.11.1.jar:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:522) [?:?] at net.minecraft.client.main.Main.main(Main.java:177) [intermediary-minecraft-1.16.5-client.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?] at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:139) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27) [fabric-loader-0.11.1.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?] at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?] at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?] at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?] at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?] [03:52:40] [main/FATAL]: Mixin apply failed waterdripsound.mixins.json:client.MixinClientWorld -> net.minecraft.class_638: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("CONSTANT") on net/minecraft/class_638::modifyDripChance with priority 1000 cannot inject into net/minecraft/class_638::method_2943(IIIILjava/util/Random;ZLnet/minecraft/class_2338$class_2339;)V merged by me.jellysquid.mods.sodium.mixin.features.world_ticking.MixinClientWorld with priority 1000 [PREINJECT Applicator Phase -> waterdripsound.mixins.json:client.MixinClientWorld -> Prepare Injections -> -> constant$zia000$modifyDripChance(I)I -> Prepare] org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("CONSTANT") on net/minecraft/class_638::modifyDripChance with priority 1000 cannot inject into net/minecraft/class_638::method_2943(IIIILjava/util/Random;ZLnet/minecraft/class_2338$class_2339;)V merged by me.jellysquid.mods.sodium.mixin.features.world_ticking.MixinClientWorld with priority 1000 [PREINJECT Applicator Phase -> waterdripsound.mixins.json:client.MixinClientWorld -> Prepare Injections -> -> constant$zia000$modifyDripChance(I)I -> Prepare] at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:293) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:375) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1255) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1033) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) ~[sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178) [sponge-mixin-0.8.2+build.24.jar:0.8.2+build.24+unknown-b24.git-unknown] at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23) [fabric-loader-0.11.1.jar:0.8.2+build.24+unknown-b24.git-unknown] at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150) [fabric-loader-0.11.1.jar:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:522) [?:?] at net.minecraft.client.main.Main.main(Main.java:185) [intermediary-minecraft-1.16.5-client.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?] at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:139) [fabric-loader-0.11.1.jar:?] at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27) [fabric-loader-0.11.1.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:564) ~[?:?] at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?] at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?] at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?] at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?] ```
PieKing1215 commented 3 years ago

Thanks for the report, should be fixed in v0.2.1.

BeeFox-sys commented 3 years ago

Sodium crash has returned when used in conjunction with the dev builds of sodium 1.17, I am aware these builds are unstable, but I figure better warn you now then have to wait until sodium 1.17 is out

PieKing1215 commented 3 years ago

Thanks for the reminder, v0.2.1 added sodium compatibility but since there was no sodium for 1.17 at the time I had to disable it for the 1.17 build. With 1.17 release, the maven repo sodium was on stopped working so that complicates things slightly, but I should hopefully get around to re-adding the compatibility within a few days. (reopening so I remember)

PieKing1215 commented 3 years ago

Sorry for the long wait, should be fixed in v0.2.2. lmk if anything acts up again