Discord.js 错误“获取此按钮时出现问题!”

问题描述 投票:0回答:0

我正在使用 Discord.js 创建一个附加到嵌入的按钮。单击此按钮时,事件处理程序会触发,但会发送一条临时消息,指出“获取此按钮时出现问题!”。我不确定为什么要发送它。

版本:npm [email protected]https://www.npmjs.com/package/discord.js/v/14.7.1

用于设置按钮的代码


function createEmbed(){
    ...
    const embed = createQueueEmbed(players, id, type);
    const messageRow = createJoinLeaveRow(id);
    await message.channel.send({ embeds: [embed], components: [messageRow] });
}

function createQueueEmbed(players, id, type){

    var playerString = "";
    for (var i = 0; i < players.length; i++) {
        playerString += `${players[i]}` + "\r\n";
    }

    const embed = new EmbedBuilder()
        .setColor("#FFFFFF")
        .setTitle(`8's Queue [${type}]`)
        .setDescription(`ID: ${id}\r\n\r\n${players.length}/8\r\n**Players**: \r\n${playerString}`);
        
    return embed;
}

function createJoinLeaveRow(id) {
    return new ActionRowBuilder()
        .addComponents(
            createJoin8sButton(id),
            createLeave8sButton(id)
        );
}

function createJoin8sButton(id) {
    return new ButtonBuilder()
        .setCustomId(`join8s-${id}`)
        .setLabel("Join 8s")
        .setStyle(ButtonStyle.Success);
}

function createLeave8sButton(id) {
    return new ButtonBuilder()
        .setCustomId(`leave8s-${id}`)
        .setLabel("Leave 8s")
        .setStyle(ButtonStyle.Danger);
}

为了处理交互,我有这个:

client.on(Events.InteractionCreate, async interaction => {
    try{
        if (!interaction.isButton()) return;

        // Determine if the id starts with 'join8s'
        if (interaction.customId.startsWith("join8s")) {
            console.log("Join 8s button pressed");
            console.log("Reached the end of the function!");
            return;
        }

        // Determine if the id starts with 'leave8s'
        if (interaction.customId.startsWith("leave8s")) {
            console.log("Leave 8s button pressed");
            return;
        }
    } catch (error) {
        console.error(error);
    }
});

事件处理程序中的那些 console.log 在按钮单击时触发,但消息仍然发送

我已经尽可能地简化了功能。输入的任何逻辑似乎都运行良好。这个短暂的信息似乎只是视觉上的

javascript button discord discord.js
© www.soinside.com 2019 - 2024. All rights reserved.