summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorsecret_online <me+github@secretonline.co>2016-01-24 09:26:07 +1300
committersecret_online <me+github@secretonline.co>2016-01-24 09:26:07 +1300
commit6a7fa0baba003a3c3ccbaf51bffc9ebe5064b172 (patch)
tree46e0a9af403b19820af7a6be99263315aa1b9650
parentAdd config option for RCON delay (diff)
downloadshulker-6a7fa0baba003a3c3ccbaf51bffc9ebe5064b172.tar.gz
shulker-6a7fa0baba003a3c3ccbaf51bffc9ebe5064b172.zip
Only have one RCON reconnect at the same time
-rw-r--r--index.js12
1 files changed, 8 insertions, 4 deletions
diff --git a/index.js b/index.js
index 7a288f8..e034e9a 100644
--- a/index.js
+++ b/index.js
@@ -11,6 +11,7 @@ var debug = c.DEBUG;
 var shulker = new Discord.Client();
 
 var client = new Rcon(c.MINECRAFT_SERVER_RCON_IP, c.MINECRAFT_SERVER_RCON_PORT, c.MINECRAFT_SERVER_RCON_PASSWORD);
+var rconTimeout;
 
 client.on("auth", function() {
     console.log("[INFO] Authenticated with " + c.MINECRAFT_SERVER_RCON_IP + ":" + c.MINECRAFT_SERVER_RCON_PORT);
@@ -21,10 +22,13 @@ client.on("auth", function() {
 }).on("end", function() {
     console.log("[INFO] Rcon closed!");
 }).on("error", function() {
-    client.disconnect();
-    setTimeout(function() {
-        client.connect();
-    }, c.RCON_RECONNECT_DELAY * 1000);
+    if (typeof rconTimeout === 'undefined') {
+        client.disconnect();
+        rconTimeout = setTimeout(function() {
+            client.connect();
+            rconTimeout = undefined;
+        }, c.RCON_RECONNECT_DELAY * 1000);
+    }
 });
 
 client.connect();