Improved Configuration

- Changed yaml format to hocon
This commit is contained in:
4drian3d 2021-11-14 08:05:38 -05:00
parent ec314e54b9
commit 5b32a71409
4 changed files with 30 additions and 18 deletions

View File

@ -40,7 +40,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.spongepowered</groupId> <groupId>org.spongepowered</groupId>
<artifactId>configurate-yaml</artifactId> <artifactId>configurate-hocon</artifactId>
<version>4.1.2</version> <version>4.1.2</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -45,8 +45,8 @@ public class AuthMeVelocityPlugin {
logger.info("-- AuthMeVelocity enabled --"); logger.info("-- AuthMeVelocity enabled --");
var config = AuthMeConfig.getConfig(); var config = AuthMeConfig.getConfig();
logger.info("AuthServers: {}", config.getAuthServers()); logger.info("AuthServers: {}", config.getAuthServers());
if(config.sendToServer()){ if(config.getToServerOptions().sendToServer()){
logger.info("LobbyServers: {}", config.getTeleportServers()); logger.info("LobbyServers: {}", config.getToServerOptions().getTeleportServers());
} }
} }

View File

@ -9,20 +9,20 @@ import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.spongepowered.configurate.CommentedConfigurationNode; import org.spongepowered.configurate.CommentedConfigurationNode;
import org.spongepowered.configurate.ConfigurateException; import org.spongepowered.configurate.ConfigurateException;
import org.spongepowered.configurate.hocon.HoconConfigurationLoader;
import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.ConfigSerializable;
import org.spongepowered.configurate.objectmapping.meta.Comment; import org.spongepowered.configurate.objectmapping.meta.Comment;
import org.spongepowered.configurate.yaml.YamlConfigurationLoader;
public class AuthMeConfig { public class AuthMeConfig {
public static void loadConfig(@NotNull Path path, @NotNull Logger logger){ public static void loadConfig(@NotNull Path path, @NotNull Logger logger){
File configFile = new File(path.toFile(), "config.yml"); File configFile = new File(path.toFile(), "config.conf");
final YamlConfigurationLoader loader = YamlConfigurationLoader.builder() final HoconConfigurationLoader loader = HoconConfigurationLoader.builder()
.defaultOptions(opts -> opts.shouldCopyDefaults(true)) .defaultOptions(opts -> opts.shouldCopyDefaults(true))
.file(configFile) .file(configFile)
.build(); .build();
try { try {
CommentedConfigurationNode node = loader.load(); final CommentedConfigurationNode node = loader.load();
config = node.get(Config.class); config = node.get(Config.class);
node.set(Config.class, config); node.set(Config.class, config);
loader.save(node); loader.save(node);
@ -30,34 +30,46 @@ public class AuthMeConfig {
logger.error("Could not load configuration: {}", exception.getMessage()); logger.error("Could not load configuration: {}", exception.getMessage());
} }
} }
@ConfigSerializable @ConfigSerializable
public static class Config { public static class Config {
@Comment("List of authservers") @Comment("List of login/registration servers")
private Set<String> authservers = Set.of( private Set<String> authservers = Set.of(
"auth1", "auth1",
"auth2" "auth2"
); );
@Comment("Send each player to another server on login?") private ServerOnLogin send = new ServerOnLogin();
public Set<String> getAuthServers(){
return this.authservers;
}
public ServerOnLogin getToServerOptions(){
return this.send;
}
}
@ConfigSerializable
public static class ServerOnLogin {
@Comment("Send logged in players to another server?")
private boolean sendToServerOnLogin = false; private boolean sendToServerOnLogin = false;
@Comment("List of teleport to servers") @Comment("""
List of servers to send
One of these servers will be chosen at random
""")
private List<String> teleportServers = List.of( private List<String> teleportServers = List.of(
"lobby1", "lobby1",
"lobby2" "lobby2"
); );
public Set<String> getAuthServers(){
return authservers;
}
public boolean sendToServer(){ public boolean sendToServer(){
return sendToServerOnLogin; return this.sendToServerOnLogin;
} }
public List<String> getTeleportServers(){ public List<String> getTeleportServers(){
return teleportServers; return this.teleportServers;
} }
} }
private static Config config; private static Config config;

View File

@ -54,8 +54,8 @@ public class ProxyListener {
if (AuthmeVelocityAPI.addPlayer(loggedPlayer)){ if (AuthmeVelocityAPI.addPlayer(loggedPlayer)){
RegisteredServer loginServer = loggedPlayer.getCurrentServer().orElseThrow().getServer(); RegisteredServer loginServer = loggedPlayer.getCurrentServer().orElseThrow().getServer();
proxy.getEventManager().fireAndForget(new ProxyLoginEvent(loggedPlayer, loginServer)); proxy.getEventManager().fireAndForget(new ProxyLoginEvent(loggedPlayer, loginServer));
if(config.sendToServer()){ if(config.getToServerOptions().sendToServer()){
List<String> serverList = config.getTeleportServers(); List<String> serverList = config.getToServerOptions().getTeleportServers();
String randomServer = serverList.get(rm.nextInt(serverList.size())); String randomServer = serverList.get(rm.nextInt(serverList.size()));
Optional<RegisteredServer> optionalServer = proxy.getServer(randomServer); Optional<RegisteredServer> optionalServer = proxy.getServer(randomServer);
optionalServer.ifPresentOrElse(serverToSend -> { optionalServer.ifPresentOrElse(serverToSend -> {