hlysine/create_connected

Incompatibility with Radium's Pathfinding Optimizations

Closed this issue · 3 comments

Seems like there's some kind of Mixin incompatibility with Radium's pathfinding optimizations. I'm unable to load a world after updating to 0.6.1 on 1.19.2 with Radium 0.8.2. I can provide my logs if needed but it's mostly 130000 lines of the same Mixin apply failed error. Disabling Radium's optimizations does fix the issue but it would be awesome if there could be a permanent fix made!

Error
[24Jan2024 23:52:00.817] [Worker-Main7/FATAL] [mixin/]: Mixin apply failed create_connected.mixins.json:copycat.fencegate.WalkNodeEvaluatorMixin -> net.minecraft.world.level.pathfinder.WalkNodeEvaluator: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("INVOKE") on net/minecraft/world/level/pathfinder/WalkNodeEvaluator::getWrappedBlock with priority 1000 cannot inject into net/minecraft/world/level/pathfinder/WalkNodeEvaluator::m_77643_(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/pathfinder/BlockPathTypes; merged by me.jellysquid.mods.lithium.mixin.ai.pathing.LandPathNodeMakerMixin with priority 1000 [PREINJECT Applicator Phase -> create_connected.mixins.json:copycat.fencegate.WalkNodeEvaluatorMixin -> Prepare Injections ->  -> wrapOperation$dmd000$getWrappedBlock(Lnet/minecraft/world/level/block/state/BlockState;Lcom/llamalad7/mixinextras/injector/wrapoperation/Operation;)Lnet/minecraft/world/level/block/Block; -> Prepare]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/world/level/pathfinder/WalkNodeEvaluator::getWrappedBlock with priority 1000 cannot inject into net/minecraft/world/level/pathfinder/WalkNodeEvaluator::m_77643_(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/pathfinder/BlockPathTypes; merged by me.jellysquid.mods.lithium.mixin.ai.pathing.LandPathNodeMakerMixin with priority 1000 [PREINJECT Applicator Phase -> create_connected.mixins.json:copycat.fencegate.WalkNodeEvaluatorMixin -> Prepare Injections ->  -> wrapOperation$dmd000$getWrappedBlock(Lnet/minecraft/world/level/block/state/BlockState;Lcom/llamalad7/mixinextras/injector/wrapoperation/Operation;)Lnet/minecraft/world/level/block/Block; -> Prepare]
	at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:305) ~[mixin-0.8.5.jar%2397!/:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[mixin-0.8.5.jar%2397!/:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:421) ~[mixin-0.8.5.jar%2397!/:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at com.llamalad7.mixinextras.injector.wrapoperation.WrapOperationInjectionInfo.prepare(WrapOperationInjectionInfo.java:38) ~[MixinExtras-0.3.5.jar%23665!/:?]
	at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1319) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1042) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:383) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:365) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4]
	at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-10.0.8.jar:10.0.8+10.0.8+main.0ef7e830]
	at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.8.jar:?]
	at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.8.jar:?]
	at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.8.jar:?]
	at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.4.jar:?]
	at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.4.jar:?]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?]
	at me.jellysquid.mods.lithium.common.ai.pathing.PathNodeDefaults.getNodeType(PathNodeDefaults.java:68) ~[radium-0.8.2.jar%23573!/:?]
	at net.minecraft.world.level.block.Block.getPathNodeType(Block.java:2148) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.handler$bhg002$init(BlockBehaviour.java:2902) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_60611_(BlockBehaviour.java:471) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.mfix$generateCache(BlockBehaviour.java:2415) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_60823_(BlockBehaviour.java) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.chunk.LevelChunkSection.m_62991_(LevelChunkSection.java:93) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.chunk.LevelChunkSection.m_62986_(LevelChunkSection.java:67) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.chunk.ProtoChunk.m_6978_(ProtoChunk.java:131) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.levelgen.FlatLevelSource.m_213974_(FlatLevelSource.java:77) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.chunk.ChunkStatus.m_223331_(ChunkStatus.java:101) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.world.level.chunk.ChunkStatus.m_223279_(ChunkStatus.java:292) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$25(ChunkMap.java:621) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-5.0.28.jar%23126!/:?]
	at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:619) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~[?:?]
	at java.util.concurrent.CompletableFuture$Completion.run(Unknown Source) ~[?:?]
	at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) [client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) [client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) [client-1.19.2-20220805.130853-srg.jar%23619!/:?]
	at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source) [?:?]
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) [?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) [?:?]
	at java.util.concurrent.ForkJoinPool.scan(Unknown Source) [?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) [?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) [?:?]

This should be an easy one to fix. C:Connected's patch on the pathfinder is non-essential, so I can just make the patch optional in case Radium is present. I'll post a dev version for testing later.

UNZIP ME create_connected-0.6.1-dev-mc1.19.2-all.zip

Please try out this dev version. C:Connected now applies a Radium-specific patch instead if it is installed.

Works great! World loads just fine with that version.