繁体   English   中英

动态帮助命令 discord.js

[英]Dynamic help command discord.js

我目前正在制作一个不和谐的机器人,但我有一个问题。 我对 discord.js 和 node.js 还是很陌生。 这是我的代码:

module.exports.run = async (bot, message, args) => {
 function getMenu() {
  var hpmenu = {};
  return new Promise(function(resolve, reject) {
   dashboard.readServerBoundValue(
    `${message.guild.id}`,
    'PREFIX',
    async function(output) {
     if (output) {
      var prefixxx = output;
     } else {
      var prefixxx = config.botPrefix;
     }
     //=====================================================================================================
     fs.readdir('./src/commands/', (err2, files2) => {
      files2.forEach((f2, i2) => {
       hpmenu[f2] = new discord.MessageEmbed();
       hpmenu[f2].setTitle(`${f2}`);
       console.log('Added catagory ' + f2);
       //=========================================================================================
       fs.readdir(`./src/commands/${f2}`, (err, files) => {
        files.forEach((f, i) => {
         const cmd = f.replace('.js', '');
         hpmenu[f2].addField(cmd, 'test');
         console.log('Added command ' + cmd);
         //=====================================================================================================
        });
        resolve(hpmenu);
       });
      });
     });
    }
   );
  });
 }

 async function main() {
  var output = await getMenu();
  message.channel.send(output['developer']);
 }
 main();
};

此代码没有任何错误,但这是我遇到的问题:

问题

问题是它在完成getMenu函数之前运行了 main 函数。 如何解决这个问题? 我已经阅读了多篇关于这个的帖子。 感谢大家阅读!

经过大量编码后,我达到了目标; 使用分页制作动态帮助菜单。 这是代码:

https://pastebin.com/QGVfutti

它的功能很好。 您唯一需要做的就是在 index.js 所在的机器人的根目录中创建一个名为 config.json 的文件,并添加一个名为“embedColor”的键,将您的命令放入

./src/commands/CATAGORY/COMMAND.js

这是结果:

在此处输入图片说明

抱歉英语不好。 请注意,如果您使用它,您仍然必须自己实现前缀和描述,这取决于每个命令处理程序和数据库引擎。 您可以在 pastebin 的第 19 行更改描述代码和命令名称。 如果你想要一个图像,你可以在第 13 行之后添加一个新行:

hmu[i].setImage("IMAGE");

它只是一个不和谐的嵌入,它可以正常工作,添加缩略图,作者,并根据您的喜好进行更改。 如果你正在使用它,你不必相信我

抱歉我的英语不好,感谢 Lioness100 编辑文本。 英语不是我的第一语言 :) 祝大家有个美好的一天,再见!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM