javascript - DiscordJS Detecting when a User joins a guild - Stack Overflow

client.on('guildMemberAdd', guildMemberAdd => {console.log("Guild Member joined"

client.on('guildMemberAdd', guildMemberAdd => {
  console.log("Guild Member joined");
});

I know I have some noob error please help lmao, Just trying to simply detect when a user joins a guild/server and give them a certain role.

client.on('guildMemberAdd', guildMemberAdd => {
  console.log("Guild Member joined");
});

I know I have some noob error please help lmao, Just trying to simply detect when a user joins a guild/server and give them a certain role.

Share Improve this question asked Jun 5, 2018 at 17:08 SpectrumSpectrum 211 silver badge2 bronze badges 1
  • is this all your code or is there more? Just curious. – Matt Pengelly Commented Jun 5, 2018 at 17:19
Add a ment  | 

3 Answers 3

Reset to default 3

A couple ways of adding the roles. Either by id or by role. It's better to know the role ids as it will be faster, however you can look up the role by name as well.

client.on('guildMemberAdd', member => {
    // Set the member's roles by id
    member.setRoles([/* role id here */]);

    // Don't know the role id?
    const role = guild.roles.find(role => role.name === 'your role name');
    member.addRole(role);
});

I just testing this code and it already works. Just have someone join your channel and you'll see that message in your console.

From the docs on guildMemberAdd, you can see that the parameter returned in the function is actually a GuildMember (you put guildMemberAdd, probably because you didn't know what was passed into that callback).

From there, you can just use Guildmember.setRoles to give that member / user a specific role.

Try something like this:

// the parameter of the callback function is a `GuildMember` class, so name the variable
// something reasonable like 'guildMember', not 'guildMemberAdd'
client.on('guildMemberAdd', guildMember => {
    // Set the member's roles to a single role
    guildMember.setRoles(['<your role id>'])
        .then(console.log)
        .catch(console.error);
});

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745461619a4628732.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信