From d00f47c1d80be41781111bcf39372c1dec975a0b Mon Sep 17 00:00:00 2001 From: Junior Date: Wed, 2 Oct 2024 13:36:55 +0000 Subject: [PATCH] Improve handling of slug names used in commands --- index.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/index.js b/index.js index a94fd73..edc9f5d 100644 --- a/index.js +++ b/index.js @@ -99,25 +99,29 @@ client.on('message', async msg => { 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); - } - }); + let cmdParts = msg.content.trim().split(" "); + let server = Servers.find(element => element.slug == cmdParts[1].trim()); + if ( typeof server === 'undefined' ) { + msg.channel.send("**Error:** There is no server with a slug of \"`" + cmdParts[1].trim() + "`\""); + } else { + 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]); + let cmdParts = msg.content.trim().split(" "); + let server = Servers.find(element => element.slug == cmdParts[1].trim()); if ( server ) { let hostStatus = "Offline"; if (server.hostIsAlive()) hostStatus = "Online"; @@ -167,7 +171,7 @@ client.on('message', async msg => { } } else { if ( cmdParts[1] ) { - msg.channel.send("No server with the slug \"" + cmdParts[1] + "\" exists"); + msg.channel.send("No server with the slug \"`" + cmdParts[1] + "`\" exists"); } else { msg.channel.send("**Usage:** >>server *slug*"); }