Skip to content

Commit 97e2099

Browse files
committed
[FIX] Fix launcherBinary problems
1 parent c141920 commit 97e2099

10 files changed

Lines changed: 45 additions & 24 deletions

File tree

components/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ subprojects {
88
publishing {
99
repositories {
1010
mavenLocal()
11+
findProperty("maven.upload.repository")?.let {
12+
maven {
13+
url = uri(it)
14+
}
15+
}
1116
}
1217
publications {
1318
var name = project.name

components/launchserver/src/main/java/pro/gravit/launchserver/binary/tasks/AttachJarsTask.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package pro.gravit.launchserver.binary.tasks;
22

3+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
34
import pro.gravit.launchserver.LaunchServer;
5+
import pro.gravit.launchserver.binary.JARLauncherBinary;
46
import pro.gravit.launchserver.binary.PipelineContext;
57
import pro.gravit.utils.helper.IOHelper;
68

@@ -48,9 +50,9 @@ public Path process(PipelineContext context) throws IOException {
4850
IOHelper.transfer(input, output);
4951
e = input.getNextEntry();
5052
}
51-
attach(output, inputFile, srv.launcherBinary.coreLibs);
53+
attach(output, inputFile, ((JARLauncherBinary)srv.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).coreLibs);
5254
attach(output, inputFile, jars);
53-
for(var entry : srv.launcherBinary.files.entrySet()) {
55+
for(var entry : ((JARLauncherBinary)srv.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).files.entrySet()) {
5456
ZipEntry newEntry = IOHelper.newZipEntry(entry.getKey());
5557
output.putNextEntry(newEntry);
5658
IOHelper.transfer(entry.getValue(), output);

components/launchserver/src/main/java/pro/gravit/launchserver/binary/tasks/MainBuildTask.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
import org.objectweb.asm.tree.FieldNode;
1111
import pro.gravit.launcher.base.Launcher;
1212
import pro.gravit.launcher.base.LauncherConfig;
13+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
1314
import pro.gravit.launchserver.LaunchServer;
1415
import pro.gravit.launchserver.asm.ClassMetadataReader;
1516
import pro.gravit.launchserver.asm.InjectClassAcceptor;
1617
import pro.gravit.launchserver.asm.SafeClassWriter;
1718
import pro.gravit.launchserver.binary.BuildContext;
19+
import pro.gravit.launchserver.binary.JARLauncherBinary;
1820
import pro.gravit.launchserver.binary.PipelineContext;
1921
import pro.gravit.utils.HookException;
2022
import pro.gravit.utils.helper.IOHelper;
@@ -51,14 +53,14 @@ public Path process(PipelineContext pipelineContext) throws IOException {
5153
Path inputJar = pipelineContext.getLastest();
5254
Path outputJar = pipelineContext.makeTempPath("main", ".jar");
5355
try (ZipOutputStream output = new ZipOutputStream(IOHelper.newOutput(outputJar))) {
54-
BuildContext context = new BuildContext(pipelineContext, output, reader.getCp(), this, server.launcherBinary.runtimeDir);
56+
BuildContext context = new BuildContext(pipelineContext, output, reader.getCp(), this, ((JARLauncherBinary)server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).runtimeDir);
5557
initProps(context);
5658
preBuildHook.hook(context);
5759
context.properties.put("launcher.legacymodules", context.legacyClientModules.stream().map(e -> Type.getObjectType(e.replace('.', '/'))).collect(Collectors.toList()));
5860
context.properties.put("launcher.modules", context.clientModules.stream().map(e -> Type.getObjectType(e.replace('.', '/'))).collect(Collectors.toList()));
5961
postInitProps(context);
6062
reader.getCp().add(new JarFile(inputJar.toFile()));
61-
for (Path e : server.launcherBinary.coreLibs) {
63+
for (Path e : ((JARLauncherBinary)server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).coreLibs) {
6264
reader.getCp().add(new JarFile(e.toFile()));
6365
}
6466
context.pushJarFile(inputJar, (e) -> blacklist.contains(e.getName()) || e.getName().startsWith("pro/gravit/launcher/runtime/debug/"), (e) -> true);
@@ -94,7 +96,7 @@ protected void postInitProps(BuildContext context) {
9496
}
9597
}).collect(Collectors.toList());
9698
if (!server.config.sign.enabled) {
97-
CertificateAutogenTask task = server.launcherBinary.getTaskByClass(CertificateAutogenTask.class).get();
99+
CertificateAutogenTask task = server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).getTaskByClass(CertificateAutogenTask.class).get();
98100
try {
99101
certificates.add(task.certificate.getEncoded());
100102
} catch (CertificateEncodingException e) {

components/launchserver/src/main/java/pro/gravit/launchserver/binary/tasks/PrepareBuildTask.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
5+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
56
import pro.gravit.launchserver.LaunchServer;
7+
import pro.gravit.launchserver.binary.JARLauncherBinary;
68
import pro.gravit.launchserver.binary.PipelineContext;
79
import pro.gravit.utils.helper.IOHelper;
810
import pro.gravit.utils.helper.UnpackHelper;
@@ -17,11 +19,13 @@
1719
public class PrepareBuildTask implements LauncherBuildTask {
1820
private final LaunchServer server;
1921
private final Path result;
22+
private final JARLauncherBinary launcherBinary;
2023
private transient final Logger logger = LogManager.getLogger();
2124

2225
public PrepareBuildTask(LaunchServer server) {
2326
this.server = server;
24-
result = server.launcherBinary.buildDir.resolve("Launcher-clean.jar");
27+
launcherBinary = ((JARLauncherBinary)server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR));
28+
result = launcherBinary.buildDir.resolve("Launcher-clean.jar");
2529
}
2630

2731
@Override
@@ -31,12 +35,12 @@ public String getName() {
3135

3236
@Override
3337
public Path process(PipelineContext context) throws IOException {
34-
server.launcherBinary.coreLibs.clear();
35-
server.launcherBinary.addonLibs.clear();
36-
server.launcherBinary.files.clear();
37-
IOHelper.walk(server.launcherLibraries, new ListFileVisitor(server.launcherBinary.coreLibs), false);
38+
launcherBinary.coreLibs.clear();
39+
launcherBinary.addonLibs.clear();
40+
launcherBinary.files.clear();
41+
IOHelper.walk(server.launcherLibraries, new ListFileVisitor(launcherBinary.coreLibs), false);
3842
if(Files.isDirectory(server.launcherLibrariesCompile)) {
39-
IOHelper.walk(server.launcherLibrariesCompile, new ListFileVisitor(server.launcherBinary.addonLibs), false);
43+
IOHelper.walk(server.launcherLibrariesCompile, new ListFileVisitor(launcherBinary.addonLibs), false);
4044
}
4145
try(Stream<Path> stream = Files.walk(server.launcherPack, FileVisitOption.FOLLOW_LINKS).filter((e) -> {
4246
try {
@@ -46,11 +50,11 @@ public Path process(PipelineContext context) throws IOException {
4650
}
4751
})) {
4852
var map = stream.collect(Collectors.toMap(k -> server.launcherPack.relativize(k).toString().replace("\\", "/"), (v) -> v));
49-
server.launcherBinary.files.putAll(map);
53+
launcherBinary.files.putAll(map);
5054
}
5155
UnpackHelper.unpack(PrepareBuildTask.class.getResource("/Launcher.jar"), result);
52-
if(!Files.exists(server.launcherBinary.runtimeDir)) {
53-
Files.createDirectories(server.launcherBinary.runtimeDir);
56+
if(!Files.exists(launcherBinary.runtimeDir)) {
57+
Files.createDirectories(launcherBinary.runtimeDir);
5458
}
5559
return result;
5660
}

components/launchserver/src/main/java/pro/gravit/launchserver/binary/tasks/SignJarTask.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import org.bouncycastle.cms.CMSException;
66
import org.bouncycastle.cms.CMSSignedDataGenerator;
77
import org.bouncycastle.operator.OperatorCreationException;
8+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
89
import pro.gravit.launchserver.LaunchServer;
10+
import pro.gravit.launchserver.binary.JARLauncherBinary;
911
import pro.gravit.launchserver.binary.PipelineContext;
1012
import pro.gravit.launchserver.binary.SignerJar;
1113
import pro.gravit.launchserver.config.LaunchServerConfig;
@@ -87,7 +89,7 @@ private void stdSign(LaunchServerConfig.JarSignerConf config, Path inputFile, Pa
8789

8890
private void autoSign(Path inputFile, Path signedFile) throws IOException {
8991
try (SignerJar output = new SignerJar(new ZipOutputStream(IOHelper.newOutput(signedFile)), () -> {
90-
CertificateAutogenTask task = srv.launcherBinary.getTaskByClass(CertificateAutogenTask.class).get();
92+
CertificateAutogenTask task = srv.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).getTaskByClass(CertificateAutogenTask.class).get();
9193
return task.signedDataGenerator;
9294
},
9395
"AUTOGEN.SF", "AUTOGEN.EC");

components/launchserver/src/main/java/pro/gravit/launchserver/command/tools/SignDirCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
5+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
56
import pro.gravit.launchserver.LaunchServer;
67
import pro.gravit.launchserver.binary.tasks.SignJarTask;
78
import pro.gravit.launchserver.command.Command;
@@ -35,7 +36,7 @@ public void invoke(String... args) throws Exception {
3536
Path targetDir = Paths.get(args[0]);
3637
if (!IOHelper.isDir(targetDir))
3738
throw new IllegalArgumentException("%s not directory".formatted(targetDir));
38-
Optional<SignJarTask> task = server.launcherBinary.getTaskByClass(SignJarTask.class);
39+
Optional<SignJarTask> task = server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).getTaskByClass(SignJarTask.class);
3940
if (task.isEmpty()) throw new IllegalStateException("SignJarTask not found");
4041
IOHelper.walk(targetDir, new SignJarVisitor(task.get()), true);
4142
logger.info("Success signed");

components/launchserver/src/main/java/pro/gravit/launchserver/command/tools/SignJarCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
5+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
56
import pro.gravit.launchserver.LaunchServer;
67
import pro.gravit.launchserver.binary.tasks.SignJarTask;
78
import pro.gravit.launchserver.command.Command;
@@ -38,7 +39,7 @@ public void invoke(String... args) throws Exception {
3839
else
3940
tmpSign = server.dir.resolve("build").resolve(target.toFile().getName());
4041
logger.info("Signing jar {} to {}", target.toString(), tmpSign.toString());
41-
Optional<SignJarTask> task = server.launcherBinary.getTaskByClass(SignJarTask.class);
42+
Optional<SignJarTask> task = server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).getTaskByClass(SignJarTask.class);
4243
if (task.isEmpty()) throw new IllegalStateException("SignJarTask not found");
4344
task.get().sign(server.config.sign, target, tmpSign);
4445
if (args.length == 1) {

components/launchserver/src/main/java/pro/gravit/launchserver/components/ProGuardComponent.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.Logger;
5+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
56
import pro.gravit.launchserver.LaunchServer;
67
import pro.gravit.launchserver.Reconfigurable;
8+
import pro.gravit.launchserver.binary.JARLauncherBinary;
79
import pro.gravit.launchserver.binary.PipelineContext;
810
import pro.gravit.launchserver.binary.tasks.LauncherBuildTask;
911
import pro.gravit.utils.command.Command;
@@ -84,14 +86,14 @@ public void init(LaunchServer launchServer) {
8486
proguardConf = new ProguardConf(launchServer, this);
8587
this.buildTask = new ProGuardBuildTask(launchServer, proguardConf, this);
8688
this.fixerTask = new ProGuardMultiReleaseFixer(launchServer, this, "ProGuard.".concat(componentName));
87-
launchServer.launcherBinary.addAfter((v) -> v.getName().startsWith(modeAfter), buildTask);
88-
launchServer.launcherBinary.addAfter((v) -> v.getName().equals("ProGuard.".concat(componentName)), fixerTask);
89+
launchServer.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).addAfter((v) -> v.getName().startsWith(modeAfter), buildTask);
90+
launchServer.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).addAfter((v) -> v.getName().equals("ProGuard.".concat(componentName)), fixerTask);
8991
}
9092

9193
@Override
9294
public void close() {
9395
if (launchServer != null && buildTask != null) {
94-
launchServer.launcherBinary.tasks.remove(buildTask);
96+
launchServer.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).tasks.remove(buildTask);
9597
}
9698
}
9799

@@ -297,11 +299,11 @@ public void buildConfig(List<String> confStrs, Path inputJar, Path outputJar, Pa
297299
confStrs.add("-libraryjars '%s'".formatted(path.toAbsolutePath()));
298300
}
299301
}
300-
srv.launcherBinary.coreLibs.stream()
302+
((JARLauncherBinary)srv.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).coreLibs.stream()
301303
.map(e -> "-libraryjars '" + e.toAbsolutePath() + "'")
302304
.forEach(confStrs::add);
303305

304-
srv.launcherBinary.addonLibs.stream()
306+
((JARLauncherBinary)srv.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR)).addonLibs.stream()
305307
.map(e -> "-libraryjars '" + e.toAbsolutePath() + "'")
306308
.forEach(confStrs::add);
307309
confStrs.add("-classobfuscationdictionary '" + words.toFile().getName() + "'");

components/launchserver/src/main/java/pro/gravit/launchserver/launchermodules/LauncherModuleLoader.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import org.apache.logging.log4j.Logger;
55
import pro.gravit.launcher.base.Launcher;
66
import pro.gravit.launcher.core.LauncherTrustManager;
7+
import pro.gravit.launcher.core.api.features.CoreFeatureAPI;
78
import pro.gravit.launchserver.LaunchServer;
89
import pro.gravit.launchserver.asm.InjectClassAcceptor;
10+
import pro.gravit.launchserver.binary.JARLauncherBinary;
911
import pro.gravit.launchserver.binary.tasks.MainBuildTask;
1012
import pro.gravit.utils.helper.IOHelper;
1113

@@ -44,7 +46,7 @@ public void init() {
4446
logger.error(e);
4547
}
4648
}
47-
MainBuildTask mainTask = server.launcherBinary.getTaskByClass(MainBuildTask.class).get();
49+
MainBuildTask mainTask = server.launcherBinaries.get(CoreFeatureAPI.UpdateVariant.JAR).getTaskByClass(MainBuildTask.class).get();
4850
mainTask.preBuildHook.registerHook((buildContext) -> {
4951
for (ModuleEntity e : launcherModules) {
5052
if (e.propertyMap != null) buildContext.properties.putAll(e.propertyMap);

0 commit comments

Comments
 (0)