diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java index 6faec029..5b49cb82 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServerStarter.java @@ -278,8 +278,8 @@ public static void generateConfigIfNotExists(Path configFile, CommandHandler com newConfig.netty.address = "ws://" + address + ":9274/api"; newConfig.netty.downloadURL = "http://" + address + ":9274/%dirname%/"; - newConfig.netty.launcherURL = "http://" + address + ":9274/Launcher.jar"; - newConfig.netty.launcherEXEURL = "http://" + address + ":9274/Launcher.exe"; + newConfig.netty.launcherURL = "http://" + address + ":9274/%binaryName%.jar"; + newConfig.netty.launcherEXEURL = "http://" + address + ":9274/%binaryName%.exe"; // Write LaunchServer config logger.info("Writing LaunchServer config file"); diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/config/LaunchServerConfig.java b/LaunchServer/src/main/java/pro/gravit/launchserver/config/LaunchServerConfig.java index bbc7d86f..c754f74f 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/config/LaunchServerConfig.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/config/LaunchServerConfig.java @@ -21,6 +21,8 @@ import pro.gravit.utils.helper.JVMHelper; import java.io.File; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.*; public final class LaunchServerConfig { @@ -134,6 +136,14 @@ public void setBinaryName(String binaryName) { this.binaryName = binaryName; } + public String getLauncherURL() { + return URLEncoder.encode(this.netty.launcherURL.replaceAll("%binaryName%", this.binaryName), StandardCharsets.UTF_8); + } + + public String getLauncherEXEURL() { + return URLEncoder.encode(this.netty.launcherEXEURL.replaceAll("%binaryName%", this.binaryName), StandardCharsets.UTF_8); + } + public void setEnv(LauncherConfig.LauncherEnvironment env) { this.env = env; } diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/socket/response/update/LauncherResponse.java b/LaunchServer/src/main/java/pro/gravit/launchserver/socket/response/update/LauncherResponse.java index 31274399..c23e019b 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/socket/response/update/LauncherResponse.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/socket/response/update/LauncherResponse.java @@ -47,22 +47,22 @@ public void execute(ChannelHandlerContext ctx, Client client) { { byte[] hash = server.launcherBinary.getDigest(); if (hash == null) - service.sendObjectAndClose(ctx, new LauncherRequestEvent(true, server.config.netty.launcherURL)); + service.sendObjectAndClose(ctx, new LauncherRequestEvent(true, server.config.getLauncherURL())); if (Arrays.equals(bytes, hash) && checkSecure(secureHash, secureSalt)) { client.checkSign = true; - sendResult(new LauncherRequestEvent(false, server.config.netty.launcherURL, createLauncherExtendedToken())); + sendResult(new LauncherRequestEvent(false, server.config.getLauncherURL(), createLauncherExtendedToken())); } else { - sendResultAndClose(new LauncherRequestEvent(true, server.config.netty.launcherURL, createLauncherExtendedToken())); + sendResultAndClose(new LauncherRequestEvent(true, server.config.getLauncherURL(), createLauncherExtendedToken())); } } else if (launcher_type == 2) //EXE { byte[] hash = server.launcherEXEBinary.getDigest(); - if (hash == null) sendResultAndClose(new LauncherRequestEvent(true, server.config.netty.launcherEXEURL)); + if (hash == null) sendResultAndClose(new LauncherRequestEvent(true, server.config.getLauncherEXEURL())); if (Arrays.equals(bytes, hash) && checkSecure(secureHash, secureSalt)) { client.checkSign = true; - sendResult(new LauncherRequestEvent(false, server.config.netty.launcherEXEURL, createLauncherExtendedToken())); + sendResult(new LauncherRequestEvent(false, server.config.getLauncherEXEURL(), createLauncherExtendedToken())); } else { - sendResultAndClose(new LauncherRequestEvent(true, server.config.netty.launcherEXEURL, createLauncherExtendedToken())); + sendResultAndClose(new LauncherRequestEvent(true, server.config.getLauncherEXEURL(), createLauncherExtendedToken())); } } else sendError("Request launcher type error"); }