我想做到这一点,所以每次我的机器人出现错误时,它都会在通道中发送错误,但它什么都不做
bot.on('error', function (err) {
bot.guilds.get("609118791854456860").channels.get("609118791854456865").send(err)
})
答案 0 :(得分:2)
我不认为客户端会发出一个称为“错误”的事件。此处的代码应捕获所有未捕获的错误,并将其发送到您选择的频道中:
process.on("uncaughtException", e => {
console.error(e);
Client.channels.get("YOUR CHANNEL ID").send(e.stack.slice(0, 2000); //ensure the stack trace is not too long, messages are limited to 2000 characters
process.exit();
});
在此代码段中,我将我的new Discord.Client()
实例命名为Client
,似乎您已经将自己的命名为bot
,因此可以交换两个名称。
答案 1 :(得分:0)
根据文档,Error Event被称为
whenever the client's WebSocket encounters a connection error.
,我相信关键是连接错误。因此,如果调用此事件,则说明您不再连接或连接出现问题。因此,如果无法连接,则无法发送任何消息。
一种解决方法是Cloud的答案,并使用
process.on("uncaughtException", e => {})
但以防万一错误是致命的,并且僵尸程序无法连接。您应该将错误保存到.txt文件中,这样,只要漫游器成功重新连接,就可以将该文件中的所有内容发送到所需的频道。然后,如果机器人成功发送了邮件,请让它删除该文件。