Javascript Discord, дать упомянутому пользователю роль

Я просто хотел спросить, как я добавляю команду, которая дает человеку роль. Так что вы можете ввести: «addRole @user#1234», и пользователь получит роль.

Как всегда с кодом. Пожалуйста, создайте минимальный воспроизводимый пример, объясните, что вы пытались и где у вас не получилось.

Jonas Wilms 15.03.2019 18:49

Можете ли вы опубликовать то, что вы пытались, и перечислить то, что вы пробовали из других руководств. Просто задав неопределенный вопрос здесь, вы не получите ответа.

JGallardo 15.03.2019 18:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
875
1

Ответы 1

Поскольку вы не привели никаких примеров кода, я собираюсь показать вам, как это сделать самостоятельно.

Во-первых, вам нужно получить две переменные: одну для роль, которую вы хотите передать, и одну для член, которую вы даете.
Вы можете получить роль по его идентификатору (также по имени, но используя Коллекция#найти)
Вы можете получить член от упоминания в сообщении, используя Сообщение#упоминания

let role = message.guild.roles.get('roleIdBetweenQuotes');
let member = message.mentions.members.first();
// A message can have more than one mention, which results in giving us a collection of members.
// So we have to use first() to get the first member in that collection.

После получения обеих переменных вам нужно будет добавить роль к член с помощью функции Член гильдии#addRole.

member.addRole(role)
  .then(memberAdded => { // Optional
    message.channel.send(`Added role ${role.name} to ${member.displayName}`);
  })
  .catch(error => {
    console.info(error);
  });

Добавляем роль к члену. Функция Член гильдии#addRole возвращает обещать, поэтому, чтобы отправить сообщение после нее, вам нужно дождаться, пока обещание будет разрешено, а затем отправить подтверждающее сообщение. Кроме того, вы можете зарегистрировать ошибку, если обещание будет отклонено.

мой код теперь выглядит так: let role = message.guild.roles.get('Stream 1'); let member = message.mentions.members.first(); if (msg.content === 'addRole') { member.addRole(role) .then(memberAdded => { // Optional message.channel.send(Добавлена ​​роль ${role.name} в ${member.displayName}); }) .catch(error => { console.info(error); }); }

Sir Cyborg 16.03.2019 20:22
roles.get() можно получить роли только по их идентификатору, если вы хотите получить их по имени, вы должны сделать это: message.guild.roles.find(r => r.name === 'Stream 1');
GamesProSeif 16.03.2019 22:15

Другие вопросы по теме