如何检查不和谐消息是否存在?

时间:2021-04-06 06:17:25

标签: discord.js

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

这里是代码部分

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
}

1 个答案:

答案 0 :(得分:0)

就您而言,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"));