我在我的机器人上做了一个建议模块,我有其他的一切,但我正在努力获取机器人发送的消息,并使用在不同通道中发送的命令编辑它。
我试着做await message.guild.channels.cache.get("channel-id-here").messages.fetch("the-actual-messages-id-here").edit({ content: 'Test' })
,但它没有工作。
你的代码,虽然理论上,应该可以工作,但很可能因为未解决的承诺而无法工作。
await message.guild.channels.cache.get("channel-id-here").messages.fetch("the-actual-messages-id-here").edit({ content: 'Test' })
开始的await
试图解决edit
方法的承诺,其中<MessagesManager>#fetch
方法有另一个承诺要解决。换句话说,你忽略了从fetch返回的承诺,它不会解析任何消息。考虑以下更改:
const messages = await message.guild.channels.cache.get("channel-id-here").messages;
await messages.fetch("the-actual-messages-id-here").edit({ content: 'Test' });
或者如果你真的需要一行代码(我不建议这样做,因为它会影响可读性),你可以使用:
await (await message.guild.channels.cache.get("channel-id-here").messages.fetch("the-actual-messages-id-here")).edit({ content: 'Test'