You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On 1.7.10 (and I assume any previous versions), inner classes use intermediary names despite there existing yarn mappings for them. This is ostensibly because the tooling assumes official inner class names start with <parent_name>$, which is only true starting from 1.8.
Example (1.7.10)
class_1253$class_1254 is mapped as MineshaftPieces$MineshaftCorridor...
Examining mappings.tiny in the Gradle cache (~/.gradle/caches/fabric-loom/1.7.10/net.legacyfabric.yarn.1_7_10.1.7.10+build.458-v2/mappings.tiny), we can see the following weirdness:
c asy net/minecraft/class_1254 net/minecraft/structure/class_1254
The class is missing the yarn name. And later in the file, the class appears again, this time with the intermediary name where the official name should be:
c net/minecraft/class_1253$class_1254 net/minecraft/class_1253$class_1254 net/minecraft/structure/MineshaftPieces$MineshaftCorridor
It's because before 1.8.2, Mojang was stripping inner class info from the inner classes so for those versions they appear as independent classes with weird synthetic fields.
On 1.7.10 (and I assume any previous versions), inner classes use intermediary names despite there existing yarn mappings for them. This is ostensibly because the tooling assumes official inner class names start with
<parent_name>$
, which is only true starting from 1.8.Example (1.7.10)
class_1253$class_1254
is mapped asMineshaftPieces$MineshaftCorridor
...yarn/mappings/net/minecraft/structure/MineshaftPieces.mapping
Line 21 in 297efef
But in
minecraft-merged-named.jar
after importing the example mod, the intermediary name is used, and the class is not an inner class:Examining
mappings.tiny
in the Gradle cache (~/.gradle/caches/fabric-loom/1.7.10/net.legacyfabric.yarn.1_7_10.1.7.10+build.458-v2/mappings.tiny
), we can see the following weirdness:The class is missing the yarn name. And later in the file, the class appears again, this time with the intermediary name where the official name should be:
The class is also treated like a non-inner class in the intermediary mapping:
Example (1.8.9)
Let's compare this with 1.8.9, which works correctly.
In
mappings.tiny
, there is only a single class containingclass_1254
in its name:We can see that its official name contains the parent class's name before a
$
character. This isaqg
for reference:Intermediary also correctly shows the class as an inner class:
Fixing it
Fixing this will possibly require changes in Enigma, since it ignores what comes before
$
in yarn names, and establishes the parent class relationship by checking the name that comes before the$
in the official name (which, in 1.7.10's case, does not exist). I wasn't able to fix the issue by manually changing the intermediary mapping toCLASS asy net/minecraft/class_1253$class_1254
for this reason.The text was updated successfully, but these errors were encountered: