From b8db85e71c4230fadc3630358efd5937713830b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Gro=C3=9F?= Date: Wed, 15 Mar 2023 15:31:02 +0100 Subject: [PATCH] Wishlist: Command boilerplate --- commands/wishlist.js | 53 +++++++++++++++++++++++++++++++++++ events/autocompleteRequest.js | 5 ++++ 2 files changed, 58 insertions(+) create mode 100644 commands/wishlist.js diff --git a/commands/wishlist.js b/commands/wishlist.js new file mode 100644 index 0000000..abefed0 --- /dev/null +++ b/commands/wishlist.js @@ -0,0 +1,53 @@ +const { SlashCommandBuilder } = require("discord.js"); + +module.exports = { + data: new SlashCommandBuilder() + .setName("wishlist") + .setDescription("View, edit or compare your wishlist") + .addSubcommand((subcommand) => + subcommand + .setName("view") + .setDescription("View your wishlist")) + .addSubcommand((subcommand) => + subcommand + .setName("compare") + .setDescription("Compare your wishlist with a users collection") + .addUserOption((option) => + option + .setName("user") + .setDescription("User to compare with") + .setRequired(true) + )) + .addSubcommand((subcommand) => + subcommand + .setName("edit") + .setDescription("Add or remove a character from your wishlist") + .addStringOption((option) => + option + .setName("character") + .setDescription("Character to add/remove") + .setRequired(true) + .setAutocomplete(true) + ) + ), + permissionLevel: 1, + async execute(interaction) { + await interaction.deferReply(); + + switch (interaction.options.getSubcommand()) { + case "view": + await interaction.editReply("Viewing your wishlist"); + break; + case "compare": + await interaction.editReply("Comparing your wishlist"); + break; + case "edit": + await interaction.editReply("Editing your wishlist"); + break; + default: + await interaction.editReply("hmmm"); + break; + } + + } +} \ No newline at end of file diff --git a/events/autocompleteRequest.js b/events/autocompleteRequest.js index 238e547..8c4b4e8 100644 --- a/events/autocompleteRequest.js +++ b/events/autocompleteRequest.js @@ -39,6 +39,11 @@ module.exports = { break; } } + + if (interaction.commandName === 'wishlist') { + choices = (await SearchUtils.findByName(Character, focusedOption.value))["choices"]; + } + if (interaction.commandName === 'collection') { const character = interaction.options.getString('character'); const group = interaction.options.getString('group');