Андрей Смирнов
Время чтения: ~6 мин.
Просмотров: 130

Создание простого Discord бота с помощью библиотеки discord.py

1552151497118267071.png

Здравствуйте все мимо проходящие читатели Пикабу, это моя первая статья на этом сайте, и поэтому не судите строго.)

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

155215581812794286.jpg

Довольно удобная механика, думал и реализация простая, но не тут то было…

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

Встречайте его — YAGPDB.xyz. Бот обладающий не только функцией с деланием таких таблиц с ролями, но и многими другими (честно добавил ради таблицы с ролями :)). Начнем с добавления его на сервер.

Вот ссылка — https://yagpdb.xyz

1552152634192153060.png

1.Нас встречает такая красивая обложка, добавляем его с помощью кнопки справа сверху.

2. Когда добавили, можно заходить в «control panel», авторизируемся и выбираем нужный сервер, там уже будет наши инструменты. Для работы нам нужен только один раздел, а именно «Role Commands».

155215334118728128.jpg

Role command — это само название роли, пишите какое вам нужно, в подразделе виднеется две вкладки, group и role. О группе я расскажу чуть-чуть по позже, а роль, это присвоение этого название к определенной роли на сервере.

Пример: делаете роль для игры в Майнкрафт, пишите во вкладке name название роли, Майнкрафт, а во вкладке role выбираете роль на сервере (предварительно создав саму роль),

Оставшиеся две вкладки в разделе, нам не пригодятся (точнее мне они не пригодились), в разделе «Create a new group», нужно создать грубо говоря, категорию ролей, пишите что вам по душе, я писал «Игровые роли», т.к и делал игровые роли;)

В эту категорию нам нужно переместить нашу роль/роли, в самой категории нас могут интересовать две вкладки, «Temporary roles (minutes)» и «Mode».

Первая вкладка отвечает за время за которое будут сниматься роль, если убрали реакцию, а вторая сколько можно будет иметь этих ролей, не больше одной или наоборот, несколько. (Не забудьте в максимальном колличестве ролей, написать нужное ВАМ число, вместо нуля, а то тогда не получится взять не одну роль).

Дальше пора переходить на сервер, там нужно прописать команду:

-rolemenu create «ваше название категории»

1552154697134550330.jpg

Теперь, вам нужно поставить саму реакцию под его сообщением.

1552154798168649524.jpg

Мы это сделали, но это все равно выглядит не так уж и красиво. Поэтому продолжим усовершенствовать. И для этого, добавим совет сообщение! Для этого, печатаем сам текст, какой хотите.

Потом нам понадобится режим разработчика в дискорде! Для того, что бы мы скопировали айди сообщения. Заходим настройки, внешний вид.

155215506714406762.jpg

После этого, копируем айди сообщения. (Снизу показано как)

1552155159188727012.jpg

И ещё раз ставим реакцию на сообщении, только теперь на то, которое мы написали.

Вот что у меня получилось:

1552155513122195721.jpg

Теперь на этом точно все, писал я это в полную ночь, так что мог что то не уследить, поэтому задавайте вопросы, и если что то не поняли можете спросить у меня на прямую, на самом сервере, вот ссылка:

https://discord.gg/HdANrc6

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

3Асинхронная библиотека discord.py содержит все что нужно для бота, с помощью нее даже можно работать с голосовыми каналами сервера. В этой статье я расскажу как создать простенького бота для вашего discord сервера. gnb8pkgozggfj43jaxlbomklpyu.png

Получение токена и Client ID для вашего бота

Для получения токена и ID бота небходимо создать свое приложение и в разделе General Information скопировать Client ID.eqazdaloxjwb4npmkxmtxpfvzjc.png А в разделе настроек создать бота и скопировать его токен. Задача не сложная, думаю все с этим справятся.lofyeotisdiy0vrftmdrfrrn1fc.png

Собственно пишем бота

Устанавливаем discord.py с помощью pip:

pip install discord

После успешной установки создаем файл bot.py, где будем писать бота. Импортируем все необходимое:

import discord from discord.ext import commands 

Создаем переменную с вашим токеном, про который я писал выше:

TOKEN = 'Ваш токен'

Про токен Создаем тело бота:

bot = commands.Bot(command_prefix='!') #инициализируем бота с префиксом '!'

Для начала сделаем простенькую команду, аргумент которой бот будет просто пересылать:

 @bot.command(pass_context=True) #разрешаем передавать агрументы async def test(ctx, arg): #создаем асинхронную фунцию бота     await ctx.send(arg) #отправляем обратно аргумент 

И в конце запускаем бота с вашим токеном:

bot.run(TOKEN)

В итоге должно получится вот такое:Код

 import discord from discord.ext import commands  TOKEN = 'Ваш токен' bot = commands.Bot(command_prefix='!')   @bot.command(pass_context=True)  # разрешаем передавать агрументы async def test(ctx, arg):  # создаем асинхронную фунцию бота     await ctx.send(arg)  # отправляем обратно аргумент   bot.run(TOKEN)  

Теперь необходимо добавить бота на сервер. Сделать это можно с помощью ссылки:

https://discordapp.com/oauth2/authorize?&client_id={Client ID}&scope=bot&permissions={Права, например 66395456}

Число необходимых прав можно получить в разделе настроек бота. Теперь можно запускать бота:

python bot.py

После нескольких секунд, можно заметить его в сети: -jejgothodlh3gingjwq8pncojo.png И наконец-то попробовать отправить команду: 1btzkl5g6zpetepgo-68ypw01wo.png

Заключение

Вот так можно легко запустить у себя на сервере бота. Как можно заметить библиотека делает практически все за тебя и остается только добавлять свой функционал с использованием python. В следующий раз я покажу как следить за событиями, подключатся к голосовым каналам (избегая проблем с linux и Windows), использовать роли и права участников и другое.meflvpgiczu6c9r370uch3xikuc.png Надеюсь, статья была Вам полезна, удачи!

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

nastroyka-discord.png

По умолчанию после добавления на сервер бот присваивает себе роль «Bot», но иногда это приходится делать самостоятельно. Происходит это по аналогии с остальными участниками. Здесь же в параметрах ему можно ограничить права или наделить ими.

Способ 1: Через Dashboard

Некоторые боты используют подключаемые плагины и модули. Поэтому настройка осуществляется через dashboard. Информацию об этом можно найти на официальной странице программы или после соответствующего запроса (через команду) в текстовом канале. Особенности:

  • Меню доступно всем участникам, а не только администраторам.
  • Отображается статистика, ранги и достижения (при условии их наличия).
  • Есть возможность отключать и подключать модули, например, для трансляции музыки.
  • Есть доступ к глобальной информации и возможность сравнения с другими серверами, которые используют данного бота.

Для использования Dashboard необходимо авторизоваться с использованием данных учетной записи Discord.

avtorizatsiya-dashboard.png

Способ 2: Через приложение

Менять основные параметры можно напрямую через Дискорд. Менять громкость музыкальному боту можно так же, как и остальным пользователям. Особенности:

  • Блокировать бота может каждый участник сервера отдельно.
  • Администратор может менять параметры для всех пользователей.
  • По умолчанию приглашать робота в голосовой канал может только администратор. По желанию это можно изменить (касается и других команд).

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

bot-v-general-discord.png

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

Не забывайте настраивать параметры робота после его добавления на сервер. Это поможет избежать возможных ошибок и спама. Чтобы вернуть значения “по умолчанию”, удалите бота, а потом снова добавьте его.

Используемые источники:

  • https://pikabu.ru/story/kak_sdelat_poluchenie_roley_cherez_reaktsii_v_diskorde_6561359
  • https://habr.com/sandbox/132747/
  • https://discord-bot.ru/kak-nastroit-bota-v-discord

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации