Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

254
Visualizações
Problema con el filtro de palabras usando discord js, el código no da salida

Así que este es el código actual que tengo para el filtro de palabras. Tengo una matriz de palabras censuradas en un archivo JSON. Cada vez que trato de ejecutar el bot y escribo una palabrota, no obtengo respuesta ni mensajes de error en Powershell. Soy bastante principiante, así que disculpe cualquier error y disculpe el choque de trenes de un código que es. Solo tratando de aprender.

 const { Client, Collection, Intents } = require('discord.js'); const { wordFilter} = require("./filter.json"); const {clientId, guildId, token, prefix} = require('./config.json'); const Discord = require('discord.js') const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS, Intents.FLAGS.GUILD_BANS, Intents.FLAGS.GUILD_MESSAGE_REACTIONS, Intents.FLAGS.GUILD_MESSAGES ] }); const fs = require('fs'); const giveMeaJoke = require('discord-jokes'); 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', () => { console.log('Bot is now available!'); }); client.on('messageCreate', message => { const command = message.content; //Profanity Filter if(message.author.id = "909209531811242044"){ return } let foundinText = true; for(const word in wordFilter){ if(message.content.toLowerCase().includes(wordFilter[word].toLowerCase())) foundinText = true; } if(foundinText){ message.delete(); message.reply('Be polite, no swearing please'); } // End of profanity Filter if(message.content == 'Hello')message.reply("Hello!"); if(command == prefix + 'Ping'){ client.commands.get('Ping').execute(message, command); } if(!message.content.startsWith(prefix)) return; if(message.content.toLowerCase()== prefix + 'hello'){ message.reply('Hello!'); }if(command == prefix + 'Website'){ client.commands.get('Website').execute(message, command); } if(message.content.toLowerCase()== prefix + 'joke'){ giveMeaJoke.getRandomDadJoke(function(joke){ message.reply(joke); }); } }); client.login(token);
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Intente usar Array#some() para reducir la cantidad de pasos en su procedimiento. Asegúrese de que wordFilter sea una matriz de cadenas.

 const hasProfanity = wordFilter .some(word => message.content.toLowerCase().includes(word.toLowerCase())); if (hasProfanity && message.author.id !== '909209531811242044') { message.delete(); message.reply('Be polite, no swearing please'); }

Esta es una de las muchas formas de comprobar las palabras, pero tiene sus problemas. Por ejemplo, si la palabra "ass" es una palabra clave, la palabra "asure" sería checkout y hasProfanity sería igual a true .

Un mejor método sería primero dividir el contenido del message.content por un espacio en una matriz y verificar cada palabra individual.

 const words = message.content.split(/ +/); const hasProfanity = words .some(word => wordFilter.includes(word.toLowerCase()); // Remaining Code

Es mejor si las palabras en wordFilter están en minúsculas, de esta manera no tienes que llamar a .toLowerCase() en cada iteración.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda