diff options
| author | Juuxel <6596629+Juuxel@users.noreply.github.com> | 2020-12-02 20:19:57 +0200 |
|---|---|---|
| committer | Juuxel <6596629+Juuxel@users.noreply.github.com> | 2020-12-02 20:19:57 +0200 |
| commit | b61373f92074ec67c1cf70c1063049d25417dfe9 (patch) | |
| tree | ac424124419b3cd43fc4cc3b519a1759b3df07e4 /src/main | |
| parent | 028ae4a4ac5fe0a2ff5e866af276726f28cc684e (diff) | |
| download | architectury-loom-b61373f92074ec67c1cf70c1063049d25417dfe9.tar.gz architectury-loom-b61373f92074ec67c1cf70c1063049d25417dfe9.tar.bz2 architectury-loom-b61373f92074ec67c1cf70c1063049d25417dfe9.zip | |
at go brrr
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java | 6 | ||||
| -rw-r--r-- | src/main/java/net/fabricmc/loom/util/JarUtil.java | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java index 4c74b343..f328cce3 100644 --- a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java @@ -42,6 +42,7 @@ import com.google.common.collect.ImmutableMap; import org.gradle.api.Project; import net.fabricmc.loom.util.TinyRemapperMappingsHelper; +import net.fabricmc.loom.util.srg.AtRemapper; import net.fabricmc.loom.util.srg.CoreModClassRemapper; import net.fabricmc.mapping.tree.TinyTree; import net.fabricmc.tinyremapper.NonClassCopyMode; @@ -158,6 +159,7 @@ public class MinecraftMappedProvider extends DependencyProvider { } TinyTree yarnWithSrg = getExtension().getMappingsProvider().getMappingsWithSrg(); + AtRemapper.remap(output, yarnWithSrg); CoreModClassRemapper.remapJar(output, yarnWithSrg, getProject().getLogger()); } } @@ -169,6 +171,10 @@ public class MinecraftMappedProvider extends DependencyProvider { .withMappings(out -> JSR_TO_JETBRAINS.forEach(out::acceptClass)) .renameInvalidLocals(true) .rebuildSourceFilenames(true) + /* FORGE: Required for classes like aej$OptionalNamedTag (1.16.4) which are added by Forge patches. + * They won't get remapped to their proper packages, so IllegalAccessErrors will happen without ._. + */ + .fixPackageAccess(true) .build(); } diff --git a/src/main/java/net/fabricmc/loom/util/JarUtil.java b/src/main/java/net/fabricmc/loom/util/JarUtil.java index e3690373..29eb996c 100644 --- a/src/main/java/net/fabricmc/loom/util/JarUtil.java +++ b/src/main/java/net/fabricmc/loom/util/JarUtil.java @@ -30,6 +30,7 @@ import java.net.URI; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; +import java.nio.file.Path; import com.google.common.collect.ImmutableMap; @@ -41,7 +42,9 @@ import com.google.common.collect.ImmutableMap; public final class JarUtil { public static void extractFile(File jar, String filePath, File target) throws IOException { try (FileSystem fs = FileSystems.newFileSystem(URI.create("jar:" + jar.toURI()), ImmutableMap.of("create", false))) { - Files.copy(fs.getPath(filePath), target.toPath()); + Path targetPath = target.toPath(); + Files.deleteIfExists(targetPath); + Files.copy(fs.getPath(filePath), targetPath); } } } |
