From 3f84bcd9ec51279085ce1f996869fecadd2b60c6 Mon Sep 17 00:00:00 2001 From: secret_online Date: Mon, 18 Jan 2016 20:53:07 +1300 Subject: Add var keyword to variable declarations Also added strict mode declaration. Linter should now pick up on strict mode invalidations. --- index.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'index.js') diff --git a/index.js b/index.js index 24e6464..f3bebbc 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ /*jslint bitwise: true, node: true */ +'use strict'; var Discord = require("discord.js"); var Rcon = require("rcon"); @@ -39,17 +40,17 @@ app.use(function(request, response, next) { shulker.on("ready", function() { var channel = shulker.channels.get("name", c.DISCORD_CHANNEL).id; app.post(c.WEBHOOK, function(request, response){ - body = request.rawBody; - console.log("[INFO] Recieved "+body); - re = new RegExp(c.REGEX_MATCH_CHAT_MC); - ignored = new RegExp(c.REGEX_IGNORED_CHAT); + var body = request.rawBody; + console.log("[INFO] Recieved "+body); + var re = new RegExp(c.REGEX_MATCH_CHAT_MC); + var ignored = new RegExp(c.REGEX_IGNORED_CHAT); if(!ignored.test(body)) { - bodymatch = body.match(re); + var bodymatch = body.match(re); if(debug) { console.log("[DEBUG] Username: "+bodymatch[1]); console.log("[DEBUG] Text: "+bodymatch[2]); } - message = "**"+bodymatch[1]+"**: "+bodymatch[2]; + var message = "**"+bodymatch[1]+"**: "+bodymatch[2]; shulker.channels.get("id", channel).sendMessage(message); } response.send(""); @@ -58,7 +59,7 @@ shulker.on("ready", function() { shulker.on("message", function (message) { if(message.author.id !== shulker.user.id) { - data = { text: "<"+message.author.username+"> "+message.content }; + var data = { text: "<"+message.author.username+"> "+message.content }; client.send('tellraw @a ["",'+JSON.stringify(data)+']'); } }); -- cgit 1.4.1 From 889f9616c4645b058772a31a1b6eb6c85ca55a46 Mon Sep 17 00:00:00 2001 From: secret_online Date: Mon, 18 Jan 2016 20:55:46 +1300 Subject: Beautify with JS Beautify Embrace the whitespace. Readability is a great thing. --- index.js | 54 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) (limited to 'index.js') diff --git a/index.js b/index.js index f3bebbc..aae741b 100644 --- a/index.js +++ b/index.js @@ -4,8 +4,8 @@ var Discord = require("discord.js"); var Rcon = require("rcon"); var express = require("express"); -var app = express(); -var http = require("http").Server(app); +var app = express(); +var http = require("http").Server(app); var c = require("./config.json"); var debug = c.DEBUG; var shulker = new Discord.Client(); @@ -13,9 +13,9 @@ var shulker = new Discord.Client(); var client = new Rcon(c.MINECRAFT_SERVER_RCON_IP, c.MINECRAFT_SERVER_RCON_PORT, c.MINECRAFT_SERVER_RCON_PASSWORD); client.on("auth", function() { - console.log("[INFO] Authenticated with "+c.MINECRAFT_SERVER_RCON_IP+":"+c.MINECRAFT_SERVER_RCON_PORT); + console.log("[INFO] Authenticated with " + c.MINECRAFT_SERVER_RCON_IP + ":" + c.MINECRAFT_SERVER_RCON_PORT); }).on("response", function(str) { - if(debug && str) { + if (debug && str) { console.log("[DEBUG] Got response: " + str); } }).on("end", function() { @@ -25,42 +25,44 @@ client.on("auth", function() { client.connect(); app.use(function(request, response, next) { - request.rawBody = ""; - request.setEncoding("utf8"); + request.rawBody = ""; + request.setEncoding("utf8"); - request.on("data", function(chunk) { - request.rawBody += chunk; - }); + request.on("data", function(chunk) { + request.rawBody += chunk; + }); - request.on("end", function() { - next(); - }); + request.on("end", function() { + next(); + }); }); shulker.on("ready", function() { - var channel = shulker.channels.get("name", c.DISCORD_CHANNEL).id; - app.post(c.WEBHOOK, function(request, response){ + var channel = shulker.channels.get("name", c.DISCORD_CHANNEL).id; + app.post(c.WEBHOOK, function(request, response) { var body = request.rawBody; - console.log("[INFO] Recieved "+body); + console.log("[INFO] Recieved " + body); var re = new RegExp(c.REGEX_MATCH_CHAT_MC); var ignored = new RegExp(c.REGEX_IGNORED_CHAT); - if(!ignored.test(body)) { + if (!ignored.test(body)) { var bodymatch = body.match(re); - if(debug) { - console.log("[DEBUG] Username: "+bodymatch[1]); - console.log("[DEBUG] Text: "+bodymatch[2]); + if (debug) { + console.log("[DEBUG] Username: " + bodymatch[1]); + console.log("[DEBUG] Text: " + bodymatch[2]); } - var message = "**"+bodymatch[1]+"**: "+bodymatch[2]; + var message = "**" + bodymatch[1] + "**: " + bodymatch[2]; shulker.channels.get("id", channel).sendMessage(message); } response.send(""); }); }); -shulker.on("message", function (message) { - if(message.author.id !== shulker.user.id) { - var data = { text: "<"+message.author.username+"> "+message.content }; - client.send('tellraw @a ["",'+JSON.stringify(data)+']'); +shulker.on("message", function(message) { + if (message.author.id !== shulker.user.id) { + var data = { + text: "<" + message.author.username + "> " + message.content + }; + client.send('tellraw @a ["",' + JSON.stringify(data) + ']'); } }); @@ -69,11 +71,11 @@ shulker.login(c.DISCORD_EMAIL, c.DISCORD_PASSWORD); var ipaddress = process.env.OPENSHIFT_NODEJS_IP || process.env.IP || "127.0.0.1"; var serverport = process.env.OPENSHIFT_NODEJS_PORT || process.env.PORT || c.PORT; if (process.env.OPENSHIFT_NODEJS_IP !== undefined) { - http.listen( serverport, ipaddress, function() { + http.listen(serverport, ipaddress, function() { console.log("[INFO] Bot listening on *:" + serverport); }); } else { - http.listen( serverport, function() { + http.listen(serverport, function() { console.log("[INFO] Bot listening on *:" + c.PORT); }); } -- cgit 1.4.1 From f2833e5d964fb38d79805de3908f153a9314ee6c Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 24 Jan 2016 09:16:33 +1300 Subject: Reconnect RCON on error Added 10s delay inbetween connections --- index.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'index.js') diff --git a/index.js b/index.js index aae741b..fba3da4 100644 --- a/index.js +++ b/index.js @@ -20,6 +20,11 @@ client.on("auth", function() { } }).on("end", function() { console.log("[INFO] Rcon closed!"); +}).on("error", function() { + client.disconnect(); + setTimeout(function() { + client.connect(); + }, 10000); }); client.connect(); -- cgit 1.4.1 From 3faba571382532532f6daa570c9df39a5bda976b Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 24 Jan 2016 09:17:35 +1300 Subject: Add config option for RCON delay --- config.json | 1 + index.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'index.js') diff --git a/config.json b/config.json index 48778d3..07e3895 100644 --- a/config.json +++ b/config.json @@ -9,5 +9,6 @@ "WEBHOOK": "/minecraft/hook", "REGEX_MATCH_CHAT_MC": "\\[Server thread/INFO\\]: <(.*)> (.*)", "REGEX_IGNORED_CHAT": "packets too frequently", + "RCON_RECONNECT_DELAY": 10, "DEBUG": false } \ No newline at end of file diff --git a/index.js b/index.js index fba3da4..7a288f8 100644 --- a/index.js +++ b/index.js @@ -24,7 +24,7 @@ client.on("auth", function() { client.disconnect(); setTimeout(function() { client.connect(); - }, 10000); + }, c.RCON_RECONNECT_DELAY * 1000); }); client.connect(); -- cgit 1.4.1 From 6a7fa0baba003a3c3ccbaf51bffc9ebe5064b172 Mon Sep 17 00:00:00 2001 From: secret_online Date: Sun, 24 Jan 2016 09:26:07 +1300 Subject: Only have one RCON reconnect at the same time --- index.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'index.js') 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(); -- cgit 1.4.1