From b0c154881683d6d5cb25569db32037c35498facb Mon Sep 17 00:00:00 2001 From: Juuz Date: Wed, 20 Aug 2025 20:13:18 +0300 Subject: Support multiple input jars (#553) * Support multiple input jars This is needed for FabricMC/fabric-loom#1354. * Remove unnecessary null check in GuiController.reloadAll * Remove outdated TODO--- .../main/java/cuchaz/enigma/network/DedicatedEnigmaServer.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'enigma-server') diff --git a/enigma-server/src/main/java/cuchaz/enigma/network/DedicatedEnigmaServer.java b/enigma-server/src/main/java/cuchaz/enigma/network/DedicatedEnigmaServer.java index fbee40d0..f20a9d29 100644 --- a/enigma-server/src/main/java/cuchaz/enigma/network/DedicatedEnigmaServer.java +++ b/enigma-server/src/main/java/cuchaz/enigma/network/DedicatedEnigmaServer.java @@ -5,6 +5,7 @@ import java.io.PrintWriter; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.List; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingDeque; @@ -55,7 +56,7 @@ public class DedicatedEnigmaServer extends EnigmaServer { public static void main(String[] args) { OptionParser parser = new OptionParser(); - OptionSpec jarOpt = parser.accepts("jar", "Jar file to open at startup").withRequiredArg().required().withValuesConvertedBy(PathConverter.INSTANCE); + OptionSpec jarOpt = parser.accepts("jar", "Jar file to open at startup; if there are multiple jars, the order must be the same between the server and all clients").withRequiredArg().required().withValuesConvertedBy(PathConverter.INSTANCE); OptionSpec mappingsOpt = parser.accepts("mappings", "Mappings file to open at startup").withRequiredArg().required().withValuesConvertedBy(PathConverter.INSTANCE); @@ -68,7 +69,7 @@ public class DedicatedEnigmaServer extends EnigmaServer { OptionSpec logFileOpt = parser.accepts("log", "The log file to write to").withRequiredArg().withValuesConvertedBy(PathConverter.INSTANCE).defaultsTo(Paths.get("log.txt")); OptionSet parsedArgs = parser.parse(args); - Path jar = parsedArgs.valueOf(jarOpt); + List jars = parsedArgs.valuesOf(jarOpt); Path mappingsFile = parsedArgs.valueOf(mappingsOpt); Path profileFile = parsedArgs.valueOf(profileOpt); int port = parsedArgs.valueOf(portOpt); @@ -85,12 +86,12 @@ public class DedicatedEnigmaServer extends EnigmaServer { DedicatedEnigmaServer server; try { - byte[] checksum = Utils.zipSha1(parsedArgs.valueOf(jarOpt)); + byte[] checksum = Utils.zipSha1(jars.toArray(new Path[0])); EnigmaProfile profile = EnigmaProfile.read(profileFile); Enigma enigma = Enigma.builder().setProfile(profile).build(); System.out.println("Indexing Jar..."); - EnigmaProject project = enigma.openJar(jar, new ClasspathClassProvider(), ProgressListener.none()); + EnigmaProject project = enigma.openJars(jars, new ClasspathClassProvider(), ProgressListener.none()); MappingFormat mappingFormat = MappingFormat.ENIGMA_DIRECTORY; EntryRemapper mappings; -- cgit v1.2.3