如何让机器人在 Discord 上编辑自己的消息

时间:2021-02-22 06:55:33

标签: javascript discord discord.js message edit

我的朋友为我写了这段很棒的代码,但它似乎不起作用。它旨在根据命令发送消息,然后一遍又一遍地编辑消息。但是当我运行代码时,我的终端说

<块引用>

DiscordAPIError:无法编辑由其他用户方法创作的消息:'patch',路径:'/channels/808300406073065483/messages/811398346853318668',代码:50005,httpStatus:403

有没有办法解决这个问题?

client.on('message', userMessage => 
{
    if (userMessage.content === 'hi') 
    {
        botMessage = userMessage.channel.send('hi there')
        botMessage.edit("hello");
        botMessage.edit("what up");
        botMessage.edit("sup");
        botMessage.react(":clap:")
    }
});

1 个答案:

答案 0 :(得分:2)

Channel#send() 方法返回一个 promise,这意味着您必须等待操作完成才能定义它。这可以使用 .then()asyncawait 来完成。根据个人喜好,我经常使用第二个选项,尽管我已经为您列出了两个选项。

最终代码

client.on('message', async userMessage => {
  if (userMessage.content === 'hi') 
    {
        /*
          botMessage = await userMessage.channel.send('hi there')
        */
        userMessage.channel.send('hi there').then(botMessage => {
          await botMessage.edit("hello");
          await botMessage.edit("what up");
          botMessage.edit("sup");
          botMessage.react(":clap:")
        })
    }
});