【问题标题】:discord.js "interaction failed" when my code didn't "fail"当我的代码没有“失败”时,discord.js“交互失败”
【发布时间】:2021-09-06 15:55:42
【问题描述】:
client.on('interactionCreate', async interaction => {
    if(!interaction.isMessageComponent()) return // Ignore slash commands

    const message   = interaction.message
    const member    = interaction.member
    const user      = interaction.user

    if(interaction.componentType === 'BUTTON'){
      switch(interaction.customId){
        case "button1":
          message.edit(...)
        break
      }
    }
})

它编辑消息,控制台中没有错误,但不和谐说“交互失败”

【问题讨论】:

  • 您可以发送文件的全部内容吗?我怀疑interactionCreate 事件在消息事件(嵌套)中,否则你不能只用message.edit 编辑消息,因为你还没有定义它
  • const message = .... 我确实定义了它
  • 哦,我的错,发现你的问题现在会添加答案。

标签: javascript discord.js


【解决方案1】:

MessageComponentInteraction 类不提供edit 方法,而是提供Message 本身!对于编辑交互消息,可以使用MessageComponentInteraction#editReplyMessageComponentInteraction#update 方法,以下是如何在您的情况下使用它的示例:


    client.on('interactionCreate', async interaction => {
        if (!interaction.isMessageComponent()) return
    
        let message = interaction.message;
        let member = interaction.member;
        let user = interaction.user;
    
        if (interaction.componentType === 'BUTTON') {
            switch (interaction.customId) {
                case "btn1":
                    return message.editReply({
                        content: `abcd`
                    });
                    break
            }
        }
    })

【讨论】:

    【解决方案2】:

    原来我需要用interaction.update替换message.edit

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 2011-08-23
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2021-12-20
    • 2023-03-16
    相关资源
    最近更新 更多