重新加载命令discord.js

时间:2018-06-05 12:44:52

标签: javascript reload discord.js

我正在使用discord.js制作一个discord bot,但我的reset命令无效。

       //!reload
       if(command === `${botsettings.prefix}reload`) {
            console.clear();
               bot.destroy()
               bot.login(botsettings.token);
             message.channel.send("Reloaded");
         return;
        }

它没有任何错误;它重新启动并重新开启,但命令不会更新!

我尝试了很多不同的东西,但是它不起作用。

我只有一个文件用于所有命令。

4 个答案:

答案 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脚本并让后台守护程序满足您的需求。