From ebcd6d1a58468cfc9164e070c201ce8e40443d8a Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 20 Mar 2022 20:13:07 +0100 Subject: [PATCH] Implement Redis --- pom.xml | 5 ++++ .../java/net/krakatoa/proxy/ProxySystem.java | 15 ++++++++---- .../listener/PlayerDisconnectListener.java | 4 ++++ .../proxy/listener/PostLoginListener.java | 3 +++ .../krakatoa/proxy/redis/RedisManager.java | 24 +++++++++++++++++++ 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 src/main/java/net/krakatoa/proxy/redis/RedisManager.java diff --git a/pom.xml b/pom.xml index 308f74c..628159d 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,11 @@ + + io.lettuce + lettuce-core + 6.1.8.RELEASE + net.md-5 bungeecord-api diff --git a/src/main/java/net/krakatoa/proxy/ProxySystem.java b/src/main/java/net/krakatoa/proxy/ProxySystem.java index 6e44909..13b8137 100644 --- a/src/main/java/net/krakatoa/proxy/ProxySystem.java +++ b/src/main/java/net/krakatoa/proxy/ProxySystem.java @@ -18,6 +18,7 @@ import net.krakatoa.proxy.listener.PlayerDisconnectListener; import net.krakatoa.proxy.listener.PostLoginListener; import net.krakatoa.proxy.listener.SocketClientMessageListener; import net.krakatoa.proxy.mongo.MongoManager; +import net.krakatoa.proxy.redis.RedisManager; import net.krakatoa.proxy.util.Formatter; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.PluginManager; @@ -36,6 +37,7 @@ public class ProxySystem extends Plugin { private KraSocketClientEventInitiater kraSocketClientEventInitiater; private KraSocketClientEventInterface kraSocketClientEventInterface; private MongoManager mongoManager; + private RedisManager redisManager; private MongoCollection players; @@ -64,12 +66,15 @@ public class ProxySystem extends Plugin { this.kraSocketClient.getSocketClient().connect(); - mongoManager = new MongoManager(configHandler.getMongodbHost(), - configHandler.getMongodbPort(), configHandler.getMongodbUsername(), - configHandler.getMongodbPassword()); - mongoManager.connect(configHandler.getMongodbDatabase()); + this.mongoManager = new MongoManager(this.configHandler.getMongodbHost(), + this.configHandler.getMongodbPort(), this.configHandler.getMongodbUsername(), + this.configHandler.getMongodbPassword()); + this.mongoManager.connect(this.configHandler.getMongodbDatabase()); - players = mongoManager.getMongoDatabase().getCollection("players"); + this.players = this.mongoManager.getMongoDatabase().getCollection("players"); + + this.redisManager = new RedisManager("redis://localhost"); + this.redisManager.connect(); loadListeners(); loadCommands(); diff --git a/src/main/java/net/krakatoa/proxy/listener/PlayerDisconnectListener.java b/src/main/java/net/krakatoa/proxy/listener/PlayerDisconnectListener.java index 05a8952..710e3ab 100644 --- a/src/main/java/net/krakatoa/proxy/listener/PlayerDisconnectListener.java +++ b/src/main/java/net/krakatoa/proxy/listener/PlayerDisconnectListener.java @@ -1,5 +1,6 @@ package net.krakatoa.proxy.listener; +import net.krakatoa.proxy.ProxySystem; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.PlayerDisconnectEvent; import net.md_5.bungee.api.plugin.Listener; @@ -11,6 +12,9 @@ public class PlayerDisconnectListener implements Listener { public void onDisconnect(PlayerDisconnectEvent event) { ProxiedPlayer proxiedPlayer = event.getPlayer(); + ProxySystem.getInstance().getRedisManager().getCommands() + .getdel("player:" + proxiedPlayer.getUniqueId().toString()); + //String uuid = ProxySystem.getInstance().getFormatter() // .formatUuid(proxiedPlayer.getUniqueId().toString()); diff --git a/src/main/java/net/krakatoa/proxy/listener/PostLoginListener.java b/src/main/java/net/krakatoa/proxy/listener/PostLoginListener.java index 29be4bd..abd73e3 100644 --- a/src/main/java/net/krakatoa/proxy/listener/PostLoginListener.java +++ b/src/main/java/net/krakatoa/proxy/listener/PostLoginListener.java @@ -97,6 +97,9 @@ public class PostLoginListener implements Listener { (short) 10, "", consumer)); } }); + + ProxySystem.getInstance().getRedisManager().getCommands() + .set("player:" + proxiedPlayer.getUniqueId().toString(), proxiedPlayer.getName()); } public void sendVoiceWebCodeUrl(ProxiedPlayer proxiedPlayer, String voiceWebCode) { diff --git a/src/main/java/net/krakatoa/proxy/redis/RedisManager.java b/src/main/java/net/krakatoa/proxy/redis/RedisManager.java new file mode 100644 index 0000000..c22e514 --- /dev/null +++ b/src/main/java/net/krakatoa/proxy/redis/RedisManager.java @@ -0,0 +1,24 @@ +package net.krakatoa.proxy.redis; + +import io.lettuce.core.RedisClient; +import io.lettuce.core.api.StatefulRedisConnection; +import io.lettuce.core.api.sync.RedisStringCommands; +import lombok.Data; + +@Data +public class RedisManager { + + private final String connectionUri; + + private RedisClient client; + private StatefulRedisConnection connection; + private RedisStringCommands commands; + + public void connect() { + this.client = RedisClient.create(this.getConnectionUri()); + this.connection = client.connect(); + this.commands = connection.sync(); + + commands.set("test", "im here"); + } +}