Soy bastante nuevo en la programación en general, y elegí probar la creación de bots como uno de mis primeros proyectos. Sin embargo, mi código parece estar usando mi código anterior y el código nuevo simultáneamente. Esto es lo que tenía para mi código anterior, en un solo archivo index.js .
const Discord = require(discord.js); const client = new Discord.Client(); require('dotenv').config(); client.on('ready', => { console.log(`Logged in`)}); client.on("message", msg => { if(msg.content === "ping") { msg.reply("pong") } }) client.login(process.env.BOT_TOKEN); Y eso es todo por mi antiguo código. Recientemente actualicé el código para organizar todo e incluir un controlador de comandos. Este es el nuevo código, en sus archivos index.js y ping.js respectivamente.
Para index.js :
const Discord = require('discord.js'); const fs = require('fs'); const client = new Discord.Client() require('dotenv').config(); const prefix = '<' client.commands = new Discord.Collection(); const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('js')) for(const file of commandFiles) { const command = require(`./commands/${file}`) client.commands.set(command.name, command); } client.on('ready', () => { console.log(`Logged in`) }); client.on('message', (message) => { if(!message.content.startsWith(prefix) || message.author.bot) return; const args = message.content.slice(prefix.length).split(/ +/); const command = args.shift().toLowerCase(); if(command === 'ping'){ client.commands.get('ping').execute(message, args); } client.login(process.env.BOT_TOKEN); Para ping.js :
module.exports = { name: 'ping', description: "ping command", execute(message, args){ message.reply("pong"); } }Y ese es todo el código. Ahora, el problema surge cuando escribo <ping en el chat de Discord. En lugar de responder con pong una vez, lo hace dos veces. Intenté todo lo que pude desde guardar y reiniciar Visual Studio Code, pero fue en vano. Ni siquiera sé si esto es un problema con mi código, ya que no hay ningún mensaje de error cuando esto sucede. Gracias a todos los que responden.