From 07569265b74a55a3dbe7c8a398b1de54fc5d5d47 Mon Sep 17 00:00:00 2001 From: Zaxar163 Date: Thu, 4 Jul 2019 12:09:50 +0300 Subject: [PATCH] =?UTF-8?q?[FEATURE][EXP]=20=D0=9E=D1=82=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BA=D0=B8=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20zip.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/pro/gravit/launchserver/LaunchServer.java | 6 ++++-- .../java/pro/gravit/launchserver/binary/JAConfigurator.java | 6 ++++++ .../pro/gravit/launchserver/binary/tasks/MainBuildTask.java | 1 + .../src/main/java/pro/gravit/launcher/AutogenConfig.java | 1 + .../java/pro/gravit/launcher/downloader/UpdateData.java | 3 ++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServer.java b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServer.java index 5a4fb7c5..17682490 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServer.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/LaunchServer.java @@ -163,6 +163,7 @@ public AuthProviderPair getAuthProviderPair() { public boolean enabledRadon; public boolean stripLineNumbers; public boolean deleteTempFiles; + public boolean zipDownload; public String startScript; @@ -768,6 +769,7 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException { newConfig.stripLineNumbers = true; newConfig.deleteTempFiles = true; newConfig.isWarningMissArchJava = true; + newConfig.zipDownload = true; newConfig.components = new HashMap<>(); AuthLimiterComponent authLimiterComponent = new AuthLimiterComponent(); @@ -880,7 +882,7 @@ public void syncProfilesDir() throws IOException { public void syncUpdatesDir(Collection dirs) throws IOException { LogHelper.info("Syncing updates dir"); - boolean start = updatesDirMap == null; + boolean work = updatesDirMap != null; Map> newUpdatesDirMap = new HashMap<>(16); try (DirectoryStream dirStream = Files.newDirectoryStream(updatesDir)) { for (final Path updateDir : dirStream) { @@ -906,7 +908,7 @@ public void syncUpdatesDir(Collection dirs) throws IOException { // Sync and sign update dir LogHelper.info("Syncing '%s' update dir", name); HashedDir updateHDir = new HashedDir(updateDir, null, true, true); - if (!start) processUpdate(updateDir, updateHDir, name); + if (work && config.zipDownload) processUpdate(updateDir, updateHDir, name); newUpdatesDirMap.put(name, new SignedObjectHolder<>(updateHDir, privateKey)); } } diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/binary/JAConfigurator.java b/LaunchServer/src/main/java/pro/gravit/launchserver/binary/JAConfigurator.java index c190062f..3fabb866 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/binary/JAConfigurator.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/binary/JAConfigurator.java @@ -134,6 +134,12 @@ public void setWarningMissArchJava(boolean b) { body.append(";"); } + public void setIsUseBetterUpdate(boolean b) { + body.append("this.isUseBetterUpdate = "); + body.append(b ? "true" : "false"); + body.append(";"); + } + public void setGuardLicense(String name, String key, String encryptKey) { body.append("this.guardLicenseName = \""); body.append(name); diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/binary/tasks/MainBuildTask.java b/LaunchServer/src/main/java/pro/gravit/launchserver/binary/tasks/MainBuildTask.java index b1a9d83a..b77aec0c 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/binary/tasks/MainBuildTask.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/binary/tasks/MainBuildTask.java @@ -137,6 +137,7 @@ public Path process(Path inputJar) throws IOException { jaConfigurator.setGuardType(server.config.launcher.guardType); jaConfigurator.setWarningMissArchJava(server.config.isWarningMissArchJava); jaConfigurator.setEnv(server.config.env); + jaConfigurator.setIsUseBetterUpdate(server.config.zipDownload); if (server.runtime.oemUnlockKey == null) server.runtime.oemUnlockKey = SecurityHelper.randomStringToken(); jaConfigurator.setOemUnlockKey(server.runtime.oemUnlockKey); server.buildHookManager.registerAllClientModuleClass(jaConfigurator); diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/AutogenConfig.java b/LauncherAPI/src/main/java/pro/gravit/launcher/AutogenConfig.java index 8827a7cf..c34e554f 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/AutogenConfig.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/AutogenConfig.java @@ -6,6 +6,7 @@ public class AutogenConfig { public int clientPort; @SuppressWarnings("unused") private boolean isInitModules; + public boolean isUseBetterUpdate; public String guardType; public String secretKeyClient; public String oemUnlockKey; diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/downloader/UpdateData.java b/LauncherAPI/src/main/java/pro/gravit/launcher/downloader/UpdateData.java index b8a716c0..3937f5d0 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/downloader/UpdateData.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/downloader/UpdateData.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.math.BigDecimal; +import pro.gravit.launcher.LauncherConfig; import pro.gravit.launcher.hasher.HashedDir; import pro.gravit.launcher.hasher.HashedEntry; import pro.gravit.utils.helper.IOHelper; @@ -37,7 +38,7 @@ public static boolean needsZipUpdate(HashedDir origd, HashedDir entryd) { if (!needsZip(orig)) return false; double coffSize = BigDecimal.valueOf(entry.size).divide(BigDecimal.valueOf(orig.size)).doubleValue(); double coffCnt = BigDecimal.valueOf(entry.cnt).divide(BigDecimal.valueOf(orig.cnt)).doubleValue(); - return coffSize >= SIMPLE_DOWNLOAD_SIZE_COFF && SIMPLE_DOWNLOAD_FILE_COPF <= coffCnt; + return LauncherConfig.getAutogenConfig().isUseBetterUpdate && coffSize >= SIMPLE_DOWNLOAD_SIZE_COFF && SIMPLE_DOWNLOAD_FILE_COPF <= coffCnt; } private static Pair count(HashedDir hDir) {