diff --git a/commands/info/help.js b/commands/info/help.js index 4b46159..1e1d549 100644 --- a/commands/info/help.js +++ b/commands/info/help.js @@ -6,7 +6,7 @@ const getSubdirFiles = require('../../util/getSubdirFiles'); module.exports = { name: 'help', description: 'List all available commands.', - moreHelp: ["Examples:","`help` will return help with a small description for each command", + moreHelp: ["Examples:","`help [optional_page]` will return help with a small description for each command", "`help ` will return help with a more descriptive description", "The descriptive description isn't available on all commands", "`help netmodules` to display help for netmodules" @@ -15,15 +15,29 @@ module.exports = { let commands = "" let commandFiles = getSubdirFiles('commands/') let x = false; - let fieldName = "General"; + let fieldName = `Page [[page]]/${Math.round(client.commands.size / 10)}`; + let iteration = 0; + let num_in_args = false; + let added_commands = 0; + let page = -1; if (args[0] == "netmodules") { commandFiles = fs.readdirSync('../../netload').filter(file => file.endsWith('.js')); if (commandFiles.length == 0) { message.channel.send("There are no netmodules currently loaded.") x = true; } - + + }else if(!isNaN(parseInt(args[0])) && parseInt(args[0])){ + num_in_args = true; + iteration = ( parseInt(args[0]) - 1) * 10; + page = Math.round(parseInt(args[0])) } + if(page === -1){ + page = 1; + } + fieldName = fieldName.replace("[[page]]", page); + const max_commands = iteration + 10; + if (x) return; const embed = new Discord.MessageEmbed() @@ -31,17 +45,26 @@ module.exports = { .setTitle("Commands") .setTimestamp() .setAuthor(client.user.username, client.user.avatarURL({ dynamic: true, size: 4096 })) - + let start = 0; for (const file of commandFiles) { + if(iteration >= max_commands) break; const command = require(`../../${file}`); + if(command.disabled) continue; if (args[0] == "admin") { if (command.admin) commands = commands + `${prefix}${command.name} | ${command.description}\n` - }else if(!args[0]){ - if (!command.admin) - commands = commands + `${prefix}${command.name} | ${command.description}\n` + }else if(!args[0] || num_in_args){ + if (!command.admin){ + if(start < iteration){ + }else{ + added_commands++ + commands = commands + `${prefix}${command.name} | ${command.description}\n`; + iteration++ + } + start++; + } }else if(args[0] === command.name){ commands = commands + `${prefix}${command.name}\n` embed.setTitle(command.name.charAt(0).toUpperCase() + command.name.slice(1)) @@ -65,6 +88,10 @@ module.exports = { embed.addFields( { name: fieldName, value: commands }, ) + if(embed.fields[0].value.length > 1023){ + message.channel.send(`There are more than 1023 characters`) + }else { message.channel.send({embeds :[embed]}); + } }, }; \ No newline at end of file