按ID获取消息:Discord.js

17

我正在为一个Discord机器人制作举报系统,希望玩家可以通过ID举报特定的消息,以便管理员决定其是否具有攻击性。我很难找到一种从给定ID获取消息文本的方法。是否有可能做到这一点?

3个回答

52

fetchMessage 在 Discord.js 版本 12 中已经不存在,但是你可以使用 TextChannel 类的 messages 属性下的 MessageManager 类的 fetch 方法。

msg.channel.messages.fetch("701574160211771462")
  .then(message => console.log(message.content))
  .catch(console.error);

11

你可以通过ID检索消息

msg.channel.fetchMessage();

文档在这里。如果您想通过id从任何频道检索消息,可以遍历所有频道并捕获任何错误。


有没有办法获取该消息的作者?还有一种方法可以查看消息是否不存在/存在吗? - NintendoZaedus
3
fetchMessage 函数返回一个消息对象,因此您可以直接调用其 author 属性。要检查消息是否存在,只需捕获可能的错误,如果发生错误,则会执行相应的代码。文档在这里 - Raymond Zhang

0

来自官方文档

channel.messages.fetch('{messageIdGoesHere}')
  .then(message => console.log(message.content))
  .catch(console.error);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接