diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java index 1677edfa..376db65e 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java @@ -367,6 +367,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE config = Launcher.gson.fromJson(reader, Config.class); } config.verify(); + Launcher.applyLauncherEnv(config.env); for (AuthProvider provider : config.authProvider) { provider.init(); } @@ -396,13 +397,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE if (config.textureProvider instanceof Reloadable) reloadManager.registerReloadable("textureProvider", (Reloadable) config.textureProvider); - Arrays.stream(config.mirrors).forEach(s -> { - try { - mirrorManager.addMirror(s); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - }); + Arrays.stream(config.mirrors).forEach(mirrorManager::addMirror); if (config.permissionsHandler instanceof Reconfigurable) reconfigurableManager.registerReconfigurable("permissionsHandler", (Reconfigurable) config.permissionsHandler); @@ -416,13 +411,7 @@ public LaunchServer(Path dir, String[] args) throws IOException, InvalidKeySpecE if (config.textureProvider instanceof Reconfigurable) reconfigurableManager.registerReconfigurable("textureProvider", (Reconfigurable) config.textureProvider); - Arrays.stream(config.mirrors).forEach(s -> { - try { - mirrorManager.addMirror(s); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - }); + Arrays.stream(config.mirrors).forEach(mirrorManager::addMirror); // init modules modulesManager.initModules(); diff --git a/ServerWrapper/src/main/java/ru/gravit/launcher/server/ServerWrapper.java b/ServerWrapper/src/main/java/ru/gravit/launcher/server/ServerWrapper.java index 2baf6264..d46e36cf 100644 --- a/ServerWrapper/src/main/java/ru/gravit/launcher/server/ServerWrapper.java +++ b/ServerWrapper/src/main/java/ru/gravit/launcher/server/ServerWrapper.java @@ -108,6 +108,8 @@ public static void main(String... args) throws Throwable { } LauncherConfig cfg = new LauncherConfig(config.address, config.port, SecurityHelper.toPublicRSAKey(IOHelper.read(publicKeyFile)), new HashMap<>(), config.projectname); Launcher.setConfig(cfg); + if(config.env != null) Launcher.applyLauncherEnv(config.env); + else Launcher.applyLauncherEnv(LauncherConfig.LauncherEnvironment.STD); if (config.logFile != null) LogHelper.addOutput(IOHelper.newWriter(Paths.get(config.logFile), true)); if (config.syncAuth) auth(wrapper); else @@ -176,6 +178,7 @@ private static void generateConfigIfNotExists() throws IOException { newConfig.stopOnError = true; newConfig.reconnectCount = 10; newConfig.reconnectSleep = 1000; + newConfig.env = LauncherConfig.LauncherEnvironment.STD; //try(Reader reader = IOHelper.newReader(IOHelper.getResourceURL("ru/gravit/launcher/server/ServerWrapper.cfg"))) //{ // newConfig = gson.fromJson(reader,Config.class); @@ -207,6 +210,7 @@ public static final class Config { public String mainclass; public String login; public String password; + public LauncherConfig.LauncherEnvironment env; } public ClientProfile profile; diff --git a/libLauncher/src/main/java/ru/gravit/launcher/Launcher.java b/libLauncher/src/main/java/ru/gravit/launcher/Launcher.java index ec40c3a1..fe399fbf 100644 --- a/libLauncher/src/main/java/ru/gravit/launcher/Launcher.java +++ b/libLauncher/src/main/java/ru/gravit/launcher/Launcher.java @@ -8,6 +8,7 @@ import ru.gravit.utils.Version; import ru.gravit.utils.helper.IOHelper; import ru.gravit.utils.helper.JVMHelper; +import ru.gravit.utils.helper.LogHelper; import ru.gravit.utils.helper.SecurityHelper; import java.io.IOException; @@ -130,4 +131,27 @@ public static Version getVersion() { public static boolean isUsingAvanguard() { return JVMHelper.OS_TYPE == JVMHelper.OS.MUSTDIE && useAvanguard; } + + public static void applyLauncherEnv(LauncherConfig.LauncherEnvironment env) + { + switch (env) + { + case DEV: + LogHelper.setDevEnabled(true); + LogHelper.setStacktraceEnabled(true); + LogHelper.setDebugEnabled(true); + break; + case DEBUG: + LogHelper.setDebugEnabled(true); + LogHelper.setStacktraceEnabled(true); + break; + case STD: + break; + case PROD: + LogHelper.setStacktraceEnabled(false); + LogHelper.setDebugEnabled(false); + LogHelper.setDevEnabled(false); + break; + } + } } diff --git a/libLauncher/src/main/java/ru/gravit/launcher/LauncherConfig.java b/libLauncher/src/main/java/ru/gravit/launcher/LauncherConfig.java index 067df7a0..ea50ef9d 100644 --- a/libLauncher/src/main/java/ru/gravit/launcher/LauncherConfig.java +++ b/libLauncher/src/main/java/ru/gravit/launcher/LauncherConfig.java @@ -60,13 +60,7 @@ public LauncherConfig(HInput input) throws IOException, InvalidKeySpecException else if (config.env == 2) env = LauncherEnvironment.STD; else if (config.env == 3) env = LauncherEnvironment.PROD; else env = LauncherEnvironment.STD; - if (env == LauncherEnvironment.PROD) { - LogHelper.setStacktraceEnabled(false); - LogHelper.setDebugEnabled(false); - } - if (env == LauncherEnvironment.DEV || env == LauncherEnvironment.DEBUG) { - LogHelper.setDebugEnabled(true); - } + Launcher.applyLauncherEnv(env); // Read signed runtime int count = input.readLength(0); Map localResources = new HashMap<>(count); diff --git a/libLauncher/src/main/java/ru/gravit/utils/helper/LogHelper.java b/libLauncher/src/main/java/ru/gravit/utils/helper/LogHelper.java index 47acb689..4e76fa66 100644 --- a/libLauncher/src/main/java/ru/gravit/utils/helper/LogHelper.java +++ b/libLauncher/src/main/java/ru/gravit/utils/helper/LogHelper.java @@ -22,6 +22,8 @@ public final class LogHelper { @LauncherAPI public static final String DEBUG_PROPERTY = "launcher.debug"; @LauncherAPI + public static final String DEV_PROPERTY = "launcher.dev"; + @LauncherAPI public static final String STACKTRACE_PROPERTY = "launcher.stacktrace"; @LauncherAPI public static final String NO_JANSI_PROPERTY = "launcher.noJAnsi"; @@ -32,6 +34,7 @@ public final class LogHelper { private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss", Locale.US); private static final AtomicBoolean DEBUG_ENABLED = new AtomicBoolean(Boolean.getBoolean(DEBUG_PROPERTY)); private static final AtomicBoolean STACKTRACE_ENABLED = new AtomicBoolean(Boolean.getBoolean(STACKTRACE_PROPERTY)); + private static final AtomicBoolean DEV_ENABLED = new AtomicBoolean(Boolean.getBoolean(DEV_PROPERTY)); private static final Set OUTPUTS = Collections.newSetFromMap(new ConcurrentHashMap<>(2)); private static final Output STD_OUTPUT; @@ -64,11 +67,23 @@ public static void debug(String message) { } } + @LauncherAPI + public static void dev(String message) { + if (isDevEnabled()) { + log(Level.DEV, message, false); + } + } + @LauncherAPI public static void debug(String format, Object... args) { debug(String.format(format, args)); } + @LauncherAPI + public static void dev(String format, Object... args) { + debug(String.format(format, args)); + } + @LauncherAPI public static void error(Throwable exc) { error(isStacktraceEnabled() ? toString(exc) : exc.toString()); @@ -109,11 +124,21 @@ public static boolean isStacktraceEnabled() { return STACKTRACE_ENABLED.get(); } + @LauncherAPI + public static boolean isDevEnabled() { + return DEV_ENABLED.get(); + } + @LauncherAPI public static void setStacktraceEnabled(boolean stacktraceEnabled) { STACKTRACE_ENABLED.set(stacktraceEnabled); } + @LauncherAPI + public static void setDevEnabled(boolean stacktraceEnabled) { + DEV_ENABLED.set(stacktraceEnabled); + } + @LauncherAPI public static void log(Level level, String message, boolean sub) { String dateTime = DATE_TIME_FORMATTER.format(LocalDateTime.now()); @@ -318,7 +343,7 @@ public interface Output { @LauncherAPI public enum Level { - DEBUG("DEBUG"), INFO("INFO"), WARNING("WARN"), ERROR("ERROR"); + DEV("DEV"),DEBUG("DEBUG"), INFO("INFO"), WARNING("WARN"), ERROR("ERROR"); public final String name; Level(String name) {