Estoy tratando de cambiar mi controlador de comandos para que funcione con comandos de barra inclinada, pero recibo un error de cuerpo de formulario no válido cuando intento encender el bot. No quería tener que cambiar de controlador, ya que eso es lo que uso en todos mis bots, pero tampoco puedo corregir errores. estoy usando discord js v13
Este es mi controlador de comandos actual ( index.js ):
const pComandos = fs.readdirSync('Comandos'); client.commands = new Discord.Collection(); client.description = new Discord.Collection(); for (const folder of pComandos) { const file = fs.readdirSync('Comandos/' + folder); for (const comando of file) { let cmd = require(`./Comandos/${folder}/${comando}`); commandsArray = []; console.log(chalk.green(`[ C ] O comando ` + chalk.bold(comando) + ` foi carregado!`)) client.commands.set(cmd.help.name, cmd) if (cmd.help.description) { cmd.desc = true cmd.help.description.forEach(desc => client.commands.set(desc, cmd)) } client.commands.set(cmd) commandsArray.push(cmd.help.name); if (cmd.init) cmd.init(client) client.on("ready", async() => { const server = await client.guilds.cache.get("892210305558532116") server.commands.set(commandsArray) }) } } Comandos/uteis/ping.js
const discord = require("discord.js"); exports.run = async (client, message, args) => { var latency = Date.now() - message.createdTimestamp message.reply(`<:emoji_3:892431734203891722> | My ping is: ${client.ws.ping}.\n🗺 | Timezone: ${process.env.TZ}`); }; exports.help = { name: "ping", description: ["p"] };Y el error:
DiscordAPIError: Invalid Form Body 0.name: This field is required at RequestHandler.execute (C:\Users\whash\OneDrive\Documentos\optiPC-BOT2\node_modules\discord.js\src\rest\RequestHandler.js:349:13) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async RequestHandler.push (C:\Users\whash\OneDrive\Documentos\optiPC-BOT2\node_modules\discord.js\src\rest\RequestHandler.js:50:14) at async GuildApplicationCommandManager.set (C:\Users\whash\OneDrive\Documentos\optiPC-BOT2\node_modules\discord.js\src\managers\ApplicationCommandManager.js:146:18) { method: 'put', path: '/applications/909489088904712223/guilds/892210305558532116/commands', code: 50035, httpStatus: 400, requestData: { json: [ { name: undefined, description: undefined, type: undefined, options: undefined, default_permission: undefined } ], files: [] } }Debe usar un objeto ApplicationCommandData .
En lugar de esto:
commandsArray.push(cmd.help.name)Hacer esto:
commandsArray.push({ name: cmd.help.name, description: cmd.help.description.join("") // or whatever description you want })