Estoy usando las últimas versiones de node.js y discord.js y estoy codificando en VSC. Mi bot comenzó a responder a todos los prefijos y no sé por qué. El código que tengo actualmente:
const Discord = require('discord.js'); const client = new Discord.Client(); const fs = require('fs'); 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) } const PREFIX = '$'; client.on('ready', () => { console.log('updated'); }) client.on('message', message => { const args = message.content.substring(PREFIX.length).split(" "); switch (args[0]) { case 'ping': message.channel.send('pong!'); break; } }); client.login(token);Sin embargo, con este código en mente, el bot aún responde a cualquier prefijo. En la imagen a continuación, envié el comando ping con varias letras y símbolos aleatorios al mismo tiempo. El bot respondió pong a todos ellos.
No estoy seguro de qué está mal, ya que todavía soy nuevo en discord.js, pero no puedo resolverlo.
Tal vez puedas verificar si es un comando antes.
client.on('message', message => { const isCommand = message.content.substring(0,PREFIX.length) === PREFIX if(isCommand){ const args = message.content.substring(PREFIX.length).split(" "); switch (args[0]) { case 'ping': message.channel.send('pong!'); break; } } });