Hello,
I recently finished developing my first Minecraft mod for version 1.20.1 but I'm having an issue with running the mod outside of my development environment. I'm able to run it fine using ./gradlew build :runclient but when I try to take the built jar file and run as someone normally would in the mods folder of Minecraft it crashes with an InvalidAccessorException saying "No candidates were found matching ...". From what I can tell it is an issue with the obfuscation of the attributes/methods which is where I'm kind of stuck. I can't seem to find any thorough documentation that has helped me and the various Github repositories I've looked at don't appear to be doing anything different from what I can tell. I'm new to Minecraft mod development so it's probably something fairly small and simple that I'm missing but I've been ramming my head at this for a few days now and can't seem to figure it out. If anyone can take a look and give me some suggestions I'd really appreciate it. Here is the error, my build.gradle, and gradle.properties but let me know if there is anything else you need. Thanks! Also sorry for not making these drop downs, I don't see a way how to do it if it's possible.
Edit:
After rephrasing how I was searching for my issue I found someone who recently had the same one as me. I tried all the solutions provided in their post though and none of them seemed to work for me. Basically, my mod works fine in the development environment but when I try to use it as you would normally, it crashes because none of the mixins are mapping properly. For some reason it's saying it cant find my mixins.*.refmap.json in this line of the log:
[mixin/]: Reference map 'mixins.taczweaponblueprints.refmap.json' for mixins.taczweaponblueprints.json could not be read. If this is a development environment you can ignore this message
Here is the link to the similar post:
Edit #2:
I have managed to fix the issue with the refmap which was due to a small typo that I kept missing but I'm still having issues with obfuscation. Specifically, with an Invoker for the addRenderableWidget method from the Screen class. I've compared my code to pretty much every other project that I could find which is using the same method but cant seem to see any difference as to why mine is not working. At this point I'm pretty much stuck so if anyone has any Ideas I'd really appreciate it.
Edit #3:
I've tried switching to parchment and using official sources with no luck still. There seems to be no difference that I can tell between what I am doing and what others who are injecting into the same method are as well. I've even tried creating an entirely new empty forge project with only the IScreenAccessor mixin file and it still says "Unable to locate obfuscation mapping". Knowing that, the issue can't just be with my project because otherwise it would work so I'm assuming it's a larger issue on my system. I've compared my accessor code to countless others on github and it's practically identical to many of them so I don't see how that could be wrong either.
Error Log:
https://pastebin.com/Ze0UXV9E
Build.gradle:
https://pastebin.com/PizRZqgw
Refmap:
https://pastebin.com/qee9LETc
IScreenAccessor.java:
https://pastebin.com/Uey88QWG
GunSmithTableScreenMixin.java
https://pastebin.com/Cr7byAY7
AbstractContainerScreenAccssor.java
https://pastebin.com/kfEEQggE
GunSmithTableRecipeAccessor.java
https://pastebin.com/xLUGEGJ9