[FEATURE] параметры logFile и stopOnError в ServerWrapper

This commit is contained in:
Gravit 2019-01-12 06:35:04 +07:00
parent 9626185dbe
commit fa531a7b55
No known key found for this signature in database
GPG key ID: 061981E1E85D3216

View file

@ -9,10 +9,7 @@
import ru.gravit.launcher.request.auth.AuthServerRequest; import ru.gravit.launcher.request.auth.AuthServerRequest;
import ru.gravit.launcher.request.update.ProfilesRequest; import ru.gravit.launcher.request.update.ProfilesRequest;
import ru.gravit.utils.PublicURLClassLoader; import ru.gravit.utils.PublicURLClassLoader;
import ru.gravit.utils.helper.CommonHelper; import ru.gravit.utils.helper.*;
import ru.gravit.utils.helper.IOHelper;
import ru.gravit.utils.helper.LogHelper;
import ru.gravit.utils.helper.SecurityHelper;
import java.io.*; import java.io.*;
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandle;
@ -51,10 +48,14 @@ public static boolean auth(ServerWrapper wrapper) {
break; break;
} }
} }
if(wrapper.profile == null) LogHelper.warning("Your profile not found"); if(wrapper.profile == null) {
LogHelper.error("Your profile not found");
if(ServerWrapper.config.stopOnError) System.exit(-1);
}
return true; return true;
} catch (Throwable e) { } catch (Throwable e) {
LogHelper.error(e); LogHelper.error(e);
if(ServerWrapper.config.stopOnError) System.exit(-1);
return false; return false;
} }
@ -104,6 +105,7 @@ 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); LauncherConfig cfg = new LauncherConfig(config.address, config.port, SecurityHelper.toPublicRSAKey(IOHelper.read(publicKeyFile)), new HashMap<>(), config.projectname);
Launcher.setConfig(cfg); Launcher.setConfig(cfg);
if(config.logFile != null) LogHelper.addOutput(IOHelper.newWriter(Paths.get(config.logFile),true));
if (config.syncAuth) auth(wrapper); if (config.syncAuth) auth(wrapper);
else else
CommonHelper.newThread("Server Auth Thread", true, () -> ServerWrapper.loopAuth(wrapper, config.reconnectCount, config.reconnectSleep)); CommonHelper.newThread("Server Auth Thread", true, () -> ServerWrapper.loopAuth(wrapper, config.reconnectCount, config.reconnectSleep));
@ -111,6 +113,7 @@ public static void main(String... args) throws Throwable {
String classname = (config.mainclass == null || config.mainclass.isEmpty()) ? args[0] : config.mainclass; String classname = (config.mainclass == null || config.mainclass.isEmpty()) ? args[0] : config.mainclass;
if (classname.length() == 0) { if (classname.length() == 0) {
LogHelper.error("MainClass not found. Please set MainClass for ServerWrapper.cfg or first commandline argument"); LogHelper.error("MainClass not found. Please set MainClass for ServerWrapper.cfg or first commandline argument");
if(config.stopOnError) System.exit(-1);
} }
Class<?> mainClass; Class<?> mainClass;
if (config.customClassPath) { if (config.customClassPath) {
@ -165,6 +168,7 @@ private static void generateConfigIfNotExists() throws IOException {
newConfig.password = "password"; newConfig.password = "password";
newConfig.mainclass = ""; newConfig.mainclass = "";
newConfig.syncAuth = true; newConfig.syncAuth = true;
newConfig.stopOnError = true;
newConfig.reconnectCount = 10; newConfig.reconnectCount = 10;
newConfig.reconnectSleep = 1000; newConfig.reconnectSleep = 1000;
//try(Reader reader = IOHelper.newReader(IOHelper.getResourceURL("ru/gravit/launcher/server/ServerWrapper.cfg"))) //try(Reader reader = IOHelper.newReader(IOHelper.getResourceURL("ru/gravit/launcher/server/ServerWrapper.cfg")))
@ -191,7 +195,9 @@ public static final class Config {
public int reconnectSleep; public int reconnectSleep;
public boolean customClassPath; public boolean customClassPath;
public boolean autoloadLibraries; public boolean autoloadLibraries;
public boolean stopOnError;
public boolean syncAuth; public boolean syncAuth;
public String logFile;
public String classpath; public String classpath;
public String librariesDir; public String librariesDir;
public String mainclass; public String mainclass;