From eaa974593c33f867bd06ab4933325aac2c2be678 Mon Sep 17 00:00:00 2001 From: Icosider Date: Tue, 27 Feb 2024 15:30:42 +0300 Subject: [PATCH] Fix loading config Refactoring AmbassadorConfig --- .../adde0109/ambassador/AmbassadorConfig.java | 198 +++++++++--------- 1 file changed, 100 insertions(+), 98 deletions(-) diff --git a/src/main/java/org/adde0109/ambassador/AmbassadorConfig.java b/src/main/java/org/adde0109/ambassador/AmbassadorConfig.java index fb0f2e5..ecc44c5 100644 --- a/src/main/java/org/adde0109/ambassador/AmbassadorConfig.java +++ b/src/main/java/org/adde0109/ambassador/AmbassadorConfig.java @@ -14,119 +14,121 @@ import java.nio.file.Path; public class AmbassadorConfig { - @Expose - private int serverSwitchCancellationTime = 30; + @Expose + private int serverSwitchCancellationTime = 30; - @Expose - private boolean silenceWarnings = false; - @Expose - private boolean bypassRegistryCheck = false; - @Expose - private boolean bypassModCheck = false; + @Expose + private boolean silenceWarnings = false; + @Expose + private boolean bypassRegistryCheck = false; + @Expose + private boolean bypassModCheck = false; - @Expose - private boolean debugMode = false; + @Expose + private boolean debugMode = false; - @Expose - private boolean enableKickReset = false; + @Expose + private boolean enableKickReset = false; - @Expose - private String kickReconnectMessageString = "Please reconnect."; + @Expose + private String kickReconnectMessageString = "Please reconnect."; - private AmbassadorConfig(boolean silenceWarnings, boolean bypassRegistryCheck, boolean bypassModCheck, - boolean debugMode, boolean enableKickReset, String kickReconnectMessageString) { - this.silenceWarnings = silenceWarnings; - this.bypassRegistryCheck = bypassRegistryCheck; - this.bypassModCheck = bypassModCheck; - this.debugMode = debugMode; - this.enableKickReset = enableKickReset; - this.kickReconnectMessageString = kickReconnectMessageString; - }; - - public static AmbassadorConfig read(Path path) throws IOException { - URL defaultConfigLocation = AmbassadorConfig.class.getClassLoader() - .getResource("default-ambassador.toml"); - if (defaultConfigLocation == null) { - throw new RuntimeException("Default configuration file does not exist."); + private AmbassadorConfig(boolean silenceWarnings, boolean bypassRegistryCheck, boolean bypassModCheck, + boolean debugMode, boolean enableKickReset, String kickReconnectMessageString) { + this.silenceWarnings = silenceWarnings; + this.bypassRegistryCheck = bypassRegistryCheck; + this.bypassModCheck = bypassModCheck; + this.debugMode = debugMode; + this.enableKickReset = enableKickReset; + this.kickReconnectMessageString = kickReconnectMessageString; } - CommentedFileConfig config = CommentedFileConfig.builder(path) - .defaultData(defaultConfigLocation) - .autosave() - .preserveInsertionOrder() - .sync() - .build(); - config.load(); + ; - double configVersion; - try { - configVersion = Double.parseDouble(config.getOrElse("config-version", "1.0")); - } catch (NumberFormatException e) { - configVersion = 1.0; + public static AmbassadorConfig read(Path path) throws IOException { + URL defaultConfigLocation = AmbassadorConfig.class.getClassLoader() + .getResource("default-ambassador.toml"); + if (defaultConfigLocation == null) { + throw new RuntimeException("Default configuration file does not exist."); + } + + CommentedFileConfig config = CommentedFileConfig.builder(path) + .defaultData(defaultConfigLocation) + .autosave() + .preserveInsertionOrder() + .sync() + .build(); + config.load(); + + double configVersion; + try { + configVersion = Double.parseDouble(config.getOrElse("config-version", "1.0")); + } catch (NumberFormatException e) { + configVersion = 1.0; + } + + boolean silenceWarnings = config.getOrElse("silence-warnings", false); + + int serverSwitchCancellationTime = config.getOrElse("serverRedirectTimeout", 30); + + boolean bypassRegistryCheck = config.getOrElse("bypass-registry-checks", false); + + boolean bypassModCheck = config.getOrElse("bypass-mod-checks", false); + + boolean debugMode = config.getOrElse("debug-mode", false); + + String kickReconnectMessageString = config.getOrElse("disconnect-reset-message", + config.getOrElse("reconnect-message", "Please reconnect.")); + + //Upgrade config + if (configVersion <= 2.0) { + Files.delete(path); + config = CommentedFileConfig.builder(path) + .defaultData(defaultConfigLocation) + .autosave() + .preserveInsertionOrder() + .sync() + .build(); + config.load(); + config.set("silence-warnings", silenceWarnings); + config.set("serverRedirectTimeout", serverSwitchCancellationTime); + config.set("bypass-registry-checks", bypassRegistryCheck); + config.set("bypass-mod-checks", bypassModCheck); + config.set("debug-mode", debugMode); + config.set("reconnect-message", kickReconnectMessageString); + } + + boolean enableKickReset = config.getOrElse("enable-kick-reset", false); + + return new AmbassadorConfig(silenceWarnings, bypassRegistryCheck, bypassModCheck, + debugMode, enableKickReset, kickReconnectMessageString); } - boolean silenceWarnings = config.getOrElse("silence-warnings", false); - - int serverSwitchCancellationTime = config.getOrElse("serverRedirectTimeout", 30); - - boolean bypassRegistryCheck = config.getOrElse("bypass-registry-checks", false); - - boolean bypassModCheck = config.getOrElse("bypass-mod-checks", false); - - boolean debugMode = config.getOrElse("debug-mode", false); - - String kickReconnectMessageString = config.getOrElse("disconnect-reset-message", - config.getOrElse("reconnect-message", "Please reconnect.")); - - //Upgrade config - if (configVersion <= 2.0) { - Files.delete(path); - config = CommentedFileConfig.builder(path) - .defaultData(defaultConfigLocation) - .autosave() - .preserveInsertionOrder() - .sync() - .build(); - config.load(); - config.set("silence-warnings", silenceWarnings); - config.set("serverRedirectTimeout", serverSwitchCancellationTime); - config.set("bypass-registry-checks", bypassRegistryCheck); - config.set("bypass-mod-checks", bypassModCheck); - config.set("debug-mode", debugMode); - config.set("reconnect-message", kickReconnectMessageString); + public int getServerSwitchCancellationTime() { + return serverSwitchCancellationTime; } - boolean enableKickReset = config.getOrElse("enable-kick-reset", false); + public boolean isSilenceWarnings() { + return silenceWarnings; + } - return new AmbassadorConfig(bypassRegistryCheck, bypassModCheck, silenceWarnings, - debugMode, enableKickReset, kickReconnectMessageString); - } + public boolean isBypassRegistryCheck() { + return bypassRegistryCheck; + } - public int getServerSwitchCancellationTime() { - return serverSwitchCancellationTime; - } + public boolean isBypassModCheck() { + return bypassModCheck; + } - public boolean isSilenceWarnings() { - return silenceWarnings; - } + public boolean isDebugMode() { + return debugMode; + } - public boolean isBypassRegistryCheck() { - return bypassRegistryCheck; - } + public boolean isEnableKickReset() { + return enableKickReset; + } - public boolean isBypassModCheck() { - return bypassModCheck; - } - - public boolean isDebugMode() { - return debugMode; - } - - public boolean isEnableKickReset() { - return enableKickReset; - } - - public String getKickReconnectMessageString() { - return kickReconnectMessageString; - } + public String getKickReconnectMessageString() { + return kickReconnectMessageString; + } }