Switch to 'rcon' package instead of 'mbr-rcon'
This commit is contained in:
parent
44af9c4a4b
commit
a309997899
88
index.js
88
index.js
|
@ -1,7 +1,7 @@
|
|||
const Config = require('./config/config');
|
||||
const Servers = require('./config/servers');
|
||||
const Discord = require('discord.js');
|
||||
const Rcon = require('mbr-rcon');
|
||||
const Rcon = require('rcon');
|
||||
const Query = require("minecraft-query");
|
||||
const Server = require('./includes/class_server');
|
||||
|
||||
|
@ -109,61 +109,41 @@ client.on('message', async msg => {
|
|||
let serverStatus = "Stopped";
|
||||
let serverTPS = "---";
|
||||
if ( server.rconPort != 0 ) {
|
||||
const rcon = new Rcon({
|
||||
host: server.rconAddress,
|
||||
port: server.rconPort,
|
||||
pass: server.rconPassword,
|
||||
onClose: function () {}
|
||||
});
|
||||
const connection = rcon.connect({
|
||||
onSuccess: function() {
|
||||
serverStatus = "Running";
|
||||
},
|
||||
onError: function() {
|
||||
console.log("Could not connect to rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
var rcon = new Rcon(server.rconAddress, server.rconPort, server.rconPassword);
|
||||
rcon.on('auth', function() {
|
||||
serverStatus = "Running";
|
||||
rcon.send(server.rconTPSCommand);
|
||||
}).on('response', function(response) {
|
||||
if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) {
|
||||
let tpsParts = response.trim().split("\n");
|
||||
serverTPS = tpsParts[0].split(" ").pop().slice(2);
|
||||
} else {
|
||||
let tpsParts = response.trim().split(" ");
|
||||
serverTPS = tpsParts.pop();
|
||||
if ( serverTPS.includes("*") ) serverTPS = serverTPS.split("*").pop();
|
||||
}
|
||||
});
|
||||
connection.auth({
|
||||
onSuccess: function () {
|
||||
// Don't need to do anything on successful auth to rcon
|
||||
},
|
||||
onError: function (error) {
|
||||
console.log("Could not authenticate to rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
const q = new Query({host: server.rconAddress, port: server.queryPort, timeout: 250});
|
||||
try {
|
||||
q.fullStat()
|
||||
.then(response => {
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS, response);
|
||||
})
|
||||
.then(() => { q.close(); })
|
||||
.catch(e => {
|
||||
q.close();
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}).on('error', function(err) {
|
||||
console.log("RCon Error connecting to '" + server.slug + "': " + err);
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
}).on('end', function() {
|
||||
console.log("RCon connection to '" + server.slug + "' Failed for some unknown reason");
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
});
|
||||
await connection.send(server.rconTPSCommand, {
|
||||
onSuccess: function (response) {
|
||||
if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) {
|
||||
let tpsParts = response.trim().split("\n");
|
||||
serverTPS = tpsParts[0].split(" ").pop().slice(2);
|
||||
} else {
|
||||
let tpsParts = response.trim().split(" ");
|
||||
serverTPS = tpsParts.pop();
|
||||
if ( serverTPS.includes("*") ) serverTPS = serverTPS.split("*").pop();
|
||||
}
|
||||
const q = new Query({host: server.rconAddress, port: server.queryPort, timeout: 250});
|
||||
try {
|
||||
q.fullStat()
|
||||
.then(response => {
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS, response);
|
||||
})
|
||||
.then(() => { q.close(); })
|
||||
.catch(e => {
|
||||
q.close();
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
});
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
},
|
||||
onError: function (error) {
|
||||
console.log("Could not query rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
}
|
||||
});
|
||||
connection.close();
|
||||
rcon.connect();
|
||||
} else {
|
||||
console.log("No rcon settings for: " + server.name);
|
||||
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
|
||||
|
@ -181,4 +161,4 @@ client.on('message', async msg => {
|
|||
|
||||
client.login(Config.BOT_TOKEN);
|
||||
|
||||
// vim: ts=4:sw=4
|
||||
// vim: set ts=4 sw=4:
|
||||
|
|
1371
package-lock.json
generated
1371
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
22
package.json
22
package.json
|
@ -14,19 +14,19 @@
|
|||
"license": "GPL-2.0-only",
|
||||
"description": "Discord Bot for CircleCraft",
|
||||
"dependencies": {
|
||||
"async-limiter": "^2.0.0",
|
||||
"async-limiter": ">=2.0.0",
|
||||
"discord.js": "^12.1.1",
|
||||
"long": "^4.0.0",
|
||||
"prism-media": "^1.2.1",
|
||||
"node-fetch": "^2.6.0",
|
||||
"tweetnacl": "^1.0.3",
|
||||
"ws": "^7.2.3",
|
||||
"moment": "^2.24.0",
|
||||
"net-ping": "^1.2.3",
|
||||
"mbr-rcon": "^1.1.0",
|
||||
"minecraft-query": "^1.0.9"
|
||||
"long": ">=4.0.0",
|
||||
"prism-media": ">=1.2.1",
|
||||
"node-fetch": ">=2.6.0",
|
||||
"tweetnacl": ">=1.0.3",
|
||||
"ws": ">=7.2.3",
|
||||
"moment": ">=2.24.0",
|
||||
"net-ping": ">=1.2.3",
|
||||
"rcon": ">=1.1.0",
|
||||
"minecraft-query": ">=1.0.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^2.0.2"
|
||||
"nodemon": ">=2.0.2"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user