问题
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