我要求用户提供消息 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
}
答案 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"));