module.exports = (commands, prefix) => { if (!commands) throw new Error("No commands were provided to the Soft UI cmdHandler."); if (!prefix) prefix = "/"; const finalCategories = []; const categories = []; commands.map(cmd => { if (!categories.includes(cmd.category)) categories.push(cmd.category); }); for (const category of categories) { if (category.toLowerCase().includes("admin") || category.toLowerCase().includes("owner") || category.toLowerCase().includes("development") || category.toLowerCase().includes("iat")) continue; const commandsArr = []; commands .filter(cmd => cmd.category === category) .map(cmd => { const obj = { commandName: cmd.name, commandUsage: `${cmd.usage ? cmd.usage : `${prefix}${cmd.name}`}`, commandDescription: cmd.description, commandAlias: cmd.aliases?.join(", ") || "None", }; commandsArr.push(obj); }); const categoryObj = { categoryId: category, category: `${capitalizeFirstLetter(category)}`, subTitle: `${capitalizeFirstLetter(category)} commands`, list: commandsArr, }; finalCategories.push(categoryObj); } function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } return finalCategories; };