aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorJuuxel <6596629+Juuxel@users.noreply.github.com>2020-12-02 20:19:57 +0200
committerJuuxel <6596629+Juuxel@users.noreply.github.com>2020-12-02 20:19:57 +0200
commitb61373f92074ec67c1cf70c1063049d25417dfe9 (patch)
treeac424124419b3cd43fc4cc3b519a1759b3df07e4 /src/main
parent028ae4a4ac5fe0a2ff5e866af276726f28cc684e (diff)
downloadarchitectury-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.java6
-rw-r--r--src/main/java/net/fabricmc/loom/util/JarUtil.java5
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);
}
}
}