我正在使用discord.js制作一个discord bot,但我的reset命令无效。
//!reload
if(command === `${botsettings.prefix}reload`) {
console.clear();
bot.destroy()
bot.login(botsettings.token);
message.channel.send("Reloaded");
return;
}
它没有任何错误;它重新启动并重新开启,但命令不会更新!
我尝试了很多不同的东西,但是它不起作用。
我只有一个文件用于所有命令。
答案 0 :(得分:0)
所以我猜你有各种各样的文件(配置等)和一个中央bot.js文件,你通过使用像
这样的东西加载机器人node bot.js
在您的主机上,显然您的.js文件的一部分设置了类似这样的机器人:
const bot = new Discord.Client();
据我所知,你的
bot.destroy()
和
bot.login(botsettings.token);
只是刷新const' bot',但它没有做的是重新加载你的bot.js文件(使用更新的命令和代码)。
您需要做的是将其设置为在主机上运行批处理文件或其他东西,以终止整个进程bot.js,然后重新启动它。因为这将使用新的和更新的bot.js文件。
唯一的问题是我仍然在弄清楚如何从我的JS文件中运行一个批处理文件,因为安全性可以理解这个功能不是内置的(其他大多数使用JS的网站都有可能获得它运行格式C:\)
我想它会涉及在我的JS中使用WSH,如果我确实如此,我会在这里更新。
我希望这很清楚吗?如果您还有疑问,请与我联系:)
答案 1 :(得分:0)
如果使用nodemon系统和本地批处理文件,它将针对其中保存的每个更改自动重新加载文件,并输出新文件更改。如果您需要更多帮助,请在YouTube上观看TheSourceCode上的一些视频,然后使用nodemon在3-4集中观看他的视频。如果最终将其托管在皱着眉头的Heroku上,但是我愿意,它将为GitHub存储库中的每个更改自动重新加载,只需确保将您的令牌替换为process.env.token并确保将其设置在Heroku上,YouTube是您的朋友。
答案 2 :(得分:0)
在您提供的代码中,似乎只刷新const'bot'而不是重新加载bot.js文件。
我建议您使用批处理文件。
答案 3 :(得分:0)
client.destroy();
client.login();
那是不可能的,因为插座坏了。
相反,您可以制作Shell脚本并让后台守护程序满足您的需求。