Refactored Command Deployment, Organized Code, and Fixed Linting

This commit is contained in:
Ahmad 2024-12-21 01:17:20 -05:00
parent 327035d883
commit d8df48438d
No known key found for this signature in database
GPG key ID: 8FD8A93530D182BF
9 changed files with 77 additions and 63 deletions

View file

@ -0,0 +1,31 @@
import {
SlashCommandBuilder,
CommandInteraction,
EmbedBuilder,
} from 'discord.js';
import { getAllMembers } from '../../util/db.js';
interface Command {
data: Omit<SlashCommandBuilder, 'addSubcommand' | 'addSubcommandGroup'>;
execute: (interaction: CommandInteraction) => Promise<void>;
}
const command: Command = {
data: new SlashCommandBuilder()
.setName('members')
.setDescription('Lists all non-bot members of the server'),
execute: async (interaction) => {
const members = await getAllMembers();
const memberList = members
.map((m) => `**${m.discordUsername}** (${m.discordId})`)
.join('\n');
const membersEmbed = new EmbedBuilder()
.setTitle('Members')
.setDescription(memberList)
.setColor(0x0099ff)
.addFields({ name: 'Total Members', value: members.length.toString() });
await interaction.reply({ embeds: [membersEmbed] });
},
};
export default command;