mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-02 05:27:43 -05:00
whatever I did yesterday
This commit is contained in:
@@ -58,7 +58,6 @@ import de.oceanlabs.mcp.mcinjector.adaptors.ParameterAnnotationFixer;
|
||||
import dev.architectury.tinyremapper.OutputConsumerPath;
|
||||
import dev.architectury.tinyremapper.TinyRemapper;
|
||||
import net.minecraftforge.binarypatcher.ConsoleTool;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.io.output.NullOutputStream;
|
||||
import org.gradle.api.Project;
|
||||
@@ -336,7 +335,7 @@ public class MinecraftPatchedProvider extends DependencyProvider {
|
||||
File injection = File.createTempFile("loom-injection", ".jar");
|
||||
|
||||
try (InputStream in = MinecraftProvider.class.getResourceAsStream("/inject/injection.jar")) {
|
||||
FileUtils.copyInputStreamToFile(in, injection);
|
||||
Files.copy(in, injection.toPath());
|
||||
}
|
||||
|
||||
for (Environment environment : Environment.values()) {
|
||||
@@ -359,16 +358,15 @@ public class MinecraftPatchedProvider extends DependencyProvider {
|
||||
logger.lifecycle(":access transforming minecraft");
|
||||
|
||||
File input = minecraftMergedPatchedSrgJar;
|
||||
File inputCopied = File.createTempFile("at", ".jar");
|
||||
FileUtils.copyFile(input, inputCopied);
|
||||
File target = minecraftMergedPatchedSrgAtJar;
|
||||
Files.deleteIfExists(target.toPath());
|
||||
File at = File.createTempFile("at", ".cfg");
|
||||
JarUtil.extractFile(inputCopied, "META-INF/accesstransformer.cfg", at);
|
||||
File at = File.createTempFile("at-conf", ".cfg");
|
||||
at.deleteOnExit();
|
||||
JarUtil.extractFile(input, "META-INF/accesstransformer.cfg", at);
|
||||
|
||||
List<String> args = new ArrayList<>();
|
||||
args.add("--inJar");
|
||||
args.add(inputCopied.getAbsolutePath());
|
||||
args.add(input.getAbsolutePath());
|
||||
args.add("--outJar");
|
||||
args.add(target.getAbsolutePath());
|
||||
args.add("--atFile");
|
||||
@@ -389,7 +387,6 @@ public class MinecraftPatchedProvider extends DependencyProvider {
|
||||
spec.setStandardOutput(System.out);
|
||||
}
|
||||
}).rethrowFailure().assertNormalExitValue();
|
||||
inputCopied.delete();
|
||||
}
|
||||
|
||||
public enum Environment {
|
||||
@@ -485,14 +482,14 @@ public class MinecraftPatchedProvider extends DependencyProvider {
|
||||
private void mergeJars(Logger logger) throws IOException {
|
||||
// FIXME: Hack here: There are no server-only classes so we can just copy the client JAR.
|
||||
// This will change if upstream Loom adds the possibility for separate projects/source sets per environment.
|
||||
FileUtils.copyFile(minecraftClientPatchedSrgJar, minecraftMergedPatchedSrgJar);
|
||||
Files.copy(minecraftClientPatchedSrgJar.toPath(), minecraftMergedPatchedSrgJar.toPath());
|
||||
|
||||
logger.lifecycle(":copying resources");
|
||||
|
||||
// Copy resources
|
||||
MinecraftProvider minecraftProvider = getExtension().getMinecraftProvider();
|
||||
copyNonClassFiles(minecraftProvider.minecraftClientJar, minecraftMergedPatchedJar);
|
||||
copyNonClassFiles(minecraftProvider.minecraftServerJar, minecraftMergedPatchedJar);
|
||||
copyNonClassFiles(minecraftProvider.minecraftClientJar, minecraftMergedPatchedSrgJar);
|
||||
copyNonClassFiles(minecraftProvider.minecraftServerJar, minecraftMergedPatchedSrgJar);
|
||||
}
|
||||
|
||||
private void walkFileSystems(File source, File target, Predicate<Path> filter, Function<FileSystem, Iterable<Path>> toWalk, FsPathConsumer action)
|
||||
|
||||
@@ -80,6 +80,8 @@ public final class FileSystemUtil {
|
||||
return new FileSystemDelegate(FileSystems.newFileSystem(jarUri, create ? jfsArgsCreate : jfsArgsEmpty), true);
|
||||
} catch (FileSystemAlreadyExistsException e) {
|
||||
return new FileSystemDelegate(FileSystems.getFileSystem(jarUri), false);
|
||||
} catch (IOException e) {
|
||||
throw new IOException("Could not create JAR file system for " + uri + " (create: " + create + ")", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,14 +26,9 @@ package net.fabricmc.loom.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Working with jars.
|
||||
*
|
||||
@@ -41,10 +36,10 @@ 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))) {
|
||||
try (FileSystemUtil.FileSystemDelegate fs = FileSystemUtil.getJarFileSystem(jar, false)) {
|
||||
Path targetPath = target.toPath();
|
||||
Files.deleteIfExists(targetPath);
|
||||
Files.copy(fs.getPath(filePath), targetPath);
|
||||
Files.copy(fs.get().getPath(filePath), targetPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user