hjelp

📅 2023-08-23T20:02:11.434Z
👁️ 203 katselukertaa
🔓 Julkinen


const rrSchema = require("../../models/roleModel");
const { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require("discord.js");

module.exports = {
    data: new SlashCommandBuilder()
        .setName("roolivalikko")
        .setDescription("Luo roolivalikko")
        .setDMPermission(false)
        .setDefaultMemberPermissions(PermissionFlagsBits.Administrator),
    
async execute(interaction) {
    const { guildId, guild, channel } = interaction

    try {
        const data = await rrSchema.findOne({ GuildID: guildId })

        if (!data.roles.length > 0)
            return interaction.reply({ content: "This server does not have any data.", ephemeral: true })

        const panelEmbed = new EmbedBuilder()
            .setDescription("Valitse alta itsellesi rooleja")
            .setColor(0x013220)

        const options = data.roles.map(x => {
            const role = guild.roles.cache.get(x.roleId)

            return {
                label: role.name,
                value: role.id,
                description: x.roleDescription,
                emoji: x.roleEmoji || undefined
            };
        });

        const menuComponents = new StringSelectMenuBuilder()
            .setCustomId('reaction-roles')
            .setMaxValues(options.length)
            .addOptions(options)

        // const menuComponents2 = new StringSelectMenuBuilder()
        //     .setCustomId('null')
        //     .addOptions(
        //         new StringSelectMenuOptionBuilder()
        //             .setLabel('Nollaa')
        //             .setDescription('Nollaa kaikki tässä valikossa olevat roolit')
        //             .setValue('bulbasaur'),
        //         );

        channel.send({ embeds: [panelEmbed], components: [new ActionRowBuilder().addComponents(menuComponents)] })

        return interaction.reply({ content: "Succesfully sent your panel.", ephemeral: true });
    } catch (err) {
        console.log(err)
        }
    }
}