From ca380193453a1bfa12d3da38bb7a0ea96d8577b9 Mon Sep 17 00:00:00 2001 From: TymanWasTaken <32660892+tymanwastaken@users.noreply.github.com> Date: Tue, 11 May 2021 23:08:28 -0600 Subject: add setlevel command --- src/commands/owner/setlevel.ts | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/commands/owner/setlevel.ts (limited to 'src/commands') diff --git a/src/commands/owner/setlevel.ts b/src/commands/owner/setlevel.ts new file mode 100644 index 0000000..3c76fa0 --- /dev/null +++ b/src/commands/owner/setlevel.ts @@ -0,0 +1,59 @@ +import { User } from 'discord.js'; +import { Message } from 'discord.js'; +import { BotCommand } from '../../lib/extensions/BotCommand'; +import { Level } from '../../lib/models'; +import AllowedMentions from '../../lib/utils/AllowedMentions'; + +export default class SetLevelCommand extends BotCommand { + constructor() { + super('setlevel', { + aliases: ['setlevel'], + description: { + content: 'Sets the level of a user', + usage: 'setlevel ', + examples: ['setlevel @Moulberry 69'] + }, + args: [ + { + id: 'user', + type: 'user', + prompt: { + start: 'What user would you like to change the level of?', + retry: + 'Invalid user. What user would you like to change the level of?' + } + }, + { + id: 'level', + type: 'number', + prompt: { + start: 'What level would you like to set?', + retry: 'Invalid user. What level would you like to set?' + } + } + ], + ownerOnly: true + }); + } + async exec( + message: Message, + { user, level }: { user: User; level: number } + ): Promise { + const [levelEntry] = await Level.findOrBuild({ + where: { + id: user.id + }, + defaults: { + id: user.id + } + }); + levelEntry.xp = Level.convertLevelToXp(level); + await levelEntry.save(); + await message.reply( + `Successfully set level of <@${user.id}> to \`${level}\` (\`${levelEntry.xp}\` XP)`, + { + allowedMentions: AllowedMentions.none() + } + ); + } +} -- cgit