From 2e13b4d861fa78930bc0e36984d262b690e54e7d Mon Sep 17 00:00:00 2001 From: vylpes Date: Sat, 7 Nov 2020 15:16:54 +0000 Subject: [PATCH] Add comments to bunny and poll commands --- commands/bunny.js | 10 +++++++++- commands/poll.js | 25 ++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/commands/bunny.js b/commands/bunny.js index 9eb31b3..e4167b8 100644 --- a/commands/bunny.js +++ b/commands/bunny.js @@ -1,25 +1,33 @@ +// Required components const { command } = require('vylbot-core'); const { MessageEmbed } = require('discord.js'); const randomPuppy = require('random-puppy'); +// Command variables const embedColor = "0x3050ba"; +// Command class class bunny extends command { constructor() { + // Set run method, description, and category super("bunny"); super.description = "Gives you a random bunny"; super.category = "Fun"; } + // Run method bunny(context) { + // Get a random post from r/Rabbits randomPuppy('Rabbits').then(image => { + // Create an embed containing the random image let embed = new MessageEmbed() .setColor(embedColor) .setImage(image); + // Send the embed context.message.channel.send(embed); }); } } -module.exports = bunny; \ No newline at end of file +module.exports = bunny; diff --git a/commands/poll.js b/commands/poll.js index 649f6d1..3acd363 100644 --- a/commands/poll.js +++ b/commands/poll.js @@ -1,25 +1,37 @@ +// Required components const { command } = require('vylbot-core'); const { MessageEmbed } = require('discord.js'); +// Command variables const embedColor = "0x3050ba"; +// Command class class poll extends command { constructor() { + // Set the command's run method, description, category, and example usage super("poll"); super.description = "Generates a poll with reaction numbers"; super.category = "General"; super.usage = ";<option 1>;<option 2>..."; } + // Run method poll(context) { + // Get the command's arguments, and split them by a semicolon rather than a space + // This allows the variables to be able to use spaces in them let args = context.arguments; let argsJoined = args.join(' '); args = argsJoined.split(';'); + // If the argument has 3 or more arguments and less than 11 arguments + // This allows the title and 2-9 options if (args.length >= 3 && args.length < 11) { + // Set the title to the first argument let title = args[0]; let optionString = ""; + // Array used to get the numbers as their words + // arrayOfNumbers[n] = "n written in full words" let arrayOfNumbers = [ 'zero', 'one', @@ -33,14 +45,20 @@ class poll extends command { 'nine' ]; + // Loop through all the arguments after the title + // Add them to the optionString, with their index turned into a number emoji + // Example: :one: Option 1 for (let i = 1; i < args.length; i++) { optionString += `:${arrayOfNumbers[i]}: ${args[i]}\n`; } + // Create the embed with the title at the top of the description with the options below let embed = new MessageEmbed() .setColor(embedColor) .setDescription(`**${title}**\n\n${optionString}`); + // Send the embed and then react with the numbers for users to react with, + // the bot will determine how many to react with for the amount of options inputted context.message.channel.send(embed).then(message => { if (args.length == 2) { message.react("1️⃣"); @@ -99,13 +117,14 @@ class poll extends command { } }).catch(console.error); + // Delete the message context.message.delete(); - } else if (args.length >= 11) { + } else if (args.length >= 11) { // If the user inputted more than 9 options let errorEmbed = new MessageEmbed() .setDescription("The poll command can only accept up to 9 options"); context.message.channel.send(errorEmbed); - } else { + } else { // If the user didn't give enough data let errorEmbed = new MessageEmbed() .setDescription("Please use the correct usage: <title>;<option 1>;<option 2>... (separate options with semicolons)"); @@ -114,4 +133,4 @@ class poll extends command { } } -module.exports = poll; \ No newline at end of file +module.exports = poll;