При входе на сервер нового участника, ему автоматически должна выдаваться роль. Звучит просто.
Но мне возвращает ошибку:
$ main.py Successful connected to discord server! # Коннектимся к серверам Bot is ready # Бот работает Ignoring exception in on_member_join Traceback (most recent call last): File «C:UsersReiVanSTRAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordclient.py», line 312, in _run_event await coro(*args, **kwargs) File «C:UsersReiVanSTRPython codeReiB1main.py», line 23, in on_member_join await member.add_roles(role) File «C:UsersReiVanSTRAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordmember.py», line 641, in add_roles await req(guild_id, user_id, role.id, reason=reason) # Пробовал и так, возвращает так же Missing Permissions File «C:UsersReiVanSTRAppDataLocalProgramsPythonPython38-32libsite-packagesdiscordhttp.py», line 221, in request raise Forbidden(r, data) discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
Позже из доков прочитал, что для этого нужны права manage_roles
Как сделать авто роли в дискорде?
await add_roles(*roles, reason=None, atomic=True) This function is a coroutine. Gives the member a number of Roles. You must have the manage_roles permission to use this.
Полный код
Буду рад любому ответу!
Ответы (1 шт):
UPD: Проблема решена!
При подключении бота я выдал ему права администратора, после выбора этой роли, нижестоящие роли стали недоступны, т.к. предполагается, что они уже включены в роль Администратор. Скриншоты ниже:
Решение:
Перейти в настройки сервера, в настройках ролей выбрать роль бота и выдать доступ к «Управлять ролями» (manage_roles)
Не знаю, можно ли списать это на недоработку самого API? С другой стороны, дискорд настоятельно НЕрекомендует выдавать роль администратора.
Вывод:
Выдавать боту только те права, которые ему нужны для корректной работы. Это не только обезопасит Ваш сервер, но и как показывает практика не будет вызывать подобных проблем.
Источник: husl.ru
discord.py авто-выдача ролей при подключении нового участника сервера
Мне надо, чтобы при подключении участника ему выдавалась определенная роль. В интернете находил, но у меня не работало. Вот код (без команды на выдачу ролей):
import discord client = discord.Client() class MyClient(discord.Client): async def on_ready(self): # bot connection print(‘Присоеденился !’.format(self.user)) async def on_message(self, message): # so that the bot does not display its own messages if message.author == client.user: return # displaying messages from the chat if message.content.startswith(»): await message.channel.send(f’ написал ‘) # bot launch client = MyClient() client.run(‘TOKEN’)
Если не сложно, объясните еще как работает выдача ролей, а то практически ничего не понимаю в этой библиотеке.
Отслеживать
19.3k 5 5 золотых знаков 20 20 серебряных знаков 55 55 бронзовых знаков
Источник: ru.stackoverflow.com
Carl Bot Discord – инструкция по настройке бота
Помогаю с выбором сервисов. Большой опыт в маркетинге и аналитике. Работаю как с заказчиками, так и агентствами. Вырос с помощника обычного SEO-специалиста .
Поделитесь статьей с друзьями и коллегами
Управлять небольшим сервером в Discord несложно – можно вручную следить за участниками, распределять роли, модерировать чат и т.д. Но если на сервере сотни или даже тысячи участников, то приходится нанимать помощника. Сегодня поговорим как раз о таком – приложении Carl Bot.
Что такое Carl Bot Discord
Carl Bot – это бот для Discord, с помощью которого можно управлять собственным сервером. Он умеет:
Продвижение в Stories у блогеров: надёжно и эффективно
InstaJet.in — сервис интеграций с блогерами в Stories. Только проверенные блогеры, готовые к сотрудничеству!
- Выбирайте лучших: в открытом каталоге можно подобрать блогеров самостоятельно или с помощью менеджера.
- Контролируйте процесс: интеграции размещаются точно в срок и в том виде, в котором их согласует заказчик.
- Анализируйте результаты: сервис предоставляет готовые отчёты по кампаниям в удобных таблицах.
Платформа работает с юридическими лицами и предоставляет все необходимые документы.
- Распределять роли (в том числе автоматически на основе эмодзи – например, если кто-то отреагирует на сообщение с определенным эмодзи, ему будет назначена роль);
- Модерировать чат (фильтровать спам и удалять оскорбительный контент, отправлять предупреждения нарушителям, заглушать некоторых участников);
- Вести журнал активности. Информация о любом действии на сервере будет зафиксирована;
- Отправлять приветственные сообщения новым участникам и т.д.
Основной функционал бота доступен бесплатно. При желании можно оформить спонсорскую поддержку на Patreon и получить дополнительные возможности. Есть 3 уровня поддержки:
- CarlBot Premium ($5/мес.) – уровни, роли с временной реакцией, ссылки на голосовые роли и пр.;
- Turtle King ($10/мес.) – функционал CarlBot Premium для 3 серверов;
- $$$ ($25/мес.) – функционал CarlBot Premium для 8 серверов.
Бот был создан в 2018 г., сейчас он установлен на 6,9 млн серверов в Discord.
Как пользоваться Carl Bot? Нужно установить приложение на свой Discord-сервер, настроить его и вводить нужные команды в окно чата. Интерфейс бота и команды есть только на английском языке. Версии на русском нет.
Как его настроить
Установить Carl Bot можно через официальный сайт бота. На главной странице нажмите кнопку «Invite» и предоставьте приложению доступ к своей учетной записи Discord.
Здесь нужно выбрать, на какой сервер будет добавлен бот, а затем предоставить ему права для этого сервера – например, управлять сервером и ролями, выгонять и банить участников, читать и отправлять сообщения и т.д.
Если не дать Carl Bot каких-нибудь прав, он будет некорректно работать.
После того, как бот авторизуется в Discord, он появится на сервере. Его не нужно активировать вручную, бот добавляется автоматически – можно сразу же приступать к настройке или командам.
Как настроить бота? Это можно сделать 2 способами:
- Через панель инструментов;
- Внутри Дискорд.
Для настройки через дашборд нужно на сайте Carl Bot нажать «Login» и авторизоваться через свой Discrod-аккаунт. Затем нужно выбрать сервер для настройки.
В открывшемся интерфейсе можно:
- Добавить один или несколько префиксов для управления ботом;
- Создать приветственное сообщение для новых участников;
- Настроить модерацию;
- Создать новые теги и др.
То же самое можно сделать и внутри Discord – для этого нужно вводить специальные команды.
Сравним, что проще – настраивать через Discrod или дашборд. Например, добавим новый префикс для ввода команд. Внутри Discord для этого вводим команду:
Теперь вводим префикс, который хотим использовать, например, 123. Нажимаем Enter и подтверждаем создание префикса.
В панели инструментов нужно перейти в раздел «Bot Settings», выбрать раздел «Custom Prefix» и просто ввести нужный префикс и нажать «Add».
Как видите, настраивать бота через панель дашборд намного проще – не нужно запоминать команды, все делается в удобном интерфейсе.
Чтобы удалить бота с сервера, нужно в самом Discord в списке участников (в правом верхнем углу) выбрать Carl Bot и нажать правую кнопку мыши. После этого можно:
- Установить таймаут – бот не сможет работать выбранное время;
- Выгнать – бот будет удален с сервера;
- Забанить – бот будет удален с сервера и заблокирован.
Верификация
Одна из главных фишек Carl Bot – создание верификации для своего сервера. Для этого в настройках сервера в разделе «Роли» нужно создать новую – например, «Новичок».
После этого создаем текстовый канал, на котором будет проходить верификация.
Теперь в канале «Верификация» пишем приветственное сообщение (например, «Чтобы пройти верификацию, нажмите на эмодзи ниже») и копируем его ID.
Этот ID нужно вставить в панели управления ботом. Перейдите в группу «Utility» и выберите «Reaction Roles». Нажмите «Create new reaction role» и заполните такие поля:
- Post embed (верхнее поле) – выбираем «Use ID»;
- Please enter your message ID – вводим ID скопированного сообщения;
- Please select a channel – выбираем канал «Верификация».
После этого нажимаем «Add emoji» и выбираем эмодзи для верификации, а в поле «Message Type» выбираем «Verify».
Теперь новый участник сервера будет попадать на канал для верификации (в этот момент другие каналы будут ему недоступны). После нажатия на эмодзи он получит доступ к роли «Новичок» и сможет просматривать другие разрешенные каналы. Если нужно, можно настроить верификацию более тонко.
Подробнее о верификации с помощью Carl Bot в этом видео:
Что умеет карл бот
Как мы уже писали, основные функции бота – модерация чата, выдача ролей, отправка приветственных сообщений и пр. Поэтому подробно рассмотрим, как сделать выдачу ролей через эмодзи.
Частично говорили об этом в блоке о верификации, но на самом деле возможности бота по распределению ролей куда шире.
В панели управления Carl Bot в разделе «Reaction roles» создаем новую роль. Во вкладке «Mode» выбираем «Use ID», вставляем ID сообщения, к которому хотим прикрепить эмодзи, и выбираем канал, в котором находится это сообщение.
Теперь можно выбрать тип реакции. Есть 7 видов:
- Normal – пользователь нажимает на эмодзи и получает роль без ограничений;
- Unique – пользователь может выбрать одну роль из списка;
- Verify – эмодзи выдает роль, но не удаляет старую. При этом реакция удаляется после реакции пользователя. Обычно используется для верификации;
- Drop – при нажатии на эмодзи роль удаляется. Актуально, если при заходе на сервер автоматически выдается роль;
- Reversed – нажатие на эмодзи удаляет роль, НЕнажатие – добавляет;
- Limit – ограничивает количество ролей для выбора;
- Binding – комбинация верификации и уникальности, позволяет ограничивать пользователей одним выбором (например, при создании RP-кланов на сервере).
Ниже можно добавить роли в черный и белый списки.
Теперь нужно нажать на «Add emoji» и выбрать эмодзи и роль, которая будет выдаваться при нажатии на него. Можно выбрать до 20 реакций.
После этого под выбранным сообщением будут располагаться эмодзи. Если нажать на эмодзи – пользователь получит соответствующую роль.
ЧИТАЙТЕ ТАКЖЕ
Команды для бота
У Carl Bot есть десятки команд. Полный список найдете в панели управления сайта – группа «Settings», раздел «Commands».
Они распределены на 17 групп, например:
- Automod – автоматическая модерация;
- Fun – развлекательные команды;
- Levels – выдача рангов пользователям;
- Roles – работа с ролями;
- Stats – информация о боте и пр.
Для удобства в панели управления можно отключать ненужные команды – они не будут срабатывать при введении префикса.
Чтобы ввести команду, нужно сначала ввести префикс (стандартный – «/», можно заменить на любой), а затем саму команду. Иногда нужно ввести дополнительную команду – например, указать пользователя или выбрать ID сообщения.
Вот несколько основных команд:
- /about – информация о боте;
- /automod – текущие настройки автомодерации;
- /capspuhish – устанавливает наказание за использование CapsLock в сообщениях;
- /censor – добавляет слова для цензуры;
- /permissions – показывает разрешения для пользователя;
- /ban – банит пользователя на сервере;
- /hardmute – заглушает пользователя на определенный срок;
- /kick – выгоняет пользователя с сервера;
- /unban – разблокирует пользователя;
- /play – включает музыку;
- /help – показывает справку по выбранной команде;
- /poll – проводит опрос.
Вывод
Carl Bot – это полезное приложение для управления Discord-сервером. Бот не универсален, его функционал завязан на модерации, распределении ролей и пр. – то есть на всем, что помогает в администрировании.
При этом у него удобная панель управления. Для тонкой настройки бота не придется путаться в многочисленных командах, ведь все можно сделать через дашборд.
Вам понравилась статья? 4 7
Автор статьи
Помогаю с выбором сервисов. Большой опыт в маркетинге и аналитике. Работаю как с заказчиками, так и агентствами. Вырос с помощника обычного SEO-специалиста .
Источник: otzyvmarketing.ru