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 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,32 +109,11 @@ 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() {
var rcon = new Rcon(server.rconAddress, server.rconPort, server.rconPassword);
rcon.on('auth', 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);
}
});
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) {
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);
@ -157,13 +136,14 @@ client.on('message', async msg => {
} catch (e) {
console.log(e);
}
},
onError: function (error) {
console.log("Could not query rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
}).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);
}
});
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

File diff suppressed because it is too large Load Diff

View File

@ -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"
}
}