如何阻止机器人无缘无故且无控制台错误静默脱机



好的,所以基本上我做了一个运行良好的机器人,但我犯了一个巨大的错误,将所有内容都放在index.js中。所以我决定启动另一个机器人,并将所有内容与 index.js 分开。在我没有安装 discord.js-command 之前,我在这个机器人上使用了它。从那时起,我的机器人正确执行每个命令并完成工作,但一段时间后它离线,除了控制台中的(node:9072) DeprecationWarning: Collection#filterArray: use Collection#filter instead之外,没有报告任何内容。

我尝试添加自动重新连接,但没有成功。还是同样的问题。

同样在我没有更改机器人状态之前,我使用以下代码添加了它:

bot.on("ready" , () => {
bot.user.setStatus("dnd")
console.log('Ready!');

setInterval(() => {
bot.user.setStatus('dnd')
bot.user.setActivity(`with MEMBERS`, {type: 'PLAYING'}); 
}, 1);
});

bot.on('ready', () => {
bot.user.setStatus('dnd')
setInterval(() => {
bot.user.setActivity(`lawliet#0599`, {type: 'WATCHING'}); 
}, 2);
});

我认为这是问题所在,但我不确定这一事实。

我没有将机器人连接到任何托管平台。它只在我的计算机上,我希望它从我在控制台中node .到我在终端中使用 Ctrl+c 或完全关闭它的那一刻都能工作。 相反,它只是联机,我可以在脱机之前使用一些命令。 之后,我必须手动重新连接它。

如果有人知道如何解决此问题,请花点时间。谢谢。

您可能因为发送了太多请求而被 discord 服务器断开连接。

我没有对 API 进行过多的研究,但是您的两个setInterval语句每隔几毫秒(1 和 2(调用一次bot.user.setActivity。我不知道你想用它实现什么,但这可能不是想要的行为。

最新更新