Discord.JS 命令处理程序子文件夹
Posted
技术标签:
【中文标题】Discord.JS 命令处理程序子文件夹【英文标题】:Discord.JS Command Handler Sub-Folders 【发布时间】:2021-12-13 05:10:36 【问题描述】:我目前有一个 Discord.JS 命令处理程序,可以加载命令文件夹中的所有命令。但是,由于所有命令,它现在变得有点混乱,因此我一直在尝试实现子文件夹。这将清理命令文件夹中的文件,将它们组织到文件夹组中。
我目前有此代码用于在同一文件夹中加载命令。
但我不知道如何进入命令目录中的每个文件夹并加载命令。 如果有人可以帮助我,将不胜感激。
const allCommands = fs.readdirSync('./commands');
for (const command of allCommands)
try
const loadedCommand = require(`./commands/$command`);
commands.set(loadedCommand.name, loadedCommand);
for(const alias of loadedCommand.aliases || [])
commands.set(alias, ...loadedCommand, alias: true );
logger.info(`Loaded command $loadedCommand.name ($command)`);
catch (error)
logger.error(`Failed to load command $command. **Please report the following error:**`);
logger.error(error);
【问题讨论】:
【参考方案1】:以路径为参数将所有内容移动到自己的函数中。 每次找到文件夹时,调用带有文件夹路径的函数。
(function readdir(path='./commands')
const allCommands = fs.readdirSync(path);
for (const command of allCommands)
if(fs.statSync(`$path/$command`).isDirectory())
readdir(`$path/$command`);
continue;
try
const loadedCommand = require(`$path/$command`);
commands.set(loadedCommand.name, loadedCommand);
for(const alias of loadedCommand.aliases || [])
commands.set(alias, ...loadedCommand, alias: true );
logger.info(`Loaded command $loadedCommand.name ($path/$command)`);
catch (error)
logger.error(`Failed to load command $path/$command. **Please report the following error:**`);
logger.error(error);
)();
【讨论】:
【参考方案2】:老实说,我不建议以这种方式导入。如果您将每个命令导入一个单独的 javascript 文件然后从那里导出每个命令,您可能会有更好的运气,它应该使您的控制器级代码更易于阅读
【讨论】:
蟒蛇?问题被标记为 javascript 和 discord.js 我不知道我怎么认为这是 python 但我的答案仍然适用于 JavaScript以上是关于Discord.JS 命令处理程序子文件夹的主要内容,如果未能解决你的问题,请参考以下文章