Search code examples
discord.jsbotsmember

Welcome message in a specific channel when a user joins the server. (guildMemberAdd, discord.js)


How do I make it so that my bot sends a message in a specific channel when a user joins?

When I do this, it logs nothing: (Also here are my bot settings)

const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] });
const { MessageEmbed } = require('discord.js');

client.on("ready", () => {
    console.log("Cloud Shield has been activated.")
});

client.on("guildMemberAdd", async (member) => {
    console.log(member);
});

client.login(process.env.token)

Solution

  • This is because you are not requesting the GUILD_MEMBERS intent.

    const Discord = require("discord.js");
    const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_MEMBERS"] });
    const { MessageEmbed } = require('discord.js');
    
    client.on("ready", () => {
        console.log("Cloud Shield has been activated.")
    });
    
    client.on("guildMemberAdd", async (member) => {
        console.log(member);
    });
    
    client.login(process.env.token)