Как сделать чтобы бот выдавал роли в дискорде
Перейти к содержимому

Как сделать чтобы бот выдавал роли в дискорде

  • автор:

Как сделать, чтобы бот в Дискорде автоматически выдавал роль только что зашедшему участнику?

Нужно сделать, чтобы дискорд автоматически выдавал роль человеку который заходит на сервер? Использую Discord.js 13
и последнюю версию node js.

  • Вопрос задан более года назад
  • 1228 просмотров

Комментировать
Решения вопроса 1
Habr @RozmarinUS
YII2, PHP, React, TypeScript, Python hater
На странице настроек бота > Bot > Включаешь Server Members Intents
Инициализация бота:

const client = new Client(< intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS] >);

Событие на вход:

client.on("guildMemberAdd", async (member) => < await member.roles.add("ID роли") >)

Ответ написан более года назад
lose_my_mind @lose_my_mind Автор вопроса

Я все сделал, но оно все равно не работает.
const Discord = require(‘discord.js’),
config = require(‘./config.json’);
config.cfg.intents = new Discord.Intents(config.cfg.intents);

const bot = new Discord.Client(config.cfg);
bot.login(config.token);

bot.on(«guildMemberAdd», async (member) => await member.roles.add(«967278232883847209»)
>)

Habr @RozmarinUS
Такая реализация работает.

const < Client, Intents >= require("discord.js"); const config = require('./config.json') const client = new Client(< intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS] >); client.login(config.token); client.on("guildMemberAdd", async (member) => < await member.roles.add("967497971686080534") >)

Выдача роли на сервере по реакциям в Discord

Выдача роли на сервере по реакциям в Discord

Самый распространенный метод выдачи ролей на сервере в Discord – ручное редактирование каждой из них и дальнейшее присвоение каждому юзеру. Иногда используются специальные боты, которые автоматически выдают нужную роль участнику после достижения определенного уровня. Есть еще и третий вариант – получение роли по реакции-эмодзи. Это очень удобно в тех случаях, когда юзер сам должен выбрать подходящую для себя роль или пройти верификацию, чтобы получить доступ к нужным каналам. В этой статье я разберу пример такой настройки с помощью бота Carl.gg – популярного инструмента расширенного администрирования проектов.

Шаг 1: Подготовка списка ролей

В первую очередь, если этот этап еще не выполнен, нужно заняться подготовкой списка ролей, которые далее будут участвовать при распределении по реакциям. Если вы уже знакомы с этим процессом, пропустите данный шаг и сразу переходите ко взаимодействию с ботом. Всем остальным рекомендую ознакомиться со инструкцией далее:

  1. Перейдите на свой сервер, нажмите по его названию сверху слева и из появившегося меню выберите пункт «‎Настройки сервера». Переход к добавлению ролей при подготовке бота Carl.gg в Discord
  2. На панели слева вас интересует раздел «‎Роли», в котором нужно щелкнуть по кнопке «‎Создание роли», чтобы перейти к форме администрирования. Кнопка добавления ролей для подготовки бота Carl.gg в Discord
  3. В‎‎‎ первую очередь укажите название для роли, задайте цвет ников и добавьте значок, если у вашего сервера есть буст нужного уровня. Настройка роли при подготовке бота Carl.gg в Discord
  4. После этого перейдите на вкладку «‎Права доступа» и внимательно изучите список всех привилегий для данной роли. Активируйте и отключите нужное, сделайте доступными конкретные скрытые каналы, чтобы после получения этой роли пользователь сразу мог перейти к общению по нужной ему теме на вашем сервере. Выбор прав для роли при подготовке бота Carl.gg в Discord
  5. Повторите те же самые действия для всех ролей, которые вы планируете создать, меняя привилегии каждой на свое усмотрение. Перед выходом из данного меню не забудьте сохранить изменения.‎ Ознакомление со списком ролей при подготовке бота Carl.gg в Discord

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Шаг 2: Добавление Carl.gg на сервер

Далее предстоит выполнить один простой шаг, заключающийся в авторизации на сайте бота через свою учетную запись и в выборе сервера для подключения. Это нужно для того, чтобы далее через этот же сайт осуществлять удобное управление сервером, включая и создание сообщений с реакциями для получения нужных ролей.

  1. Откройте официальный сайт Carl.gg и нажмите по кнопке «‎Log in with Discord». Переход к авторизации бота Carl.gg в Discord
  2. После загрузки Дискорда в вашем браузере подтвердите авторизацию профиля на сайте, чтобы предоставить основные сведения о своем аккаунте (пароли и личные данные при этом не открываются). Кнопка авторизации бота Carl.gg в Discord
  3. После возвращения на сайт бота он обнаружит, создателями каких серверов вы являетесь, если их несколько, позволит выбрать нужный для авторизации. Выбор сервера для добавления бота Carl.gg в Discord
  4. Далее снова произойдет переход к Дискорду, где нужно убедиться в правильности выбранного сервера и нажать «‎Продолжить», чтобы перейти к подтверждению авторизации бота. Подтверждение выбора сервера для добавления бота Carl.gg в Discord
  5. В следующей форме вы будете уведомлены о том, какие разрешения на сервере получает бот. Нажмите «‎Авторизовать», чтобы подтвердить это и добавить его в своей проект.‎‎‎ Подтверждение авторизации бота Carl.gg в Discord на сервере
  6. Теперь Carl.gg есть на вашем сервере и вы можете управлять им в соответствии с выданными разрешениями. На сайте нажмите «‎Get started», чтобы ознакомиться с основными настройками и возможностями бота. Начало работы с ботом Carl.gg в Discord на официальном сайте
  7. В одном из приветственных шагов уже будет предложено создать сообщение с ролями по реакциям. Основное внимание здесь сосредоточено на применении шаблонов из существующего списка и отправке тестового сообщения в выбранный канал.‎ Создание сообщения получения роли по реакции из примеров Carl.gg в Discord
  8. Если хотите попробовать выполнить это действие, укажите роль для отправки сообщения и нажмите «‎Create Reaction Role». Однако в этой форме не очень удобно создавать подобное сообщение, поэтому для наглядности лучше ознакомиться со следующим этапом.‎ Подтверждение создания сообщения с получением роли по реакции через пример Carl.gg в Discord

Шаг 3: Создание сообщения с выдачей роли по реакции

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

  1. После перехода к дашборду на сайте разверните меню и выберите инструмент «‎Reaction roles». Переход к разделу создания сообщения ролей по реакции через Carl.gg в Discord
  2. В нем вас интересует зеленая кнопка «‎Create new reaction role». Создание нового сообщения получения роли по реакции в Carl.gg в Discord
  3. В первую очередь разверните список каналов и выберите тот, куда будет отправлено сообщение. Обычно таковым является приветственный или специально отведенный под выдачу ролей. Выбор канала для сообщения через Carl.gg в Discord
  4. Введите сообщение, которое будет сопровождаться реакциями. Напишите в нем всю необходимую информацию о том, какую реакцию нужно выбрать, чтобы получить конкретную роль или пройти верификацию. ‎‎После этого нажмите «‎Add emoji» для добавления первой реакции. Ввод содержимого сообщения для Carl.gg в Discord
  5. Выберите смайлик из списка, разверните список существующих ролей и присвойте ему одну из них. Выбор роли для эмодзи через Carl.gg в Discord
  6. Делайте то же самое со всеми необходимыми реакциями, создавая тем самым список из них. Добавление других эмодзи с ролями через Carl.gg в Discord
  7. Как только все реакции будут соотнесены с ролями, выберите тип сообщения и настройте дополнительные параметры, если нужно сделать так, чтобы только конкретные пользователи могли выбрать себе роль или можно ли это будет делать участникам из черного списка. На этом подготовка завершена, поэтому нажмите кнопку «‎Create».‎ Подтверждение сообщения сообщения получения роли по реакции через Carl.gg в Discord

Шаг 4: Завершающая настройка бота

Пока что действия с сайтом Carl.gg завершены, поэтому можно перейти непосредственно к Дискорду. Перед проверкой сообщений рекомендую изменить настройку самой роли бота, сделав ее приоритетной. Это позволит избежать дальнейших проблем при выдаче им ролей по реакциям.

  1. Откройте меню своего сервера и перейдите в настройки. Переход к настройке роли Carl.gg в Discord
  2. Выберите раздел «‎Роли», найдите в списке роль рассматриваемого бота и щелкните по ней левой кнопкой мыши. Выбор роли Carl.gg в Discord для дальнейшей настройки
  3. Зажмите ее ЛКМ в списке и перетащите на самый верх. Перед выходом не забудьте нажать кнопку «‎Сохранить изменения».‎‎ Изменение приоритета роли Carl.gg в Discord

Шаг 5: Получение роли по реакции

Основные этапы позади, значит, самое сложное уже выполнено и сообщение с выдачей ролей по реакциям должно работать корректно. Вам же остается только проверить его и узнать информацию о том, как создавать такие сообщения дальше или редактировать уже существующие.

  1. В первую очередь перейдите к каналу, где было создано сообщение от бота. Посмотрите на реакции и можете даже понажимать на некоторые из них, чтобы проверить отклик. Лучше это делать не с аккаунта создателя, поскольку у вас и так уже есть все необходимые права. Если второго профиля нет, попросите друга протестировать функцию. Проверка созданного сообщения через Carl.gg в Discord
  2. Как только реакция будет засчитана (список нажавших на эмодзи участников отображается при наведении на него курсора), можете посмотреть, обновились ли права для вас или «‎подопытного» пользователя, кто нажал на реакцию для получения роли. Просмотр поставленных реакций для сообщения Carl.gg в Discord
  3. Вы в любой момент можете вернуться на сайт в тот же раздел «‎Reaction Roles», чтобы отредактировать существующее сообщение или создать новое для другого или того же самого текстового канала.‎‎ Редактирование существующего сообщения или создание нового через Carl.gg в Discord

В этой статье я показал только один пример использования бота, который без сложностей для пользователя создает сообщение с получением ролей по реакциям. Есть и другие боты, которые могут так же или предлагают дополнительные инструменты для администрирования. Подобным помощникам посвящен другой материал на нашем сайте по следующей ссылке:

Как написать код, при котором бот забирает/выдаёт роли discord?

Моё

Подскажите пожалуйста, только неделю назад начал осваивать коды и писать бота, хотелось бы написать бота который сможет выдавать и забирать роли, что-бы данная команда была доступна только админам. Всё что пришло в голову ниже прикрепил, но не работает ;(

import discord from discord.ext import commands from disocrd.utils import get bot = commands.Bot(command_prefix='/') @bot.command() async def ping(ctx): await ctx.send('pong') @client.command() async def addrole (ctx,role: discord.role, user: discord.member): if ctx.author.guild_permissions.administrator: await user.add_role(role) await ctx.send(f" to .") @client.command() async def removerole(ctx, role: discord.role, user: discord.member): if ctx.author.guild_permissions.administrator: await user.remove_role(role) await ctx.send(f" to .") bot.run('Token') 

Отслеживать

задан 25 июл 2021 в 0:13

1 2 2 бронзовых знака

Вы, мне кажется не знаете базового синтаксиса питона. Для начала следует подучить его. Например здесь: pythonworld.ru/samouchitel-python или на любом другом ресурсе

Роли самостоятельного назначения

Настройте эксклюзивные роли с различными вариантами, которые можно использовать для улучшения рабочего процесса и стиля сообщения.

Панель управления — это место, где осуществляется управление описанными здесь конфигурациями.

  1. Перейдите в панель управления и авторизуйтесь.
  2. Выберите ваш сервер в левом меню.
  3. Выберите модуль и убедитесь, что он включён.

Настройка

Чтобы бот применил опции самоназначения к сообщению, сначала вы должны создать Embed-сообщение и отправить его в канал.

Страница Embed-сообщения описывает, как создать и отправить сообщение.

  1. Выберите Добавить сообщение .
  2. Далее Настроить .
  3. Нажмите на Embed-сообщения и выберите созданное вами Embed-сообщение.
  4. Выберите Embed-сообщение, которое вы отправили в канал, с опции Выберите сообщение .

Вы готовы перейти к одному из опций модуля. ��

Лимит ролей на пользователя​

Лимит ролей — сколько ролей пользователь может взять для конкретной реакции и взаимодействия.

Кнопка

Единственная в своем роде кнопка взаимодействия Discord, которая позволяет пользователям легко взаимодействовать одним нажатием.

  1. Выберите желаемый цвет кнопки, нажав на Кнопка .
  2. Нажмите на Добавить кнопку , чтобы добавить кнопку.
  3. Затем вы увидите кнопки Настройки и Удалить .
  4. Выбрав Настройки , вам будут предложены следующие варианты:
  • Эмодзи и текст, который вы хотите отобразить на кнопке.

Текстовое поле необходимо; вы должны заполнить его.

  • У вас будет 4 варианта цвета, если вы захотите изменить их в любое время.

Добавить роли​

Чтобы добавить роль к кнопке и оживить пользователя, когда он нажмёт на неё, найдите знак плюса + , на который можно нажать и добавить роль.

В одно Embed-сообщение можно добавить до 25 кнопок.

Меню выбора

Отличительная черта Discord, лёгкая в использовании, выберите меню, с которым будет взаимодействовать участник, и опцию для взятия роли(ей).

  1. Выберите Меню выбора с выпадающего меню.
  2. Теперь Добавить вариант .
  3. Вам будет предложено несколько вариантов, каждый из которых подробно описан ниже:

Плейсхолдер для меню выбора​

Желаемый вами текст, который пользователи увидят снаружи на опции меню выбора перед выбором любой роли.

Эмодзи​

Эмодзи, который вы хотите видеть перед каждым вариантом.

Заголовок варианта​

Желаемый вами заголовок, который пользователи увидят над каждым вариантом.

Описание варианта​

Описание, которое вы хотите видеть под заголовком каждого варианта; может использоваться для описания его содержимого.

Роли​

Вариант, где вы можете установить роли для пользователей, когда они взаимодействуют с меню выбора, нажатие на знак плюса + отобразит список ролей сервера.

Одно Embed-сообщение может содержать до 20 вариантов меню выбора.

Реакция

Участники получат роль, когда нажмут на реакцию в традиционной роли по реакции.

  1. Выберите Реакция с выпадающего меню.
  2. Далее Добавить эмодзи с выпадающего меню.
  3. Выберите, какой эмодзи вы хотите добавить — обычный или анимированный.
  4. Создайте роль для этой реакции, используя знак плюса + .

Если роли сервера не отображаются в панели управления, переместите роль ProBot выше в иерархии ролей сервера.

Режим роли

У вас будет несколько вариантов режима для роли по реакции.

Режим будет применяться ко всем вариантам в этом сообщении.

Переключить​

Этот режим добавляет/удаляет роли в зависимости от того, есть ли у пользователя эти роли. РЕКОМЕНДУЕМ!

Выдать​

Этот режим добавляет роли всякий раз, когда добавляется или удаляется реакция/взаимодействие. Подходит для принятия правил!

Забрать​

Этот режим удалит роли, когда реакция/взаимодействие была добавлена или убрана.

Тип уведомления

У вас будет 2 варианта для управления типами уведомления, хотите ли вы, чтобы он реагировал на взаимодействие пользователя или молчал: без уведомления:

Уведомление​

Этот вариант отправит ответное сообщение, которое может видеть только пользователь, который взаимодействовал с вариантами, когда роли добавлены, удалены или без изменений.

  1. Первый вариант — ответное сообщение, когда роль была добавлена.
  2. Второй вариант — ответное сообщение, когда роль была убрана.
  3. Третий вариант — когда никаких изменений в ролях пользователя не произошло.

Чтобы бот упомянул роль, включите в ответное сообщение, так как оно относится к роли.

Тихий режим​

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

Важные замечания

Реакция может сломаться, если вы выбрали кнопки или меню выбора и не используете их; чтобы решить эту проблему, необходимо удалить все варианты меню выбора и кнопки, которые вы добавили в том же сообщении, но не используете.

Вы не можете связать несколько сообщений с самоназначаемыми ролями к одному и тому же Embed-сообщению, поскольку это может вызвать проблемы.

Вам нужно подписаться на Премиум 1/2 уровня , чтобы установить несколько ролей на один вариант.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *