From 79b01df6704e019fc91099b29591227774a84a4f Mon Sep 17 00:00:00 2001 From: GoryMoon Date: Tue, 9 Mar 2021 02:35:24 +0100 Subject: [PATCH] Changed authed server config to list for ignoring multiple servers --- README.md | 4 ++-- build.gradle | 6 +++--- src/main/java/se/gory_moon/mclink/velocity/Config.java | 9 ++++++--- .../java/se/gory_moon/mclink/velocity/MCLinkPlugin.java | 7 ++++--- .../mclink/velocity/commands/UnregisterCommand.java | 8 ++++---- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 1235324..24db89d 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,13 @@ The default config looks like this: ```toml mclink_backend = "https://auth.mc.chs.se/" -auth_server = "auth" +ignored_servers = ["auth"] permission = "velocity.command.server" token = "" ``` - `mclink_backend` is the base url to the backend server running [gudchalmers/chs-mclink-backend][3]. -- `auth_server` is the server to ignore connections to as it's the one running [gudchalmers/chs-mclink][1] to auth players. +- `ignored_servers` a list of servers to ignore connections to, needed for the one running [gudchalmers/chs-mclink][1] to auth players. - `permission` if the player have this permission they bypass the auth check. - `token` is the shared key from [gudchalmers/chs-mclink-backend][3] to auth the api. diff --git a/build.gradle b/build.gradle index 47b18f9..339f4eb 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'se.gory_moon' -version '1.0.0' +version '1.1.0' sourceCompatibility = 1.8 @@ -41,6 +41,6 @@ dependencies { implementation okhttp shade okhttp - compile 'com.velocitypowered:velocity-api:1.1.2' - annotationProcessor 'com.velocitypowered:velocity-api:1.1.2' + compile 'com.velocitypowered:velocity-api:1.1.4' + annotationProcessor 'com.velocitypowered:velocity-api:1.1.4' } diff --git a/src/main/java/se/gory_moon/mclink/velocity/Config.java b/src/main/java/se/gory_moon/mclink/velocity/Config.java index 32440df..5df88ae 100644 --- a/src/main/java/se/gory_moon/mclink/velocity/Config.java +++ b/src/main/java/se/gory_moon/mclink/velocity/Config.java @@ -1,10 +1,12 @@ package se.gory_moon.mclink.velocity; +import com.google.common.collect.Lists; import com.moandjiezana.toml.Toml; import com.moandjiezana.toml.TomlWriter; import java.io.File; import java.io.IOException; +import java.util.List; public class Config { @@ -48,8 +50,8 @@ public String getMcLinkBackend() { return toml.getString("mclink_backend"); } - public String getAuthServer() { - return toml.getString("auth_server"); + public List getIgnoredServers() { + return toml.getList("ignored_servers"); } public String getToken() { @@ -64,9 +66,10 @@ public void reload() { load(); } + @SuppressWarnings("unused") static class ConfigDefaults { String mclink_backend = "https://auth.mc.chs.se/"; - String auth_server = "auth"; + List ignored_servers = Lists.newArrayList("auth"); String permission = "velocity.command.server"; String token = ""; } diff --git a/src/main/java/se/gory_moon/mclink/velocity/MCLinkPlugin.java b/src/main/java/se/gory_moon/mclink/velocity/MCLinkPlugin.java index 1eec2ec..d80ef88 100644 --- a/src/main/java/se/gory_moon/mclink/velocity/MCLinkPlugin.java +++ b/src/main/java/se/gory_moon/mclink/velocity/MCLinkPlugin.java @@ -22,6 +22,7 @@ import se.gory_moon.mclink.velocity.commands.UnregisterCommand; import java.nio.file.Path; +import java.util.List; import java.util.Optional; @Plugin(id = "mclink", name = "MCLink Plugin", version = "1.0.0", @@ -32,7 +33,7 @@ public class MCLinkPlugin extends AbstractModule { public final ProxyServer server; private final Logger logger; - public RegisteredServer authServer; + public List ignoreServers; public final Gate gate; public Config config; public API api; @@ -62,7 +63,7 @@ public void onProxyInit(ProxyInitializeEvent event) { server.getChannelRegistrar().register(CONNECT_CHANNEL); api = new API(config); - authServer = server.getServer(config.getAuthServer()).orElseThrow(NoServerFoundExecption::new); + ignoreServers = config.getIgnoredServers(); } @Subscribe @@ -94,7 +95,7 @@ public void playerLogin(LoginEvent event) { @Subscribe public void playerConnect(ServerPreConnectEvent event) { - if (!authServer.getServerInfo().getName().equals(event.getOriginalServer().getServerInfo().getName())) { + if (!ignoreServers.contains(event.getOriginalServer().getServerInfo().getName())) { gate.login(event.getPlayer()); } } diff --git a/src/main/java/se/gory_moon/mclink/velocity/commands/UnregisterCommand.java b/src/main/java/se/gory_moon/mclink/velocity/commands/UnregisterCommand.java index ad196ca..1e100fa 100644 --- a/src/main/java/se/gory_moon/mclink/velocity/commands/UnregisterCommand.java +++ b/src/main/java/se/gory_moon/mclink/velocity/commands/UnregisterCommand.java @@ -8,6 +8,7 @@ import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.proxy.Player; import com.velocitypowered.api.proxy.ServerConnection; +import net.kyori.adventure.identity.Identity; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.slf4j.Logger; @@ -15,7 +16,6 @@ import se.gory_moon.mclink.velocity.MCLinkPlugin; import java.io.IOException; -import java.util.Objects; import java.util.Optional; import java.util.concurrent.TimeUnit; @@ -41,12 +41,12 @@ public int unregister(CommandContext ctx) { boolean send = false; Optional server = ((Player) source).getCurrentServer(); - if (server.isPresent() && !Objects.equals(server.get().getServerInfo().getName(), plugin.config.getAuthServer())) { + if (server.isPresent() && !plugin.config.getIgnoredServers().contains(server.get().getServerInfo().getName())) { send = true; - msg.append(Component.newline().append(Component.text("Redirecting you in 5 seconds...", NamedTextColor.YELLOW))); + msg = msg.append(Component.newline().append(Component.text("Disconnecting you in 5 seconds...", NamedTextColor.YELLOW))); } - source.sendMessage(msg); + source.sendMessage(Identity.nil(), msg); if (send) { plugin.server.getScheduler().buildTask(plugin, () -> { if (((Player) source).isActive()) {