aboutsummaryrefslogtreecommitdiff
path: root/bot/src/commands
diff options
context:
space:
mode:
Diffstat (limited to 'bot/src/commands')
-rw-r--r--bot/src/commands/stats.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/bot/src/commands/stats.js b/bot/src/commands/stats.js
new file mode 100644
index 0000000..9504386
--- /dev/null
+++ b/bot/src/commands/stats.js
@@ -0,0 +1,24 @@
+import { EmbedBuilder, SlashCommandBuilder } from 'discord.js';
+import { commandUsages } from '../models/command-usages.js';
+import { abEmbedColour } from '../storage/consts.js';
+
+export default {
+ data: new SlashCommandBuilder()
+ .setName('stats')
+ .setDescription('Shows how many times you executed a command.'),
+ async execute(interaction) {
+ let cmdUsage = await commandUsages.findAll({ where: { userID: interaction.user.id } });
+ const totalCommands = cmdUsage.length;
+ const guildCommands = cmdUsage.filter(cmd => cmd.guildID === interaction.guild.id).length;
+
+ const statsEmbed = new EmbedBuilder()
+ .setAuthor({ name: `Stats for ${interaction.user.username}`, iconURL: interaction.client.user.avatarURL() })
+ .addFields(
+ { name: 'Total Commands Executed', value: totalCommands.toString() },
+ { name: 'Total Commands Executed in this Guild', value: guildCommands.toString() }
+ )
+ .setColor(abEmbedColour);
+
+ return await interaction.reply({ embeds: [statsEmbed] });
+ }
+};