Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
El controlador de comandos Discord.JS no funciona o no se actualiza

Estoy tratando de agregar un controlador de comandos a mi bot, sin embargo, solo funciona un comando y no importa cómo cambie el comando, no se actualiza. Aquí está mi código.

Esto está en la parte superior debajo de los paquetes y encima del código listo.

 fs.readdir('./commands/', (_err, files) => { files.forEach((file) => { if (!file.endsWith('.js')) return; bot.commands = new Discord.Collection() let command = require(`./commands/${file}`); // access all details though this variable bot.commands.set(command.name, command); console.log(`👌 Command loaded: ${command.name}`); }); });

Esto está en el comando de recursos.

 const Discord = require("discord.js") const fs = require("fs") module.exports = { name: 'resources', // any other details you might like, such as: description: 'Shows resources', execute(bot, message, args, prefix) { // the actual function let resourceText = fs.readFileSync('txtfiles/resources.txt', 'utf8') message.suppressEmbeds(true) message.channel.send(resourceText) } }

El comando de recursos funciona bien, pero el comando de envío no.

 const Discord = require("discord.js") const fs = require("fs") module.exports = { name: 'ship', // any other details you might like, such as: description: 'ships people', execute(bot, message, args, prefix) { // the actual function message.channel.send("please work") } }

Y esto está en la cosa "on messageCreate"

 if(cmd===`${prefix}resources`){bot.commands.get('resources').execute(bot, message, args, prefix);} if(cmd===`${prefix}ship`){bot.commands.get('ship').execute(bot, message, args, prefix);}

He intentado poner estos debajo de los paquetes.

 delete require.cache['./index.js']; delete require.cache[require.resolve('./index.js')]

Sin embargo, recibo este mensaje de error Unhandled promise rejection: TypeError: Cannot read properties of undefined (reading 'execute')

El comando de recursos funciona bien, incluso si eliminamos todo el código del archivo, y el comando de envío no funciona en absoluto.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Entonces, en lugar de poner un bloque if (cmd === para cada comando, intente usar uno dinámico que no requiera que actualice su sección messageCreate , cada vez que agregue un nuevo comando o elimine uno.

Sección MessageCreate:

 bot.on('messageCreate', async message => { if (message.author.bot) return if (!message.content.startsWith(config.prefix)) return const args = message.content.slice(config.prefix.length).trim().split(/ +/) const command = args.shift().toLowerCase() const cmd = bot.commands.get(command) if (!cmd) { console.log("Unknown command") return } else { cmd.run(bot, message, args) } })

Luego, tendrá que actualizar su comando existente que funciona para que coincida con este estilo, pero simplemente haga otros nuevos como este:

 module.exports = { name: 'Command Name', description: 'Command description', run: async (bot, message, args) => { // the actual function } }

Entonces el comando de tu ships se vería así

 module.exports = { name: 'ships', description: 'ships people', run: async (bot, message, args) => { message.channel.send({ content: 'Please work' }) } }

Cambiaría tu colección de comandos a esto

 bot.commands = new Discord.Collection() const commandList = [] const commands = fs.readdirSync('./commands/').filter(file => file.endsWith('.js')) for (const file of commands) { const command = require(`./commands/${file}`) commandList.push(`${file.split('.'[0])}`) bot.commands.set(command.name, command) } console.log(`👌 Commands loaded: ${commandList}`)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!