0

So When A New Member Joins The Guild [the discord server]. The Bot Should Send A Message In a certain Channel (ID = 766716351007686696), Send Them A Direct Message, And Then Add A Role (Human Bean). This Is The code I Have Now and it isn't working, error at the bottom

client.on('guildMemberAdd', member =>{
    const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")
    const channelwelcomeEmbed = new Discord.MessageEmbed()
        .setColor('#ffd6d6')
        .setTitle('Welcome!')
        .setDescription(`${member} just joined the discord! Make sure to read #rules!`)
        .setTimestamp();
    channel.send(channelwelcomeEmbed);
    const dmwelcomeEmbed = new Discord.MessageEmbed()
        .setColor('#ffd6d6')
        .setTitle('Welcome!')
        .setDescription("For Help Using @Pro Bot#7903, Send The Command `!help` In Server")
        .setTimestamp();
    member.send(dmwelcomeEmbed);
    let role6 = message.guild.roles.cache.find(role => role.name == "Human Bean"); //BASIC ROLE, EVERYONE GETS IT
    if(!role6) return message.reply("Couldn't find that Role .")
    member.roles.add(role6);
});

Error Message is;

    const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")
                    ^

ReferenceError: message is not defined
Liam Skinner
  • 26
  • 1
  • 13

2 Answers2

4

Your code looks fine, the problem is that the event isn't triggered. Thats because discord turned off "privileged intents" by default.

Some intents are defined as "Privileged" due to the sensitive nature of the data. Those intents are:

  • GUILD_PRESENCES
  • GUILD_MEMBERS

One effect of that is what you are experiencing, the not working guildMemberAdd event.

The good news is that you can fix this with one easy step. Simply enable Privileged Gateway Intents in the discord developer portal and it should work just fine.

enter image description here

If you want to read more about it

Worthy Alpaca
  • 1,235
  • 1
  • 6
  • 13
  • Okay, Now The Event Is Triggered. But An error Comes Up, See Bottom Of The Post For Details – Liam Skinner Nov 08 '20 at 15:29
  • 1
    yes, you don't access to message in this event. Change `message` to `member`. And you also can't reply in the event. If `role6` doesn't exist, just return. – Worthy Alpaca Nov 08 '20 at 15:43
1

Fix: const channel = member.guild.channels.cache.get('CHANNEL ID')

You need to use member instead of message. Because guildMemberAdd function using member.

client.on('guildMemberAdd', member => {

Mithra
  • 11
  • 1