diff --git a/slash-commands/member.js b/slash-commands/member.js new file mode 100644 index 0000000..a7345cf --- /dev/null +++ b/slash-commands/member.js @@ -0,0 +1,62 @@ +const { SlashCommandBuilder } = require('@discordjs/builders'); +const fn = require('../functions.js'); +const strings = require('../strings.json'); + +module.exports = { + data: new SlashCommandBuilder() + .setName('member') + .setDescription('Manage NodBot paid memberships.') +// Add + .addSubcommand(subcommand => + subcommand + .setName('add') + .setDescription('Add an authorized paying member.') + .addUserOption(option => + option + .setName('newmember') + .setDescription('The member to add.') + .setRequired(true) + ) + ) +// Remove + .addSubcommand(subcommand => + subcommand + .setName('remove') + .setDescription('Remove an authorized paying member.') + .addUserOption(option => + option + .setName('newmember') + .setDescription('The member to remove.') + .setRequired(true) + ) + ), + async execute(interaction) { + await interaction.deferReply(); + try { + // Code Here... + const subcommand = interaction.options.getSubcommand(); + const newmember = interaction.options.getUser('newmember'); + switch (subcommand) { +// Add + case "add": + //TODO + fn.addMember(interaction.client, newmember.id, newmember.username); + interaction.editReply(`Member Added: ${newmember.username} [${newmember.id}]`); + break; +// Remove + case "remove": + fn.removeMember(interaction.client, newmember.id); + interaction.editReply(`Member Removed: ${newmember.username} [${newmember.id}]`); + break; +// Default + default: + interaction.editReply(`No Changes: ${newmember.username} [${newmember.id}]`); + break; + } + } catch (err) { + const errorId = fn.generateErrorId(); + console.error(`${errorId}: err`); + await interaction.editReply(`Sorry, an error has occured. Error ID: ${errorId}`); + } + } +}; \ No newline at end of file