Как мне разрешить боту Discord автоматически назначать роль(discord.js )

#discord.js

#discord.js

Вопрос:

Поэтому я хочу, чтобы мой бот мгновенно добавлял роль человеку, который присоединяется к моему discord. Я также подумал, что хотел бы добавить сообщение о присоединении, потому что почему бы и нет. Поэтому я попытался заставить его работать, но, похоже, я что-то упустил. Что я делаю не так?

Это то, что я пробовал:

 const bot = new Discord.Client();
const client = new Discord.Client();
const token = 'REDACTED';

bot.on('ready', () =>{
    console.log('Online!')
});


client.on('roleMemberAdd', roleMember =>{
    let welcomeRole = GuildMember.guild.roles.cache.find(role => role.name === 'User');

    roleMember.roles.add(welcomeRole);
    roleMember.guild.channels.cache.get('781094913285685274').permissionsLocked(`Welcome <@${guildMember.user.id}>`)
});


bot.login(token);```
 

Ответ №1:

roleMemberAdd это не клиентское событие, на самом деле это даже не то, что вы ищете. guildMemberAdd срабатывает всякий раз, когда новый участник присоединяется к гильдии, и почему у вас два клиента?, вы не входите в client инстанс, поэтому он все равно не сработает, а для отправки сообщения на канал вам нужно использовать метод .send() .

 const bot = new Discord.Client();
const token = 'REDACTED';

bot.on('ready', () =>{
console.log('Online!')
});


bot.on('guildMemberAdd', guildMember =>{
   let welcomeRole = guildMember.guild.roles.cache.find(role => role.name === 'User');
   guildMember.roles.add(welcomeRole); 
   guildMember.guild.channels.resolve('781094913285685274').send(`Welcome ,@${guildMember.user.id}>`)
})


bot.login(token);