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



我的朋友为我写了这个惊人的代码,但它似乎不工作。它的意思是在命令上发送消息,然后一遍又一遍地编辑消息。但是当我运行代码时,我的终端显示

DiscordAPIError: Cannot edit a message by other user method: 'patch', path: '/channels/808300406073065483/messages/811398346853318668', code: 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:")
}
});

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:")
})
}
});

最新更新