diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index e35bd16..a4a96f5 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -1,5 +1,7 @@ package com.imaginarycode.minecraft.redisbungee; +import redis.clients.jedis.JedisPool; + /** * This used to be old plugin instance of redis-bungee, but now it's used to get the api for old plugins * @@ -27,6 +29,10 @@ public class RedisBungee { return api; } + @Deprecated + public JedisPool getPool() { + return api.getJedisPool(); + } } diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeAPI.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeAPI.java index 4ca064e..4cb2db4 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeAPI.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeAPI.java @@ -5,8 +5,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import com.imaginarycode.minecraft.redisbungee.internal.RedisBungeePlugin; +import com.imaginarycode.minecraft.redisbungee.internal.summoners.JedisSummoner; import org.checkerframework.checker.nullness.qual.NonNull; import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; import java.net.InetAddress; import java.util.*; @@ -309,9 +311,28 @@ public class RedisBungeeAPI { * @since 0.7.0 */ public Jedis requestJedis() { - return this.plugin.requestJedis(); + return this.plugin.getJedisSummoner().requestJedis(); } + /** + * This gets Redis Bungee {@link JedisPool} + * @return {@link JedisPool} + * @since 0.6.5 + */ + public JedisPool getJedisPool() { + return this.plugin.getJedisSummoner().getJedisPool(); + } + + /** + * This gets Redis Bungee {@link JedisPool} + * @return {@link JedisPool} + * @since 0.6.5 + */ + public JedisSummoner getJedisSummoner() { + return this.plugin.getJedisSummoner(); + } + + /** * * @return the API instance. diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/AbstractDataManager.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/AbstractDataManager.java index 0b2fc20..4a9d91b 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/AbstractDataManager.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/AbstractDataManager.java @@ -55,7 +55,7 @@ public abstract class AbstractDataManager { return serverCache.get(uuid, new Callable() { @Override public String call() throws Exception { - try (Jedis tmpRsc = plugin.requestJedis()) { + try (Jedis tmpRsc = plugin.getJedisSummoner().requestJedis()) { return Objects.requireNonNull(tmpRsc.hget("player:" + uuid, "server"), "user not found"); } } @@ -79,7 +79,7 @@ public abstract class AbstractDataManager { return proxyCache.get(uuid, new Callable() { @Override public String call() throws Exception { - try (Jedis tmpRsc = plugin.requestJedis()) { + try (Jedis tmpRsc = plugin.getJedisSummoner().requestJedis()) { return Objects.requireNonNull(tmpRsc.hget("player:" + uuid, "proxy"), "user not found"); } } @@ -102,7 +102,7 @@ public abstract class AbstractDataManager { return ipCache.get(uuid, new Callable() { @Override public InetAddress call() throws Exception { - try (Jedis tmpRsc = plugin.requestJedis()) { + try (Jedis tmpRsc = plugin.getJedisSummoner().requestJedis()) { String result = tmpRsc.hget("player:" + uuid, "ip"); if (result == null) throw new NullPointerException("user not found"); @@ -128,7 +128,7 @@ public abstract class AbstractDataManager { return lastOnlineCache.get(uuid, new Callable() { @Override public Long call() throws Exception { - try (Jedis tmpRsc = plugin.requestJedis()) { + try (Jedis tmpRsc = plugin.getJedisSummoner().requestJedis()) { String result = tmpRsc.hget("player:" + uuid, "online"); return result == null ? -1 : Long.valueOf(result); } diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/PubSubListener.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/PubSubListener.java index 83c624c..9e75aa2 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/PubSubListener.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/PubSubListener.java @@ -21,7 +21,7 @@ public class PubSubListener implements Runnable { @Override public void run() { - try (Jedis rsc = plugin.requestJedis()) { + try (Jedis rsc = plugin.getJedisSummoner().requestJedis()) { try { jpsh = new JedisPubSubHandler(plugin); diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/RedisBungeePlugin.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/RedisBungeePlugin.java index 7ce5560..6dd70ec 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/RedisBungeePlugin.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/RedisBungeePlugin.java @@ -2,6 +2,7 @@ package com.imaginarycode.minecraft.redisbungee.internal; import com.google.common.collect.Multimap; import com.imaginarycode.minecraft.redisbungee.RedisBungeeAPI; +import com.imaginarycode.minecraft.redisbungee.internal.summoners.JedisSummoner; import com.imaginarycode.minecraft.redisbungee.internal.util.uuid.UUIDTranslator; import redis.clients.jedis.Jedis; @@ -34,6 +35,8 @@ public interface RedisBungeePlugin

extends EventsPlatform{ boolean isJedisAvailable(); + JedisSummoner getJedisSummoner(); + RedisBungeeConfiguration getConfiguration(); int getCount(); diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/JedisSummoner.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/JedisSummoner.java index e09e878..9c51033 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/JedisSummoner.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/JedisSummoner.java @@ -20,4 +20,6 @@ public interface JedisSummoner extends Closeable { boolean isJedisAvailable(); + JedisPool getJedisPool(); + } diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/SinglePoolJedisSummoner.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/SinglePoolJedisSummoner.java index 70198f8..02f4453 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/SinglePoolJedisSummoner.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/summoners/SinglePoolJedisSummoner.java @@ -22,6 +22,11 @@ public class SinglePoolJedisSummoner implements JedisSummoner { return !this.jedisPool.isClosed(); } + @Override + public JedisPool getJedisPool() { + return this.jedisPool; + } + @Override public void close() throws IOException { jedisPool.close(); diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/LuaManager.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/LuaManager.java index 008b2c2..52f8ebb 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/LuaManager.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/LuaManager.java @@ -14,7 +14,7 @@ public class LuaManager { } public Script createScript(String script) { - try (Jedis jedis = plugin.requestJedis()) { + try (Jedis jedis = plugin.getJedisSummoner().requestJedis()) { String hash = jedis.scriptLoad(script); return new Script(script, hash); } @@ -40,7 +40,7 @@ public class LuaManager { public Object eval(List keys, List args) { Object data; - try (Jedis jedis = plugin.requestJedis()) { + try (Jedis jedis = plugin.getJedisSummoner().requestJedis()) { try { data = jedis.evalsha(hashed, keys, args); } catch (JedisDataException e) { diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/RedisCallable.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/RedisCallable.java index 3aa3e28..eb2873d 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/RedisCallable.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/RedisCallable.java @@ -25,7 +25,7 @@ public abstract class RedisCallable implements Callable, Runnable { } private T run(boolean retry) { - try (Jedis jedis = plugin.requestJedis()) { + try (Jedis jedis = plugin.getJedisSummoner().requestJedis()) { return call(jedis); } catch (JedisConnectionException e) { plugin.logFatal("Unable to get connection"); diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/uuid/UUIDTranslator.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/uuid/UUIDTranslator.java index f2c8ff0..a9227d7 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/uuid/UUIDTranslator.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/internal/util/uuid/UUIDTranslator.java @@ -73,7 +73,7 @@ public final class UUIDTranslator { } // Let's try Redis. - try (Jedis jedis = plugin.requestJedis()) { + try (Jedis jedis = plugin.getJedisSummoner().requestJedis()) { String stored = jedis.hget("uuid-cache", player.toLowerCase()); if (stored != null) { // Found an entry value. Deserialize it. @@ -131,7 +131,7 @@ public final class UUIDTranslator { } // Okay, it wasn't locally cached. Let's try Redis. - try (Jedis jedis = plugin.requestJedis()) { + try (Jedis jedis = plugin.getJedisSummoner().requestJedis()) { String stored = jedis.hget("uuid-cache", player.toString()); if (stored != null) { // Found an entry value. Deserialize it. diff --git a/RedisBungee-API/src/main/resources/example_config.yml b/RedisBungee-API/src/main/resources/example_config.yml index 46bb865..2002f57 100644 --- a/RedisBungee-API/src/main/resources/example_config.yml +++ b/RedisBungee-API/src/main/resources/example_config.yml @@ -1,5 +1,9 @@ # RedisBungee configuration file. -# PLEASE READ THE WIKI: https://github.com/Limework/RedisBungee/wiki +# PLEASE READ THE WIKI: https://github.com/ProxioDev/RedisBungee/wiki + +# Cluster Mode its in different config file redis-cluster.yml +# enabling this option will ignore redis config of this file +cluster-mode: false # The Redis server you use. # Get Redis from http://redis.io/ diff --git a/RedisBungee-API/src/main/resources/redis-cluster.yml b/RedisBungee-API/src/main/resources/redis-cluster.yml new file mode 100644 index 0000000..e69de29 diff --git a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeBungeePlugin.java b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeBungeePlugin.java index 57c8989..f146d78 100644 --- a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeBungeePlugin.java +++ b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeBungeePlugin.java @@ -502,6 +502,11 @@ public class RedisBungeeBungeePlugin extends Plugin implements RedisBungeePlugin } } + @Override + public JedisSummoner getJedisSummoner() { + return this.jedisSummoner; + } + @Override public void loadConfig() throws IOException { if (!getDataFolder().exists() && getDataFolder().mkdir()) { diff --git a/RedisBungee-Velocity/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeVelocityPlugin.java b/RedisBungee-Velocity/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeVelocityPlugin.java index 37a5e76..7089304 100644 --- a/RedisBungee-Velocity/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeVelocityPlugin.java +++ b/RedisBungee-Velocity/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungeeVelocityPlugin.java @@ -200,6 +200,11 @@ public class RedisBungeeVelocityPlugin implements RedisBungeePlugin { return this.jedisSummoner.isJedisAvailable(); } + @Override + public JedisSummoner getJedisSummoner() { + return this.jedisSummoner; + } + @Override public RedisBungeeAPI getApi() { return this.api;