summaryrefslogtreecommitdiff
path: root/src/commands/utility/average.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/utility/average.ts')
-rw-r--r--src/commands/utility/average.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/commands/utility/average.ts b/src/commands/utility/average.ts
new file mode 100644
index 0000000..51ac9e6
--- /dev/null
+++ b/src/commands/utility/average.ts
@@ -0,0 +1,43 @@
+import { Command, CommandoMessage } from 'discord.js-commando';
+import emoji from 'emoji-random'
+import { formatDistance, formatRelative } from 'date-fns'
+import { stripIndents } from 'common-tags'
+
+module.exports = class AverageUtility extends Command {
+ constructor(client) {
+ super(client, {
+ name: 'average',
+ aliases: [
+ 'average-number',
+ 'averagenumber',
+ 'average-num',
+ 'averagenum'
+ ],
+ group: 'utility',
+ memberName: 'average',
+ description: 'Gets the average of specified numbers.',
+ examples: ['uwu!average 10 20 30 40 50'],
+ throttling: {
+ usages: 5,
+ duration: 30
+ },
+ userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
+ clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
+ args: [
+ {
+ key: 'nNum',
+ prompt: 'What\'s another number you would like to average?',
+ type: 'float',
+ label: 'number',
+ infinite: true
+ }
+ ]
+ });
+ }
+ async run(msg: CommandoMessage, { nNum }) {
+ if (nNum.length < 2) msg.reply('Please provide **2** or more numbers.')
+
+ const reducer = (accumulator, currentValue) => accumulator + currentValue
+ msg.reply(`The average of the specified numbers is ${nNum.reduce(reducer) / nNum.length}.` + ' ' + emoji.random())
+ }
+}; \ No newline at end of file