【问题标题】:How to check if a discord message exist?如何检查是否存在不和谐消息?
【发布时间】:2021-07-01 22:30:05
【问题描述】:

我要求用户提供消息 ID 以做出反应,如果消息 ID 错误,即使在尝试捕获时我的机器人也会崩溃。我想返回“此消息不存在”。

这里是代码部分

const filter = m => m.author.id === message.author.id;
message.reply("veuillez indiquer l'id du message");
    message.channel.awaitMessages(filter, {
      max: 1, 
      time: 600000,
      errors: ['time']
      }).then(async(collected) => { 
        msgid = collected.first().content;
        try{
          channelid.messages.fetch(msgid);
          isMsg = true;
        }catch{
          message.reply("Ce message n'existe pas");
        }
      }).catch(() => {
       message.reply("Vous avez mis trop de temps a répondre");
      })

我得到了这个错误

D:\Storage\Bureau\Projets\Dev\Bots\Discord\Bot\node_modules\discord.js\src\rest\RequestHandler.js:154
      throw new DiscordAPIError(request.path, data, request.method, res.status);
            ^

DiscordAPIError: Unknown Message
    at RequestHandler.execute (D:\Storage\Bureau\Projets\Dev\Bots\Discord\Bot\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
    at processTicksAndRejections (node:internal/process/task_queues:93:5)
    at async RequestHandler.push (D:\Storage\Bureau\Projets\Dev\Bots\Discord\Bot\node_modules\discord.js\src\rest\RequestHandler.js:39:14)
    at async MessageManager._fetchId (D:\Storage\Bureau\Projets\Dev\Bots\Discord\Bot\node_modules\discord.js\src\managers\MessageManager.js:135:18) {
  method: 'get',
  path: '/channels/785415753595486208/messages/8288745866573906',
  code: 10008,
  httpStatus: 404
}

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    在您的情况下,collected.first() 已经返回 Message

    如果你想获取消息,你首先需要一个有效的 id。所以你需要改用channelid.messages.fetch(collected.first().id);

    然后,您可以使用catch() 方法检查消息是否不存在。

    message.channel.messages.fetch(collected.first().id).then(message => console.log(message.content))
      .catch(error => message.channel.send("I can't find a message with this ID"));
    

    【讨论】:

    • 谢谢,它正在与channelid.messages.fetch(collected.first().content).then(message => console.log(message.content)).catch(error => message.channel.send("I can't find a message with this ID"));合作
    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2021-06-11
    • 2021-05-08
    • 2014-06-18
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多