Compare commits

..

No commits in common. "bba074bafb6536c0389b3bd83453f18c9f28396b" and "a30999789917d84c24a18f7c8e2479662e462ccf" have entirely different histories.

3 changed files with 22 additions and 33 deletions

View File

@ -2,8 +2,7 @@ const config = {
BOT_TOKEN: 'YOUR_BOT_TOKEN_GOES_HERE',
CHANNELS_ALLOW: ['123456789012345678', '123456789012345678'],
MOD_ROLE: '123456789012345678',
STAFF_ROLE: '123456789012345678',
RESTART_ROLE: '123456789012345678'
STAFF_ROLE: '123456789012345678'
}
module.exports = config;

View File

@ -1,4 +1,4 @@
const ChildProcess = require('child_process');
const Ping = require('net-ping');
const Discord = require('discord.js');
class Server {
@ -37,13 +37,20 @@ class Server {
if ( serverObj.active ) this.active = serverObj.active;
}
hostIsAlive() {
if ( !this.active || (this.rconAddress == "") ) return false;
async hostIsAlive() {
try {
let res = ChildProcess.execSync('ping -c 1 -W 0.25 -q ' + this.rconAddress);
return true;
if ( !this.active || (this.rconAddress == "") ) return false;
let session = Ping.createSession({retries: 1, timeout: 250});
let result = await session.pingHost(this.rconAddress, function(error, target) {
if ( error ) {
return false;
} else {
return true;
}
});
return result;
} catch (e) {
console.log("Host for " + this.name + " at " + this.rconAddress + " not available");
console.log(e);
return false;
}
}
@ -69,4 +76,4 @@ class Server {
}
}
module.exports = Server;
module.exports = Server;

View File

@ -4,7 +4,6 @@ const Discord = require('discord.js');
const Rcon = require('rcon');
const Query = require("minecraft-query");
const Server = require('./includes/class_server');
const FS = require('fs');
const client = new Discord.Client();
@ -97,33 +96,19 @@ client.on('message', async msg => {
msg.channel.send("**Usage:** >>server *slug*");
}
if ( msg.content.startsWith(">>restart") && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
if ( msg.member.roles.cache.has(Config.RESTART_ROLE) ) {
let cmdParts = msg.content.split(" ");
let server = Servers.find(element => element.slug == cmdParts[1]);
let restartFile = '/automation/mcrestart/' + server.slug + '.restart';
FS.stat(restartFile, function(err, stat) {
if ( err == null ) {
msg.channel.send("**Warning:** " + server.name + " is already queued for a restart");
} else if ( err.code === 'ENOENT' ) {
FS.closeSync(FS.openSync(restartFile, 'w'));
msg.channel.send("**Notice:** " + server.name + " queued for restart by " + msg.author.username);
}
});
} else {
msg.channel.send("**Error:** You do not have permission to restart servers");
}
}
if ( msg.content.startsWith(">>server ") && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
let cmdParts = msg.content.split(" ");
let server = Servers.find(element => element.slug == cmdParts[1]);
if ( server ) {
let hostStatus = "Offline";
if (server.hostIsAlive()) hostStatus = "Online";
try {
if (server.hostIsAlive()) hostStatus = "Online";
} catch (e) {
console.log(e);
}
let serverStatus = "Stopped";
let serverTPS = "---";
if ( (hostStatus == "Online") && (server.rconPort != 0) ) {
if ( server.rconPort != 0 ) {
var rcon = new Rcon(server.rconAddress, server.rconPort, server.rconPassword);
rcon.on('auth', function() {
serverStatus = "Running";
@ -160,9 +145,7 @@ client.on('message', async msg => {
});
rcon.connect();
} else {
if ( server.rconPort != 0 ) {
console.log("No rcon settings for: " + server.name);
}
console.log("No rcon settings for: " + server.name);
server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
}
} else {