No entiendo por qué no envía el mensaje de bienvenida.
Aquí está el código de index.js
client.on('guildMemberAdd', (member) => { let chx = db.get(`welchannel_${member.guild.id}`); if (chx === null) { return; } client.channels.cache.get(chx).send(`Welcome to ${message.guild.name}`); });Aquí está el código de channel.js module.exports = {
name: "channel", description: "Help Command", category: "Help", execute(client, message, args, Discord) { const db = require("quick.db") let channel = message.mentions.channels.first() //mentioned channel if(!channel) { //if channel is not mentioned return message.channel.send("Please Mention the channel first") } db.set(`welchannel_${message.guild.id}`, channel.id) const embed = new Discord.MessageEmbed() .setColor('#b5b5b5') .setTitle(`Channel set: ${channel.name} `) message.channel.send({ embeds: [embed] }); } }EDITAR: descubrí el problema, no tenía un indicador de intención GUILD_MEMBERS y también agradezco a UltraX que también me ayudó
La mejor manera de asegurarse de obtener un objeto de canal dentro del evento es usar la propiedad del gremio del miembro emitido.
client.on("guildMemberAdd", (member) => { const { guild } = member; let chx = db.get(`welchannel_${member.guild.id}`); if(chx === null) {return} const channel = guild.channels.cache.get(chx); if (!channel) return; channel.send(`Welcome to ${message.guild.name}`) .catch(console.error); })Necesitará la intención del miembro del gremio habilitada como se indica en esta respuesta para que se emita el evento.