Quería escribir un comando para verificar si un usuario específico es parte de una lista de prohibición en mi servidor. Desafortunadamente, siempre hace las cosas en el ciclo else. Espero que puedas ayudar.
const Discord = require('discord.js'); const ms = require('ms'); const { Permissions } = require("discord.js"); const { MessageEmbed } = require("discord.js"); //const config = require("./config.json"); module.exports = { name: 'check', category: "Moderation", description: 'Checkt ob ein User gebannt ist', run: async(client,message,args,guild) => { let arg = message.content.split(" ") let banlist = client.channels.cache.get('CHANNELID') let check = arg[1] message.delete() if (!arg[1]) { return message.channel.send({content :"Please specify a user to check!"}).then((message) => setTimeout(() => message.delete(), 10000)).catch(err => { console.error(err); }); } banlist.messages.fetch({limit : 30}).then(messages => { let positive = messages.filter(msgs => msgs.content.includes(check)) if(!positive) { message.channel.send({content :"This user is not banned!"}).then((message) => setTimeout(() => message.delete(), 10000)).catch(err => { console.error(err); }); } else { message.channel.send({content :`This user is banned.`}).then((message) => setTimeout(() => message.delete(), 10000)).catch(err => { console.error(err); }); } }) } };Sé que hay métodos para verificar la lista de usuarios prohibidos de los servidores, pero no todos en la lista del canal están prohibidos en Discord. Así que no puedo hacer eso. Para resumir eso. Traté de hacer un comando, que verifica un canal en busca de una palabra clave específica y devuelve declaraciones diferentes, ya sea que haya encontrado esa palabra clave o no.
filter() devuelve una matriz vacía si no encuentra nada. Puedes usar:
if(positive.length === 0) { // ... } else { // ... }Como está buscando un valor booleano, use Array.some()
const positive = messages.some(msg => msg.content.includes(check)); .filter() está destinado a devolver una nueva matriz