【问题标题】:How is this messageComponentCollector not working? (discord.js v13)这个 messageComponentCollector 怎么不工作了? (discord.js v13)
【发布时间】:2023-01-12 08:00:17
【问题描述】:

我正在尝试在此消息上创建一个消息组件收集器,并且只读取“选择菜单”组件。

但是,收集器似乎存在但不收集。当我在选择菜单中更改某些内容时,菜单会显示“此交互失败”。

这是代码:

if (wikiEmbeds.length > 1) {
    let selectMenuOptions = []
    for (let i = 0; i < wikiEmbeds.length; i++) {
        const selectedContent = wikiEmbeds[i];
        if (i == 0) {
            selectMenuOptions.push(
                {
                    label: selectedContent.tableName,
                    value: `${i}`,
                    default: true
                }
            )
        } else {
            selectMenuOptions.push(
                {
                    label: selectedContent.tableName,
                    value: `${i}`
                }
            )
        }      
    }
    let messageRow = new Discord.MessageActionRow()
    .addComponents(
        new Discord.MessageSelectMenu({
            
        })
        .setCustomId("ds3-bosses-menu")
        .addOptions(selectMenuOptions)
    )
    const initialMessage = await interaction.reply({ embeds: [wikiEmbeds[0].embed], components: [messageRow], fetchReply: true })

    const filter = (i) => {  } 
    const collector = initialMessage.channel.createMessageComponentCollector({
        filter,
        componentType: 'SELECT_MENU',
        time: 30000
    })
    console.log(collector)
    collector.on("collect", (selectInteraction) => {
        selectInteraction.reply(" . ")
    })
}

wikiEmbeds是一个表数组,都是这样的{ tableName: string, embed: embed }[]

【问题讨论】:

    标签: node.js discord.js


    【解决方案1】:

    我很确定这是你的过滤器。您的过滤器必须返回 true 才能收集 SelectMenu。试试const filter = (i) =&gt; true

    【讨论】:

    • 我有一个过滤器变成了假,所以我把它全部删除了,以为它会自动变成真的。但是将过滤器设置为 true 有助于解决所有这些问题。我可能写错了过滤器。太感谢了!!!
    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2022-01-02
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多