From f8a465377ca83941f51a71e70e50fec0041804b4 Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Fri, 31 Oct 2025 13:52:23 +0200 Subject: [PATCH] Fix using Enigma mappings with mod-provided javadoc (#1411) - Fixes using formats with inherently multiple namespaces by actually only checking for the presence of dst names instead of dst namespaces. - Fixes using formats without namespace ids by replacing the fallback namespaces with intermediary and named. --- .../processors/ModJavadocProcessor.java | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java b/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java index 2b74dfb2..2e9abbc3 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/ModJavadocProcessor.java @@ -1,7 +1,7 @@ /* * This file is part of fabric-loom, licensed under the MIT License (MIT). * - * Copyright (c) 2022 FabricMC + * Copyright (c) 2022-2025 FabricMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.Objects; import javax.inject.Inject; @@ -50,7 +51,12 @@ import net.fabricmc.loom.api.processor.SpecContext; import net.fabricmc.loom.util.Checksum; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.fmj.FabricModJson; +import net.fabricmc.mappingio.MappedElementKind; import net.fabricmc.mappingio.MappingReader; +import net.fabricmc.mappingio.MappingUtil; +import net.fabricmc.mappingio.MappingVisitor; +import net.fabricmc.mappingio.adapter.ForwardingMappingVisitor; +import net.fabricmc.mappingio.adapter.MappingNsRenamer; import net.fabricmc.mappingio.tree.MappingTree; import net.fabricmc.mappingio.tree.MemoryMappingTree; @@ -127,7 +133,16 @@ public abstract class ModJavadocProcessor implements MinecraftJarProcessor fallbackNamespaceReplacements = Map.of( + MappingUtil.NS_SOURCE_FALLBACK, MappingsNamespace.INTERMEDIARY.toString(), + MappingUtil.NS_TARGET_FALLBACK, MappingsNamespace.NAMED.toString() + ); + final MappingNsRenamer renamer = new MappingNsRenamer(mappings, fallbackNamespaceReplacements); + final DstNameCheckingVisitor checker = new DstNameCheckingVisitor(modId, renamer); + MappingReader.read(reader, checker); } } catch (IOException e) { throw new UncheckedIOException("Failed to read javadoc from mod: " + modId, e); @@ -137,10 +152,6 @@ public abstract class ModJavadocProcessor implements MinecraftJarProcessor