architectury / architectury-loom

A Gradle plugin to setup environments for Fabric, Forge, NeoForge and Quilt modding.
https://docs.architectury.dev/loom/introduction
MIT License
110 stars 37 forks source link

Mods built with Architectury are not being remapped #106

Open rlnt opened 1 year ago

rlnt commented 1 year ago

When using Arch Loom instead of FG on 1.19.2 all modern versions (1.19+), all vanilla methods and fields in mods that are made with Architectury are not being remapped. Tested it with KubeJS and Roughly Enough Items which both use Architectury.

It works fine on Fabric with Fabric Loom and the respective Fabric modules.

This doesn't only happen in a multiloader environment, this also happens on Forge only mods with only Arch Loom.

Reproduced with Arch Loom:

KubeJS Fabric with Fabric Loom: KubeJS Forge with Arch Loom:

Juuxel commented 1 year ago

Note that this is just an issue with sources and not bytecode as discussed on discord

ajh123 commented 1 year ago

I'm I having this problem too. I'm trying to the Markdown Manual mod in my mod. It uses the Mojang Mappings so my Yarn project doesn't find the Mojmap specific classes.

I thought of using layered mappings like this ->

...
    dependencies {
...
        mappings loom.layered { // We want to use both mappings, but the use the Mojang ones as a fallback.
            mappings("net.fabricmc:yarn:${rootProject.yarn_mappings}:v2")
            officialMojangMappings()
        }
    }
...

But that causes some Unfixable conflicts errors when I refresh Gradle.

Edit: And if I use only the Yarn mapping. Gradle fails to compile anything where I use Markdown Manual classes in my mod.

Edit2: I also tried to swap the mappings around. But, that didn't work so I'm just using Yarn on its own without having the other mod as a dependency.

rlnt commented 11 months ago

I'd like to mention that this issue is still present in modern versions. As of right now, I am using arch loom 1.3.+ on Minecraft 1.19.2 with Gradle 8.1.1.

This issue only appears when working with other mods that are built with Architectury in your dev environment. Using a modImplementation on ForgeGradle mods works fine but doing the same for an Architectury mod like KubeJS still results in unmapped methods:

rlnt commented 5 months ago

Just an update that this still happens in 1.20.4 and NeoGradle doesn't have this problem: