Así que estoy atascado en la función de bienvenida de mi bot de discordia.
No envía ningún mensaje.
Aquí está el código para el archivo welcome.js:
module.exports = (client) => { client.on("guildMemberAdd", (member) => { const welcomechannel = '934868156399386676'; const ruleschannel = '934877916041457774'; const embed = new Discord.MessageEmbed() .setTitle(`New member has arrived!`) .setDescription(`Welcome to the server <@${member.id}>! Enjoy your stay and make sure to check our rules ${member.guild.channels.cache.get(ruleschannel).ToString()}! :slight_smile:`) .setColor('#0ed42a') .setTimestamp() client.channels.cache.getwelcomechannel.send(embed) })aquí está el código para el archivo index.js:
onst { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); const config = require("./config.json"); const welcome = require("./welcome.js"); client.once('ready', () => { console.log("Your bot is online!"); welcome(client); }); client.login(config.token);el problema está tanto en index.js como en welcome.js
en primer lugar, no incluye GUILD_MEMBERS como una intención en index.js.
Su segundo problema en welcome.js. getwelcomechannel no es una propiedad válida de ChannelManager , por lo que, como dijo @bedstorm, puede usar la función get() y pasar la identificación del canal. Su código en welcome.js debería verse así
module.exports = (client) => { client.on("guildMemberAdd", (member) => { const welcomechannel = '934868156399386676'; const ruleschannel = '934877916041457774'; const embed = new Discord.MessageEmbed() .setTitle(`New member has arrived!`) .setDescription(`Welcome to the server <@${member.id}>! Enjoy your stay and make sure to check our rules <#${ruleschannel}>! :slight_smile:`) .setColor('#0ed42a') .setTimestamp() client.channels.cache.get(welcomechannel).send(embed); }) } Luego solo agregue la intención GUILD_MEMBERS a su cliente
El problema está en esta línea:
client.channels.cache.getwelcomechannel.send(embed)
Hay 2 problemas, getwelcomechannel no es una función, e incluso si fuera una función, no la está llamando.
Para solucionar esto, puede usar el método .get() en la colección de canales.
client.channels.cache.get(welcomechannel).send(embed)