【问题标题】:Discord.js bots: organizing commandsDiscord.js 机器人:组织命令
【发布时间】:2021-04-18 13:14:01
【问题描述】:

嗨,我正在使用 discord.js 制作我的第一个机器人,我注意到在添加了一些命令后,我的命令文件夹很容易被淹没我正在使用 Discord.js 指南https://discordjs.guide/command-handling/ 中的一个简单命令处理程序,但是我需要文件槽只是为了制作简单的命令 ii 想问已经有这方面经验的人如何组织我的命令

【问题讨论】:

    标签: node.js discord.js


    【解决方案1】:

    如果您想更好地组织命令文件,可以将命令与类别分开,然后在命令文件夹中为每个类别创建一个文件夹。

    例如:

    ?commands
     ┣ ?moderation
     ┗ ?fun
    

    之后,您可以遍历每个新文件夹并在其中加载命令文件,方法与使用命令处理程序相同

    // First get the category directories
    const isDirectory = source => fs.lstatSync(source).isDirectory();
    const getDirectories = source => fs.readdirSync(source).map(name => join(source, name)).filter(isDirectory);
    
    // Then load the commands
    getDirectories(__dirname + '/commands').forEach(category => {
      const commandFiles = fs.readdirSync(category).filter(file => file.endsWith('.js'));
    
      for(const file of commandFiles) {
        const command = require(`./${category}/${file}`);
        client.commands.set(command.name, command);
      }
    });
    

    【讨论】:

    • 感谢您的回答!但是在机器人的主文件中添加该代码并添加类别和内容后,我收到此错误const getDirectories = source => fs.readdirSync(source).map(name => join(source, name)).filter(isDirectory); ^ ReferenceError: join is not defined
    • pastebin.com/d9z0t2Sa主文件完整代码
    • 哦,我的错,你应该有 const path = require('path'); 并将 join(source, name) 更改为 path.join(source, name)
    • 现在它给了我错误Error: Cannot find module './C:\Users\Aoshey\Desktop\Taco Bot\commands\economy/balance.js' 即使“balance.js”已经存在imgur.com/a/3WTKOXB
    猜你喜欢
    • 2020-08-21
    • 2021-06-02
    • 2021-06-02
    • 2020-11-09
    • 2021-11-21
    • 2021-08-09
    • 2021-02-07
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多