diff --git a/LaunchServer/resources/launchserver/defaults/config.cfg b/LaunchServer/resources/launchserver/defaults/config.cfg index 604b80b..dca30a0 100644 --- a/LaunchServer/resources/launchserver/defaults/config.cfg +++ b/LaunchServer/resources/launchserver/defaults/config.cfg @@ -2,6 +2,9 @@ bindAddress: "0.0.0.0"; # На какой интерфейс идет обращение (Лучше оставить как есть) port: 7240; # Порт для LaunchServer +# Проверять обновления с сайта разработчика? +checkServerUpdate: true; + # Ссылка на зеркало mirror: "https://launcher-sashok724.keeperjerry.ru/download/"; diff --git a/LaunchServer/source/LaunchServer.java b/LaunchServer/source/LaunchServer.java index 1004261..7b8b47f 100644 --- a/LaunchServer/source/LaunchServer.java +++ b/LaunchServer/source/LaunchServer.java @@ -1,5 +1,7 @@ package launchserver; +import com.eclipsesource.json.Json; +import com.eclipsesource.json.JsonObject; import launcher.Launcher; import launcher.LauncherAPI; import launcher.client.ClientProfile; @@ -40,9 +42,11 @@ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; +import java.io.InputStreamReader; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.URL; +import java.net.URLConnection; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.security.KeyPair; @@ -185,6 +189,44 @@ launcherEXEBinary = config.launch4J ? new EXEL4JLauncherBinary(this) : new EXELauncherBinary(this); syncLauncherBinaries(); + if (config.checkServerUpdate) + { + LogHelper.info("Check updates from KeeperJerry..."); + try + { + URL url; + url = new URL("https://launcher-sashok724.keeperjerry.ru/versions.json"); + URLConnection conn = url.openConnection(); + BufferedReader getStatus = new BufferedReader(new InputStreamReader(conn.getInputStream())); + + JsonObject object = Json.parse(getStatus.readLine()).asObject(); + String version = object.get("version").asString(); + String date = object.get("date").asString(); + String note = object.get("note").asString(); + + if (Launcher.VERSION.equals(version)) + { + LogHelper.info("You have the latest version!"); + } + else + { + LogHelper.info("================================"); + LogHelper.info("FOUND NEW VERSION: " + version); + LogHelper.info("Relese data: " + date); + LogHelper.info("Note: " + note); + LogHelper.info("================================"); + } + } + catch (Throwable exc) + { + LogHelper.error(exc); + } + } + else + { + LogHelper.info("Check for updates is disabled!"); + } + // Sync updates dir if (!IOHelper.isDir(updatesDir)) { @@ -519,6 +561,10 @@ @LauncherAPI public final String mirror; + // Update + @LauncherAPI + public final boolean checkServerUpdate; + // BinaryName @LauncherAPI public final String binaryName; @@ -556,6 +602,9 @@ textureProvider = TextureProvider.newProvider(block.getEntryValue("textureProvider", StringConfigEntry.class), block.getEntry("textureProviderConfig", BlockConfigEntry.class)); + // Check Update + checkServerUpdate = block.getEntryValue("checkServerUpdate", BooleanConfigEntry.class); + // Mirror mirror = block.getEntryValue("mirror", StringConfigEntry.class); diff --git a/Launcher/source/helper/JVMHelper.java b/Launcher/source/helper/JVMHelper.java index f7f1cc3..b4cd461 100644 --- a/Launcher/source/helper/JVMHelper.java +++ b/Launcher/source/helper/JVMHelper.java @@ -231,7 +231,7 @@ private static int getRAMAmount() { int physicalRam = (int) (OPERATING_SYSTEM_MXBEAN.getTotalPhysicalMemorySize() >> 20); - return Math.min(physicalRam, OS_BITS == 32 ? 1536 : 8192); // Limit 32-bit OS to 1536 MiB, and 64-bit OS to 8192 MiB (because it's enough) + return Math.min(physicalRam, OS_BITS == 32 ? 1536 : 65534); // Limit 32-bit OS to 1536 MiB, and 64-bit OS to 65534 MiB / 64 Gb } public static Class firstClass(String... names) throws ClassNotFoundException