From b43eae6739f8e6a1e920f2b3da8534687b58e6bb Mon Sep 17 00:00:00 2001 From: Dan Wager Date: Wed, 8 Mar 2017 22:20:51 -0800 Subject: [PATCH 1/2] Use redis time (seconds) for heartbeat processing --- .../imaginarycode/minecraft/redisbungee/RedisBungee.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index 6e8c56a..5174114 100644 --- a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -258,7 +258,8 @@ public final class RedisBungee extends Plugin { } } - tmpRsc.hset("heartbeats", configuration.getServerId(), String.valueOf(System.currentTimeMillis())); + long redisTime = getRedisTime(tmpRsc.time()); + tmpRsc.hset("heartbeats", configuration.getServerId(), String.valueOf(redisTime)); long uuidCacheSize = tmpRsc.hlen("uuid-cache"); if (uuidCacheSize > 750000) { @@ -454,7 +455,8 @@ public final class RedisBungee extends Plugin { } else if (rsc.hexists("heartbeats", serverId)) { try { long value = Long.parseLong(rsc.hget("heartbeats", serverId)); - if (System.currentTimeMillis() < value + 20000) { + long redisTime = getRedisTime(rsc.time()); + if (redisTime < value + 20) { getLogger().severe("You have launched a possible impostor BungeeCord instance. Another instance is already running."); getLogger().severe("For data consistency reasons, RedisBungee will now disable itself."); getLogger().severe("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."); From f6615e874983d052a5b9e190d4d1d2941b2fe95f Mon Sep 17 00:00:00 2001 From: Dan Wager Date: Wed, 8 Mar 2017 22:42:04 -0800 Subject: [PATCH 2/2] Just use the provided string --- .../com/imaginarycode/minecraft/redisbungee/RedisBungee.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index 5174114..c1968c8 100644 --- a/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -258,8 +258,7 @@ public final class RedisBungee extends Plugin { } } - long redisTime = getRedisTime(tmpRsc.time()); - tmpRsc.hset("heartbeats", configuration.getServerId(), String.valueOf(redisTime)); + tmpRsc.hset("heartbeats", configuration.getServerId(), tmpRsc.time().get(0)); long uuidCacheSize = tmpRsc.hlen("uuid-cache"); if (uuidCacheSize > 750000) {