diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java
index e940a2c4..a0e2471f 100644
--- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java
+++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/RedisBungeePlugin.java
@@ -35,6 +35,8 @@
/**
* This Class has all internal methods needed by every redis bungee plugin, and it can be used to implement another platforms than bungeecord or another forks of RedisBungee
+ *
+ * Reason this is interface because some proxies implementations require the user to extend class for plugins for example bungeecord.
*
* @author Ham1255
* @since 0.7.0
diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/InitialUtils.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/InitialUtils.java
index 9f0253c7..8a2986f6 100644
--- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/InitialUtils.java
+++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/InitialUtils.java
@@ -12,8 +12,6 @@
import com.imaginarycode.minecraft.redisbungee.api.RedisBungeePlugin;
import com.imaginarycode.minecraft.redisbungee.api.util.RedisUtil;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.Protocol;
import redis.clients.jedis.UnifiedJedis;
@@ -28,12 +26,11 @@ public static void checkRedisVersion(RedisBungeePlugin> plugin) {
@Override
public Void unifiedJedisTask(UnifiedJedis unifiedJedis) {
// This is more portable than INFO
-
String info = new String((byte[]) unifiedJedis.sendCommand(Protocol.Command.INFO));
for (String s : info.split("\r\n")) {
if (s.startsWith("redis_version:")) {
String version = s.split(":")[1];
- plugin.logInfo(version + " <- redis version");
+ plugin.logInfo("Redis server version: " + version);
if (!RedisUtil.isRedisVersionRight(version)) {
plugin.logFatal("Your version of Redis (" + version + ") is not at least version 3.0 RedisBungee requires a newer version of Redis.");
throw new RuntimeException("Unsupported Redis version detected");
@@ -62,7 +59,7 @@ public Void unifiedJedisTask(UnifiedJedis unifiedJedis) {
} catch (IOException e) {
throw new RuntimeException(e);
}
- plugin.logInfo("crash file was deleted");
+ plugin.logInfo("crash file was deleted continuing RedisBungee startup ");
} else if (unifiedJedis.hexists("heartbeats", plugin.getConfiguration().getProxyId())) {
try {
long value = Long.parseLong(unifiedJedis.hget("heartbeats", plugin.getConfiguration().getProxyId()));
@@ -81,7 +78,7 @@ public Void unifiedJedisTask(UnifiedJedis unifiedJedis) {
}
private static void logImposter(RedisBungeePlugin> plugin) {
- plugin.logFatal("You have launched a possible impostor Velocity / Bungeecord instance. Another instance is already running.");
+ plugin.logFatal("You have launched a possible impostor Velocity / Bungeecord instance. Another instance is already running.");
plugin.logFatal("For data consistency reasons, RedisBungee will now disable itself.");
plugin.logFatal("If this instance is coming up from a crash, create a file in your RedisBungee plugins directory with the name 'restarted_from_crash.txt' and RedisBungee will not perform this check.");
}
diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/RedisTask.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/RedisTask.java
index 7446c43f..eb1b4160 100644
--- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/RedisTask.java
+++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/tasks/RedisTask.java
@@ -20,6 +20,10 @@
import java.util.concurrent.Callable;
+/**
+ * Since Jedis now have UnifiedJedis which basically extended by cluster / single connections classes
+ * can help us to have shared code.
+ */
public abstract class RedisTask implements Runnable, Callable {
protected final Summoner> summoner;
diff --git a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java
index d2d7b335..8131b41a 100644
--- a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java
+++ b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java
@@ -198,6 +198,7 @@ public InetAddress getPlayerIp(ProxiedPlayer player) {
@Override
public void initialize() {
+ logInfo("Initializing RedisBungee.....");
ThreadFactory factory = ((ThreadPoolExecutor) getExecutorService()).getThreadFactory();
ScheduledExecutorService service = Executors.newScheduledThreadPool(24, factory);
try {
@@ -266,10 +267,12 @@ public void handlePlatformPlayer(String player, UnifiedJedis unifiedJedis) {
getProxy().getPluginManager().registerCommand(this, new RedisBungeeCommands.PlayerProxyCommand(this));
getProxy().getPluginManager().registerCommand(this, new RedisBungeeCommands.PlistCommand(this));
}
+ logInfo("RedisBungee initialized successfully ");
}
@Override
public void stop() {
+ logInfo("Turning off redis connections.....");
// Poison the PubSub listener
if (psl != null) {
psl.poison();
@@ -287,7 +290,7 @@ public void stop() {
} catch (IOException e) {
throw new RuntimeException(e);
}
-
+ logInfo("RedisBungee shutdown");
}
@Override
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 2c618ddb..ca9355df 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
@@ -34,6 +34,7 @@
import com.imaginarycode.minecraft.redisbungee.events.PubSubMessageEvent;
import com.squareup.okhttp.Dispatcher;
import com.squareup.okhttp.OkHttpClient;
+import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
import com.velocitypowered.api.event.proxy.ProxyShutdownEvent;
@@ -245,6 +246,7 @@ public InetAddress getPlayerIp(Player player) {
@Override
public void initialize() {
+ logInfo("Initializing RedisBungee.....");
updateProxiesIds();
// start heartbeat task
heartbeatTask = getProxy().getScheduler().buildTask(this, new HeartbeatTask(this, this.globalPlayerCount)).repeat(HeartbeatTask.INTERVAL, HeartbeatTask.REPEAT_INTERVAL_TIME_UNIT).schedule();
@@ -283,10 +285,12 @@ public void handlePlatformPlayer(String player, UnifiedJedis unifiedJedis) {
getProxy().getCommandManager().register("ip", new RedisBungeeCommands.IpCommand(this), "playerip", "rip", "rplayerip");
getProxy().getCommandManager().register("find", new RedisBungeeCommands.FindCommand(this), "rfind");
}
+ logInfo("RedisBungee initialized successfully ");
}
@Override
public void stop() {
+ logInfo("Turning off redis connections.....");
// Poison the PubSub listener
if (psl != null) {
psl.poison();
@@ -306,10 +310,12 @@ public void stop() {
this.httpClient.getDispatcher().getExecutorService().shutdown();
try {
+ logInfo("waiting for httpclient thread-pool termination.....");
this.httpClient.getDispatcher().getExecutorService().awaitTermination(20, TimeUnit.SECONDS);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
+ logInfo("RedisBungee shutdown complete");
}
@Override
@@ -330,13 +336,13 @@ public void updateProxiesIds() {
this.proxiesIds = this.getCurrentProxiesIds(false);
}
- @Subscribe
- public void proxyInit(ProxyInitializeEvent event) {
+ @Subscribe(order = PostOrder.FIRST)
+ public void onProxyInitializeEvent(ProxyInitializeEvent event) {
initialize();
}
- @Subscribe
- public void proxyShutdownEvent(ProxyShutdownEvent event) {
+ @Subscribe(order = PostOrder.LAST)
+ public void onProxyShutdownEvent(ProxyShutdownEvent event) {
stop();
}
diff --git a/gradle.properties b/gradle.properties
index 54a31fb8..8058410d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,2 +1,2 @@
group = com.imaginarycode.minecraft
-version = 0.11.0-SNAPSHOT
\ No newline at end of file
+version = 0.11.1-SNAPSHOT
\ No newline at end of file