make an autorole for discord.js v12

核能气质少年 提交于 2021-01-28 07:32:55

问题


I wanna make my bot give automatically role when my friends join for first time to my server: I have tried this one my VPS node version: 12.19.0v:?

client.on('guildMemberAdd', member => {
console.log('User @' + member.user.tag + ' has joined the server!');
var role = member.guild.roles.cache.find(role => role.name == "Newbie")
let user = member.user
user.roles.add(role);
});

but nothing is working ! help me pls


回答1:


Discord is now enforcing privileged intents. The GUILD_MEMBERS intent is required to receive events such as guildMemberAdd and guildMemberUpdate.

To learn how intents work and how to use them, check out discord.js' detailed guide.

Also, as stated in the comments, you need to use message.member instead of message.user




回答2:


You need to know the difference between Members and Users. A user represents a Discord account, a member represents a user being in a server. So for example to get someone's tag, you need to do user.tag, member.tag wouldn't work. It's the same with nicknames, user.displayName woudln't work, because a user is an account, a member is a user in a server. You'd do member.displayName instead.

Anyway, where you put

let user = member.user
user.roles.add(role);

it should be replaced with

member.roles.add(role);

and that should hopefully solve your problem.



来源:https://stackoverflow.com/questions/64556167/make-an-autorole-for-discord-js-v12

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!