mixin conflict while lauching server
TheRanker opened this issue · 27 comments
main issue being
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinPreProcessorException: Attach error for amethyst_imbuement.mixins.json:MiningToolItemMixin during activity: [Transform -> Method postMine(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;Lnet/minecraft/class_1309;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> INVOKEVIRTUAL -> net/minecraft/class_304::method_1434:()Z]
unable to decipher the log to include more info.. hope its enough to get the ball rolling
thanks for this fantastic mod!!! please keep up the good work
Interesting. Can you send me the log when you launch without Amethyst Imbuement included?
This appears to be something to do with Fabric Versions getting confused by something. I do want to point out that there is another mod conflict in this log!:
[22:18:18] [main/WARN]: @ModifyConstant conflict. Skipping yungsapi.mixins.json:IncreaseStructureWeightLimitMixin->@ModifyConstant::yungsapi_increaseWeightLimit(I)I from mod yungsapi with priority 1000, already redirected by repurposed_structures.mixins.json:structures.StructurePoolMixin->@ModifyConstant::repurposedstructures_increaseWeightLimitProd(I)I from mod repurposed_structures with priority 1000
This is the bit that's throwing my mod off, something is confusing java as to which classes Minecraft has (including the one my mixin needs, class_304). The last time I've seen this it's because a mod has a dependency with an improper version of Fabric API included:
[22:17:56] [main/WARN]: @Mixin target net.minecraft.class_759 was not found alkimicraft.mixins.json:HeldItemRendererMixin
[22:17:56] [main/WARN]: Error loading class: net/minecraft/class_634 (java.lang.ClassNotFoundException: net/minecraft/class_634)
[22:17:56] [main/WARN]: @Mixin target net.minecraft.class_634 was not found amethyst_imbuement.mixins.json:ClientPlayNetworkHandlerMixin
[22:17:56] [main/WARN]: Error loading class: net/minecraft/class_756 (java.lang.ClassNotFoundException: net/minecraft/class_756)
[22:17:56] [main/WARN]: @Mixin target net.minecraft.class_756 was not found amethyst_imbuement.mixins.json:GlisteringTridentModelMixin
[22:17:57] [main/WARN]: Error loading class: net/minecraft/class_5602 (java.lang.ClassNotFoundException: net/minecraft/class_5602)
[22:17:57] [main/WARN]: @Mixin target net.minecraft.class_5602 was not found catsexpanded.mixins.json:AccessorEntityModelLayers
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_338 (java.lang.ClassNotFoundException: net/minecraft/class_338)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_338 was not found dcch.mixins.json:DCCHMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_742 (java.lang.ClassNotFoundException: net/minecraft/class_742)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_742 was not found earthbounds.mixins.json:FlingshotFOVMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_746 (java.lang.ClassNotFoundException: net/minecraft/class_746)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_746 was not found earthbounds.mixins.json:FlingshotMovementBoostMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_299 (java.lang.ClassNotFoundException: net/minecraft/class_299)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_299 was not found earthbounds.mixins.json:RecipeBookGroupInjector
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_304 (java.lang.ClassNotFoundException: net/minecraft/class_304)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_304 was not found ftblibrary-fabric.mixins.json:KeyMappingAccessor
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_575 (java.lang.ClassNotFoundException: net/minecraft/class_575)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_575 was not found illagerexp.mixins.json:IllagerModelMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_606 (java.lang.ClassNotFoundException: net/minecraft/class_606)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_606 was not found illagerexp.mixins.json:SurrenderedChargeMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_472 (java.lang.ClassNotFoundException: net/minecraft/class_472)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_472 was not found magicfungi.mixins.json:BrewingStandScreenAccessor
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_465 (java.lang.ClassNotFoundException: net/minecraft/class_465)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_465 was not found magicfungi.mixins.json:HandledScreenAccessor
[22:17:58] [main/INFO]: [minekea_mixins] BCLib is not loaded. Enabling EnchantingTableBlockMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_922 (java.lang.ClassNotFoundException: net/minecraft/class_922)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_922 was not found hangman.mixins.json:EntitySitOrHangOnNoose
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_746 (java.lang.ClassNotFoundException: net/minecraft/class_746)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_746 was not found neutrino.mixins.json:ClientPlayerEntityMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_4603 (java.lang.ClassNotFoundException: net/minecraft/class_4603)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_4603 was not found neutrino.mixins.json:InGameOverlayRendererMixin
[22:17:58] [main/WARN]: Error loading class: net/minecraft/class_1088 (java.lang.ClassNotFoundException: net/minecraft/class_1088)
[22:17:58] [main/WARN]: @Mixin target net.minecraft.class_1088 was not found neutrino.mixins.json:ModelLoaderMixin
[22:17:59] [main/WARN]: Error loading class: net/minecraft/class_906 (java.lang.ClassNotFoundException: net/minecraft/class_906)
[22:17:59] [main/WARN]: @Mixin target net.minecraft.class_906 was not found spectrum.mixins.json:FishingBobberEntityRendererMixin
[22:17:59] [main/WARN]: Error loading class: net/minecraft/class_763 (java.lang.ClassNotFoundException: net/minecraft/class_763)
[22:17:59] [main/WARN]: @Mixin target net.minecraft.class_763 was not found spectrum.mixins.json:ItemModelsMixin
......
[22:18:23] [main/WARN]: Error loading class: net/minecraft/class_304 (java.lang.ClassNotFoundException: net/minecraft/class_304)
interesting. yeah i use yungs api + paxi , as a datapack loader. its ok that repurprosed structures overrides it.
ill get you a server log loaded without amethyst imbuement. mind you there may be conflicts as well , as im currently working on getting it optimized.
with_amethyst_imbuement.log
without_amethyst_imbuement.log
new world for each. one with , one without amethyst imbuement.
If you look in this log, you'll see there's still a pretty big pile of missing classes. I would definitely look into that issue, as it likely means that 17 or so mixins are not working.
The only reason I can think that my particular mixin caused a crash was because it was cancellable. Looking at some of the other mixins having issues but not crashing, they aren't. So, I've made a quick version tweak with the cancellable-ness gone. Can you check it? I'm putting it here rather than bothering with versioning CF. (The .jar is inside the .zip)
I can certainly test. And yes I'm looking into it all. Haha part of the process. :) Thanks for all help. I'll let you know of the outcome
i havent read it yet.. but it crashed with the test jar.
latest_with_test_jar.log
Darn, ok, here's another one to try.
sorry bout the delay. got caught up with rl stuff. and another issue lol
latest.log
it failed to load using the version b jar as well
Unfortunately I am out of ideas for workarounds to the issue at hand... The only solution I see is a removal-by-halves test of the mods in the pack until the offending mod(s) that's causing the class loading error is found.
Okies. I'll look into it further and I'll get you more information. Need this working for me. :)
alright..
@fzzyhmstrs
. so here is the details
latest.log
Only Amethyst Imbuement and WTHIT .(waila fork). on Fabric API 51. .... and same crash.. same mixin.
mods used....
amethyst imbuement with the ranker b test jar.
fabric api 51,
fabric lang kotlin 1.7.3
wmitaf (what mod is that from)
wthit (what the hell is that) waila fork
latest.log
heres log without wmitaf and wthit...
this is fabric api 51, fabric lang kotlin.. and ur ranker b jar.
ill test official jars now.. (cf release)
latest.log
same crash with official CF jar. vanilla fabric. no mods.
remember.. this is all server side. ... cant launch... client side works for single player.
so... Basically.... to Replicate
Step 1... Add Amethyst Imbuement to a Fabric server with fapi 51.
step 2... Launch Server
Step 3.. Read latest.log for crash. (no crash in crash-reports gets generated)
edit again.... tested multiple fabric apis... none work. same with koltin... same crash every time you try to launch vanilla fabric server with amethyst imbuement.
Urgh, thanks a lot for the detailed testing...... there were some very esoteric issues with AI that I think I FINALLY understand and have resolved. I tossed it into a quick server of my own prepared in basically the same way you have yours above, and it seems to not crash!
There still may be an issue with the REI server plugin not loading on dedicated servers, but I can get all the way through spawn location initialization etc. The plugin not loading might affect auto-moving of items from inventories for the imbuing table and crystal altar, but I don't think anything else would be affected.
Jar attached for you:
I've solved the REI plugin issue also, and made a public rev of the .jars with the fixes included (1.18.2-05 and 1.18.1-04).
Thank you very much for your patience with this issue. If there still is some server issue on your end please reopen to let me know!
Thank you for sending in the issues! I'd much rather that than silence lol. The crash issue is with my mod trying to give repurposed structures some loot table additions from my items, and wrongly trying to access the client while doing so. I've hopefully scrubbed out any potential client class issues, but that's probably jinxing myself.
Another TheRankerTest for you. My little dummy server launched successfully with this test update as well as the repurposed structures and feature_nbt_deadlock_be_gone versions you have in your log.
amethyst_imbuement-1.18.2-04-TheRankerTest-d.zip
ill test on my little test server then on my modpack dev server. ill report bakc wiht my findings :)
In regards to this:
[22:18:18] [main/WARN]: @ModifyConstant conflict. Skipping yungsapi.mixins.json:IncreaseStructureWeightLimitMixin->@ModifyConstant::yungsapi_increaseWeightLimit(I)I from mod yungsapi with priority 1000, already redirected by repurposed_structures.mixins.json:structures.StructurePoolMixin->@ModifyConstant::repurposedstructures_increaseWeightLimitProd(I)I from mod repurposed_structures with priority 1000
This is intended between me and yung’s. We both wanted to increase the hardcoded pool weight constant in a codec. So we use Modifyconstant but set required to false so that when anyone else mixins that constant, our own mixins will not crash the game. It will simply long that message and everything moves on.
Whatever issue is causing the crash here isn’t related to the pool weight mixins
Thank you for sending in the issues! I'd much rather that than silence lol. The crash issue is with my mod trying to give repurposed structures some loot table additions from my items, and wrongly trying to access the client while doing so. I've hopefully scrubbed out any potential client class issues, but that's probably jinxing myself.
Another TheRankerTest for you. My little dummy server launched successfully with this test update as well as the repurposed structures and feature_nbt_deadlock_be_gone versions you have in your log. amethyst_imbuement-1.18.2-04-TheRankerTest-d.zip
I can’t read the log on mobile but yeah. What my mod does is it generates the loot from vanilla loot tables as soon as a user opens one of my structure’s chests. Then I pull all modded items from that loot table. And then I add the loot to my own chest’s loot table. This way, I maximize mod compatibility with spawning modded items in my mod’s chests for my structure variants of vanilla structures. This is the code that handles that modded loot importing
failed to create world with server.. and 1 othe rmod.. repurposed strcutures.. you may want to contact that dev since he is the one that writes almost all of fabric world generation . he also gives out tutorials on how to do certain things.
somethign in your mod is conflicting with his.
Ok, well at least I know what the issue is right away this time.... it's a client-based class in a loot table generator that shouldn't be there running into the fact that there is not a client.
I'm going through and checking for clientside classes now and removing any I find not in the right place. Should be done soon.
failed on first load.. with my modpack. .seen it conflcited with repurposed structures.. so i did a small profile with just your mod and that mod + dependancies to isolate the issue.. got same error lol
sorry for always posting issues. but hey, i wanna use it. and so do others.. so lets get it going smoothly lol
@TelepathicGrunt thank you for the additional info!
Just one last thing, i noticed this class: https://github.com/fzzyhmstrs/ai/blob/5efab10124397e93ea8b6d4088a060241aba33bf/src/main/kotlin/me/fzzyhmstrs/amethyst_imbuement/loot/RepurposedStructuresLoot.kt
if this is adding your custom loot into my mod's loot tables, this means my automatic modded loot importing is also going to be running and users will end up with twice the modded loot from your mod in my chests. Do you want to continue to handle adding the loot to my mod or would you rather let my mod continue to import your loot? I can add a check on my end to not import any amethyst_imbuement namespaced items so that only your mod controls the loot injection into my loot tables
Just one last thing, i noticed this class: https://github.com/fzzyhmstrs/ai/blob/5efab10124397e93ea8b6d4088a060241aba33bf/src/main/kotlin/me/fzzyhmstrs/amethyst_imbuement/loot/RepurposedStructuresLoot.kt
if this is adding your custom loot into my mod's loot tables, this means my automatic modded loot importing is also going to be running and users will end up with twice the modded loot from your mod in my chests. Do you want to continue to handle adding the loot to my mod or would you rather let my mod continue to import your loot? I can add a check on my end to not import any amethyst_imbuement namespaced items so that only your mod controls the loot injection into my loot tables
Your mod can do the work! I've already unregistered that class from my loot loader in the verison I'm currently working on so your mod can do it.