From 8df8d96ced8370d5455ad7cbbdeb133fa995b6f0 Mon Sep 17 00:00:00 2001 From: mohammed jasem alaajel <34905970+ham1255@users.noreply.github.com> Date: Mon, 17 May 2021 22:42:57 +0400 Subject: [PATCH] add random ids! --- pom.xml | 2 +- .../minecraft/redisbungee/RedisBungee.java | 10 ++++++++-- .../redisbungee/RedisBungeeConfiguration.java | 12 ++++++++++-- src/main/resources/example_config.yml | 4 ++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 6d11a7e..5260a22 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.imaginarycode.minecraft RedisBungee - 0.6.1 + 0.6.2 diff --git a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index 4b217e4..164b81d 100644 --- a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -415,7 +415,13 @@ public final class RedisBungee extends Plugin { final int redisPort = configuration.getInt("redis-port", 6379); final boolean useSSL = configuration.getBoolean("useSSL"); String redisPassword = configuration.getString("redis-password"); - String serverId = configuration.getString("server-id"); + String serverId; + final String randomUUID = UUID.randomUUID().toString(); + if (configuration.getBoolean("use-random-id-string", false)) { + serverId = configuration.getString("server-id") + "-" + randomUUID; + } else { + serverId = configuration.getString("server-id"); + } if (redisPassword != null && (redisPassword.isEmpty() || redisPassword.equals("none"))) { redisPassword = null; @@ -475,7 +481,7 @@ public final class RedisBungee extends Plugin { httpClient.setDispatcher(dispatcher); NameFetcher.setHttpClient(httpClient); UUIDFetcher.setHttpClient(httpClient); - RedisBungee.configuration = new RedisBungeeConfiguration(RedisBungee.this.getPool(), configuration); + RedisBungee.configuration = new RedisBungeeConfiguration(RedisBungee.this.getPool(), configuration, randomUUID); return null; } }); diff --git a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeConfiguration.java b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeConfiguration.java index 8555133..d5b68b1 100644 --- a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeConfiguration.java +++ b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeConfiguration.java @@ -8,6 +8,7 @@ import redis.clients.jedis.JedisPool; import java.net.InetAddress; import java.util.List; +import java.util.UUID; public class RedisBungeeConfiguration { @Getter @@ -19,9 +20,15 @@ public class RedisBungeeConfiguration { @Getter private final List exemptAddresses; - public RedisBungeeConfiguration(JedisPool pool, Configuration configuration) { + + public RedisBungeeConfiguration(JedisPool pool, Configuration configuration, String randomUUID) { this.pool = pool; - this.serverId = configuration.getString("server-id"); + if (configuration.getBoolean("use-random-id-string", false)) { + this.serverId = configuration.getString("server-id") + "-" + randomUUID; + } else { + this.serverId = configuration.getString("server-id"); + } + this.registerBungeeCommands = configuration.getBoolean("register-bungee-commands", true); List stringified = configuration.getStringList("exempt-ip-addresses"); @@ -33,4 +40,5 @@ public class RedisBungeeConfiguration { this.exemptAddresses = addressBuilder.build(); } + } diff --git a/src/main/resources/example_config.yml b/src/main/resources/example_config.yml index b581a49..a4cb862 100644 --- a/src/main/resources/example_config.yml +++ b/src/main/resources/example_config.yml @@ -16,8 +16,12 @@ max-redis-connections: 8 # you must disable this if redis version is under 6 you must disable this or connection wont work!!! useSSL: false + # An identifier for this BungeeCord instance. server-id: test1 +# Should use random string? if enabled proxy id will be like this "test1-66cd2aeb-91f3-43a7-a106-e0307b098652" +# this great for servers who run replicas in Kubernetes or any auto deploying replica service +use-random-id-string: false # Whether or not RedisBungee should install its version of regular BungeeCord commands. # Often, the RedisBungee commands are desired, but in some cases someone may wish to