【问题标题】:Discord.js: Fetch message from ALL channelsDiscord.js:从所有渠道获取消息
【发布时间】:2020-10-02 12:20:07
【问题描述】:

message.channel.messages.fetch 可以很好地从运行命令的通道中获取消息,但我需要能够从服务器中的任何通道中获取消息。作为参考,我正在创建一个通过消息 ID 引用消息的命令,但目前它只能引用来自运行该命令的同一通道的消息。

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    遍历每个通道并在其中获取消息。

    message.guild.channels.cache.forEach(channel => {
      channel.messages.fetch().then(messages => {
        messages.forEach(msg => console.log(msg.content));
      });
    });
    

    此示例从服务器中的每个通道获取尽可能多的消息并记录每个通道的内容。您可以使用 if 语句来检查消息内容是否是要查找的指定引号。

    MessageManager.fetch()

    【讨论】:

    • 他说他是通过MessageID获取的,所以不需要if语句来检查内容
    • 这默认只检查来自每个频道的前 100 条消息
    【解决方案2】:
    let found;
    
    message.guild.channels.cache.each(channel => {
       if(found) return;
       found = await channel.messages.fetch("ID_HERE").catch(() => undefined);
    });
    

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 2021-08-08
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2021-06-26
      相关资源
      最近更新 更多