@notanadm1n
хлебушек :3

Как я могу заставить бота выдать роль?

Я хочу заставить бота выдавать роль пользователю за определенные достижения (например за достижение какого либо уровня), подскажите пожалуйста структуру или хотя бы подскажите, как выдать роль пользователю по его id.

Я пробовал сделать, что-то на подобие этого, но оно не работает:
bot.on('guildMemberAdd', (guildMember) => {
  if (levels[user.id].level >= 1) {
  user.id.roles.add(guildMember.guild.roles.cache.find(role => role.name === 'уровень' + ' ' + '1'));
  }
});


discord.js - 12;
node.js 12.17.0
  • Вопрос задан
  • 107 просмотров
Решения вопроса 2
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор и ищу работу.
и бот мне нужен больше для практики

Перед практикой нужно освоить базовые синтаксические конструкции языка :)

user.id.roles.add(guildMember.guild.roles.cache.find(role => role.name === 'уровень' + ' ' + '1'))
Это каша какая-то, у тебя точно вообще запускается бот?

if (levels[user.id].level >= 1) {

Тоже что-то странное, какой user.id? Какие levels? По логике, тебе в callback передаётся объект мембера, который джоинится к каналу, мне кажется что у тебя неосмысленная просто солянка кода из гугла.

Посмотри примеры, может помогут: https://github.com/AnIdiotsGuide/discordjs-bot-guide
Ответ написан
@loonny
Если вы не достаточно хорошо поняли, значит вы не достаточно хорошо читали
(документацию читал, и понял не очень хорошо)


Что по вашему происходит в этой строчке кода?
user.id.roles.add(guildMember.guild.roles.cache.find(role => role.name === 'уровень' + ' ' + '1'));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы