From 817726099109147227934df84b0e3299d43d7888 Mon Sep 17 00:00:00 2001 From: Mohammed Alteneiji Date: Fri, 21 Feb 2025 19:44:52 +0400 Subject: [PATCH] make platforms can't see each other when using same redis server and network id --- .../minecraft/redisbungee/api/RedisBungeePlugin.java | 2 +- .../redisbungee/api/config/loaders/ConfigLoader.java | 5 +++-- api/src/main/resources/config.yml | 2 ++ .../imaginarycode/minecraft/redisbungee/RedisBungee.java | 6 +++++- .../minecraft/redisbungee/RedisBungeeVelocityPlugin.java | 5 +++++ 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java index de66a0e..be13298 100644 --- a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java +++ b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java @@ -92,5 +92,5 @@ public interface RedisBungeePlugin

extends EventsPlatform { void executeAsyncAfter(Runnable runnable, TimeUnit timeUnit, int time); - + String platformId(); } diff --git a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/config/loaders/ConfigLoader.java b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/config/loaders/ConfigLoader.java index 415b43a..01ec289 100644 --- a/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/config/loaders/ConfigLoader.java +++ b/api/src/main/java/com/imaginarycode/minecraft/redisbungee/api/config/loaders/ConfigLoader.java @@ -97,8 +97,9 @@ public interface ConfigLoader extends GenericConfigLoader { } plugin.logInfo("Loaded network id " + networkId); - - + // TO avoid proxies from different platforms from seeing each other. + networkId = plugin.platformId() + "-" + networkId; + plugin.logInfo("Platform is {} so network id is now is {}", plugin.platformId(), networkId); boolean reconnectToLastServer = node.getNode("reconnect-to-last-server").getBoolean(); boolean handleMotd = node.getNode("handle-motd").getBoolean(true); diff --git a/api/src/main/resources/config.yml b/api/src/main/resources/config.yml index b69b5ee..5bb5ffa 100644 --- a/api/src/main/resources/config.yml +++ b/api/src/main/resources/config.yml @@ -50,6 +50,8 @@ useSSL: false # An identifier for this network, which helps to separate redisbungee instances on same redis instance. # You can use environment variable 'REDISBUNGEE_NETWORK_ID' to override +# Depending on the platform bungeecord or velocity system will append platform id to the network id +# to prevent proxies from different platforms from seeing each other. since 0.13.0 network-id: "main" # An identifier for this BungeeCord / Velocity instance. Will randomly generate if leaving it blank. diff --git a/proxies/bungeecord/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/proxies/bungeecord/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index bc6d387..2a63876 100644 --- a/proxies/bungeecord/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/proxies/bungeecord/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -355,9 +355,13 @@ public class RedisBungee extends Plugin implements RedisBungeePlugin, Con public InputStream getResourceAsStream(String name) { return this.getClass().getClassLoader().getResourceAsStream(name); } + + @Override + public String platformId() { + return "velocity"; + } }