From f31f75ae794797009ecfab49d5858b1849e889e9 Mon Sep 17 00:00:00 2001 From: Emily J Date: Sat, 3 Oct 2020 10:53:16 +1000 Subject: [PATCH] no longer crashes when invalid equation is entered --- src/commands/calculate.js | 82 ++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/src/commands/calculate.js b/src/commands/calculate.js index e7737b3..2ebab0b 100644 --- a/src/commands/calculate.js +++ b/src/commands/calculate.js @@ -1,42 +1,46 @@ -var allowed = ["+", "-", "*", "/", "(", ")", " "]; -exports.run = (client, message, args) => { - let exercise = args.join(" "); - - if (!exercise) { - return message.channel.send( - `<:error:466995152976871434> No equation provided. Usage :\`${client.commands.get(`calculate`).help.usage}\`` - ); - } - - for (var i = 0; i < exercise.length; i++) { - let c = exercise.charAt(i); - let found = allowed.find((element) => element === c); - - if(c == "0") found = true; - if(!(Number(c) || found)) - { - return message.channel.send( - `<:error:466995152976871434> Invalid equation. Please use \`*\` for multiplication and \`/\` for division!` - ); - } - } - - let result = (new Function( 'return ' + exercise )()); + var allowed = ["+", "-", "*", "/", "(", ")", " "]; + exports.run = (client, message, args) => { + let exercise = args.join(" "); + + if (!exercise) { + return message.channel.send( + `<:error:466995152976871434> No equation provided. Usage :\`${client.commands.get(`calculate`).help.usage}\`` + ); + } - message.channel.send(`\`RESULT:\`\n\`\`\`${result}\`\`\``); -}; + try { + for (var i = 0; i < exercise.length; i++) { + let c = exercise.charAt(i); + let found = allowed.find((element) => element === c); + + if(c == "0") found = true; + if(!(Number(c) || found)) + { + return message.channel.send( + `<:error:466995152976871434> Invalid equation. Please use \`*\` for multiplication and \`/\` for division!` + ); + } + } + + let result = (new Function( 'return ' + exercise )()); -exports.conf = { - enabled: true, - guildOnly: false, - aliases: ["calc", "math"], - permLevel: "User", - requiredPerms: [] -}; + message.channel.send(`\`RESULT:\`\n\`\`\`${result}\`\`\``) + } catch (err) { + message.channel.send('<:error:466995152976871434> Malformed input.') + } + }; -exports.help = { - name: "calculate", - category: "Utility", - description: "Solves basic mathematical equations.", - usage: "calculate [equation]" -}; \ No newline at end of file + exports.conf = { + enabled: true, + guildOnly: false, + aliases: ["calc", "math"], + permLevel: "User", + requiredPerms: [] + }; + + exports.help = { + name: "calculate", + category: "Utility", + description: "Solves basic mathematical equations.", + usage: "calculate [equation]" + }; \ No newline at end of file