Switch to 'rcon' package instead of 'mbr-rcon'

This commit is contained in:
Junior 2024-06-20 18:43:57 +00:00
parent 44af9c4a4b
commit a309997899
3 changed files with 575 additions and 906 deletions

View File

@ -1,7 +1,7 @@
const Config = require('./config/config'); const Config = require('./config/config');
const Servers = require('./config/servers'); const Servers = require('./config/servers');
const Discord = require('discord.js'); const Discord = require('discord.js');
const Rcon = require('mbr-rcon'); const Rcon = require('rcon');
const Query = require("minecraft-query"); const Query = require("minecraft-query");
const Server = require('./includes/class_server'); const Server = require('./includes/class_server');
@ -109,32 +109,11 @@ client.on('message', async msg => {
let serverStatus = "Stopped"; let serverStatus = "Stopped";
let serverTPS = "---"; let serverTPS = "---";
if ( server.rconPort != 0 ) { if ( server.rconPort != 0 ) {
const rcon = new Rcon({ var rcon = new Rcon(server.rconAddress, server.rconPort, server.rconPassword);
host: server.rconAddress, rcon.on('auth', function() {
port: server.rconPort,
pass: server.rconPassword,
onClose: function () {}
});
const connection = rcon.connect({
onSuccess: function() {
serverStatus = "Running"; serverStatus = "Running";
}, rcon.send(server.rconTPSCommand);
onError: function() { }).on('response', function(response) {
console.log("Could not connect to rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
}
});
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);
}
});
await connection.send(server.rconTPSCommand, {
onSuccess: function (response) {
if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) { if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) {
let tpsParts = response.trim().split("\n"); let tpsParts = response.trim().split("\n");
serverTPS = tpsParts[0].split(" ").pop().slice(2); serverTPS = tpsParts[0].split(" ").pop().slice(2);
@ -157,13 +136,14 @@ client.on('message', async msg => {
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }
}, }).on('error', function(err) {
onError: function (error) { console.log("RCon Error connecting to '" + server.slug + "': " + err);
console.log("Could not query rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort); 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); server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
}
}); });
connection.close(); rcon.connect();
} else { } else {
console.log("No rcon settings for: " + server.name); console.log("No rcon settings for: " + server.name);
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS); server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
@ -181,4 +161,4 @@ client.on('message', async msg => {
client.login(Config.BOT_TOKEN); client.login(Config.BOT_TOKEN);
// vim: ts=4:sw=4 // vim: set ts=4 sw=4:

1371
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -14,19 +14,19 @@
"license": "GPL-2.0-only", "license": "GPL-2.0-only",
"description": "Discord Bot for CircleCraft", "description": "Discord Bot for CircleCraft",
"dependencies": { "dependencies": {
"async-limiter": "^2.0.0", "async-limiter": ">=2.0.0",
"discord.js": "^12.1.1", "discord.js": "^12.1.1",
"long": "^4.0.0", "long": ">=4.0.0",
"prism-media": "^1.2.1", "prism-media": ">=1.2.1",
"node-fetch": "^2.6.0", "node-fetch": ">=2.6.0",
"tweetnacl": "^1.0.3", "tweetnacl": ">=1.0.3",
"ws": "^7.2.3", "ws": ">=7.2.3",
"moment": "^2.24.0", "moment": ">=2.24.0",
"net-ping": "^1.2.3", "net-ping": ">=1.2.3",
"mbr-rcon": "^1.1.0", "rcon": ">=1.1.0",
"minecraft-query": "^1.0.9" "minecraft-query": ">=1.0.9"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.2" "nodemon": ">=2.0.2"
} }
} }