Fix loading config

Refactoring AmbassadorConfig
This commit is contained in:
Icosider 2024-02-27 15:30:42 +03:00
parent 0fcf6af72f
commit eaa974593c
No known key found for this signature in database
GPG Key ID: E6C771819B33AD7F

View File

@ -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 = "<red>Please reconnect.</red>";
@Expose
private String kickReconnectMessageString = "<red>Please reconnect.</red>";
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", "<red>Please reconnect.</red>"));
//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", "<red>Please reconnect.</red>"));
//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;
}
}