aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/commands/moulberry-bush/level.ts27
-rw-r--r--src/lib/extensions/BotCommand.ts7
2 files changed, 33 insertions, 1 deletions
diff --git a/src/commands/moulberry-bush/level.ts b/src/commands/moulberry-bush/level.ts
index 6dda91a..a70ebf1 100644
--- a/src/commands/moulberry-bush/level.ts
+++ b/src/commands/moulberry-bush/level.ts
@@ -1,4 +1,5 @@
import { Message } from 'discord.js';
+import { CommandInteraction } from 'discord.js';
import { User } from 'discord.js';
import { BotCommand } from '../../lib/extensions/BotCommand';
import { Level } from '../../lib/models';
@@ -23,6 +24,14 @@ export default class LevelCommand extends BotCommand {
optional: true
}
}
+ ],
+ slashCommandOptions: [
+ {
+ type: 6,
+ name: 'user',
+ description: 'The user to get the level of',
+ required: false
+ }
]
});
}
@@ -43,4 +52,22 @@ export default class LevelCommand extends BotCommand {
);
}
}
+ async execSlash(message: CommandInteraction): Promise<void> {
+ const user =
+ message.options.find((o) => o.name === 'user')?.user || message.user;
+ const userLevelRow = await Level.findByPk(user.id);
+ if (userLevelRow) {
+ await message.reply(
+ `${user.id !== message.user.id ? `${user.tag}'s` : 'Your'} level is ${
+ userLevelRow.level
+ } (${userLevelRow.xp} XP)`
+ );
+ } else {
+ await message.reply(
+ `${
+ user.id !== message.user.id ? `${user.tag} does` : 'You do'
+ } not have a level yet!`
+ );
+ }
+ }
}
diff --git a/src/lib/extensions/BotCommand.ts b/src/lib/extensions/BotCommand.ts
index 79c7a9f..2db93b0 100644
--- a/src/lib/extensions/BotCommand.ts
+++ b/src/lib/extensions/BotCommand.ts
@@ -1,9 +1,14 @@
import { Command, CommandOptions } from 'discord-akairo';
+import { APIApplicationCommandOption } from 'discord-api-types';
import { BotClient } from './BotClient';
+export interface BotCommandOptions extends CommandOptions {
+ slashCommandOptions?: APIApplicationCommandOption[];
+}
+
export class BotCommand extends Command {
public client: BotClient;
- constructor(id: string, options?: CommandOptions) {
+ constructor(id: string, options?: BotCommandOptions) {
super(id, options);
this.options = options;
}