Quiero que mi comando incluya un espacio, por ejemplo
$ sudo faq mod (tenga en cuenta el espacio)
Pero eso no parece funcionar, y por lo general tengo que hacer
faq_mod en su lugar.
Este es mi código, pero los espacios no funcionan.
const { Client, Intents } = require('discord.js'); const Discord = require('discord.js'); const mongoose = require('mongoose') require('dotenv').config(); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); const prefix = '$ sudo '; 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); } client.once('ready', async () => { console.log(`Logged in as ${client.user.tag}!`); client.user.setActivity('$ sudo help | heckbot.ml'); await mongoose.connect(process.env.MONGO_URI, { keepAlive: true, }) }) 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); } else if (command === 'info') { client.commands.get('info').execute(message, args); } else if (command === 'website') { client.commands.get('website').execute(message, args);; } else if (command === 'help') { client.commands.get('help').execute(message, args); } else if (command === 'youtube') { client.commands.get('youtube').execute(message, args); } else if (command === 'invite') { client.commands.get('invite').execute(message, args); } else if (command === 'kick') { client.commands.get('kick').execute(message, args); } else if (command === 'ban') { client.commands.get('ban').execute(message, args); } else if (command === 'clear') { client.commands.get('clear').execute(message, args); } else if (command === 'faq mod') { client.commands.get('faq_mod').execute(message, args, Discord); } }); client.login(process.env.TOKEN)por favor, ayúdame
No puede incluir espacios cuando busca comandos porque está "dividiendo" la cadena por espacios cuando define argumentos.
La línea
const args = message.content.slice(prefix.length).split(/ +/)Eliminará el prefijo y dividirá la cadena resultante en espacios. (por ejemplo: "buenos días" se convierte en ["buenos", "días"]). Para verificar dos argumentos consecutivos, puede hacer
if(command == "faq" && args[0] == "mod")