From 6cae6bf5faf97b7be15ef282f8d86c6db349036b Mon Sep 17 00:00:00 2001 From: TymanWasTaken <32660892+tymanwastaken@users.noreply.github.com> Date: Wed, 12 May 2021 02:24:20 -0600 Subject: add actual level calculation and level command, no actual leveling yet though --- src/commands/moulberry-bush/level.ts | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/commands/moulberry-bush/level.ts (limited to 'src/commands') diff --git a/src/commands/moulberry-bush/level.ts b/src/commands/moulberry-bush/level.ts new file mode 100644 index 0000000..6dda91a --- /dev/null +++ b/src/commands/moulberry-bush/level.ts @@ -0,0 +1,46 @@ +import { Message } from 'discord.js'; +import { User } from 'discord.js'; +import { BotCommand } from '../../lib/extensions/BotCommand'; +import { Level } from '../../lib/models'; + +export default class LevelCommand extends BotCommand { + constructor() { + super('level', { + aliases: ['level', 'rank'], + description: { + content: 'Shows the level of a user', + usage: 'level [user]', + examples: ['level', 'level @Tyman'] + }, + args: [ + { + id: 'user', + type: 'user', + prompt: { + start: 'What user would you like to see the level of?', + retry: + 'Invalid user. What user would you like to see the level of?', + optional: true + } + } + ] + }); + } + + async exec(message: Message, { user }: { user?: User }): Promise { + const userLevelRow = await Level.findByPk( + user ? user.id : message.author.id + ); + if (userLevelRow) { + await message.reply( + `${user ? `${user.tag}'s` : 'Your'} level is ${userLevelRow.level} (${ + userLevelRow.xp + } XP)` + ); + } else { + await message.reply( + `${user ? `${user.tag} does` : 'You do'} not have a level yet!` + ); + } + } +} -- cgit