From fe9c201eb5587d08293f89c357fa445e09c614b4 Mon Sep 17 00:00:00 2001 From: Alee14 Date: Sun, 3 Dec 2017 06:59:37 -0500 Subject: Command Handler is now finished --- src/bot_discord.js | 31 +++++++++++++++++++++++++++---- src/commands/git.js | 7 +++++++ src/commands/help.js | 14 ++++++++++++++ src/commands/ping.js | 7 +++++++ src/commands/uptime.js | 19 +++++++++++++++++++ 5 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 src/commands/git.js create mode 100644 src/commands/help.js create mode 100644 src/commands/ping.js create mode 100644 src/commands/uptime.js diff --git a/src/bot_discord.js b/src/bot_discord.js index 5fa6fd6..f1818c2 100644 --- a/src/bot_discord.js +++ b/src/bot_discord.js @@ -8,9 +8,27 @@ const Discord = require('discord.js'); const client = new Discord.Client(); const abVersion = "2.0.0 Beta"; -const prefix = "abb:" +const prefix = "abb:"; const fs = require("fs"); const config = require('./absettings.json'); +console.log(`Welcome to AleeBot NodeJS Terminal!`); + +client.commands = new Discord.Collection(); + +fs.readdir(`./commands/`, (err, files) => { + if(err) console.log(err); + + var jsfiles = files.filter(f => f.split('.').pop() === 'js'); + if(jsfiles.length <= 0) { return console.log('[X] No commands found...')} + else { console.log('[i] ' + jsfiles.length + ' commands found.') } + + jsfiles.forEach((f, i) => { + var cmds = require(`./commands/${f}`); + console.log(`[i] Command ${f} loading...`); + client.commands.set(cmds.config.command, cmds); + }) +}) + client.on('ready', () => { console.log("[>] AleeBot is now ready!") @@ -51,11 +69,16 @@ client.on("message", function(message) { if (message.channel.type === "dm") return; if (message.content.indexOf(config.prefix) !== 0) return; var msg = message.content; + var cont = message.content.slice(prefix.length).split(" "); + var args = cont.slice(1); + - const args = message.content.slice(config.prefix.length).trim().split(/ +/g); - const command = args.shift().toLowerCase(); + if (!message.content.startsWith(prefix)) return; + var cmd = bot.commands.get(cont[0]) + if (cmd) cmd.run(bot, message, args); +/* if (command === 'help') { var embed = new Discord.RichEmbed() .setAuthor('AleeBot ' + abVersion + ` Help and on ${client.guilds.size} servers`, "https://cdn.discordapp.com/avatars/282547024547545109/6c147a444ae328c38145ef1f74169e38.png?size=2048") @@ -87,7 +110,7 @@ client.on("message", function(message) { if (command === 'git') { message.author.send("I can see you want to contribute to this project.\nHere's the link: https://github.com/AleeCorp/AleeBot") } - + */ }); client.login(config.abtoken).catch(function() { console.log("[X] Login failed. Please contact Alee14#9928 or email him at alee14498@gmail.com."); diff --git a/src/commands/git.js b/src/commands/git.js new file mode 100644 index 0000000..a53a377 --- /dev/null +++ b/src/commands/git.js @@ -0,0 +1,7 @@ +module.exports.run = async (bot, message, args) => { + message.author.send("I can see you want to contribute to this project.\nHere's the link: https://github.com/AleeCorp/AleeBot") + } + + module.exports.config = { + command: "git" + } \ No newline at end of file diff --git a/src/commands/help.js b/src/commands/help.js new file mode 100644 index 0000000..a57a7d5 --- /dev/null +++ b/src/commands/help.js @@ -0,0 +1,14 @@ +module.exports.run = async (bot, message, args) => { + var embed = new Discord.RichEmbed() + .setAuthor('AleeBot ' + abVersion + ` Help and on ${client.guilds.size} servers`, "https://cdn.discordapp.com/avatars/282547024547545109/6c147a444ae328c38145ef1f74169e38.png?size=2048") + .setDescription("Every command you input into AleeBot is `" + config.prefix + "`") + .addField("- General Commands", "ping\nuptime\ngit", true) + .setFooter("AleeCorp Copyright 2017") + .setColor("#1fd619") + message.channel.sendEmbed(embed); + +} + +module.exports.config = { + command: "help" +} \ No newline at end of file diff --git a/src/commands/ping.js b/src/commands/ping.js new file mode 100644 index 0000000..12fea51 --- /dev/null +++ b/src/commands/ping.js @@ -0,0 +1,7 @@ +module.exports.run = async (bot, message, args) => { + message.reply("**PONG!** :ping_pong: " + Math.round(client.ping) + " ms"); +} + +module.exports.config = { + command: "ping" +} \ No newline at end of file diff --git a/src/commands/uptime.js b/src/commands/uptime.js new file mode 100644 index 0000000..6109bd2 --- /dev/null +++ b/src/commands/uptime.js @@ -0,0 +1,19 @@ +module.exports.run = async (bot, message, args) => { + + var uptime = parseInt(client.uptime); + uptime = Math.floor(uptime / 1000); + var uptimeMinutes = Math.floor(uptime / 60); + var minutes = uptime % 60; + var hours = 0; + while (uptimeMinutes >= 60) { + hours++; + uptimeMinutes = uptimeMinutes - 60; + } + var uptimeSeconds = minutes % 60; + message.channel.send(":clock3: AleeBot has been up for " + hours + " hours, " + uptimeMinutes + " minutes, and " + uptimeSeconds + " seconds.") + +} + +module.exports.config = { + command: "uptime" +} \ No newline at end of file -- cgit v1.2.3