Self bot discord что это

Обновлено: 05.07.2024

Я расскажу о создании Discord-бота на Python, который запускает сборку проекта в Unity Cloud Build и создаёт ссылку на скачивание для QA из внешней команды.

Настройка и поддержка полноценного CI занимает много времени и средств. При этом команде чаще всего нужна базовая функциональность. Так случилось и с нашим проектом. Потребовался простой способ сборки проекта в Unity Cloud Build и передачи его на внешний QA.

На начальном этапе были такие условия и ограничения:

  • репозиторий проекта — Bitbucket (есть поддержка GitHub и GitLab);
  • наличие лицензии Unity Teams Advanced, которая разблокирует доступ к Unity Cloud Build;
  • ограниченный доступ к Unity Cloud Build для части команды;
  • сборка версии проекта не после каждого коммита в ветку, а только после завершения работы над функциональностью или багом.

Для этих целей был создан Discord-бот на Python (этот язык выбрал, как самый быстрый и удобный для автоматизации). Он позволил команде запускать сборку версии в Unity Cloud Build, и после её успешного завершения формировал ссылку для скачивания QA, как внутри команды, так и вне её.

Настройка проекта в Unity Cloud Build


Далее выбираем Create project и вводим имя нашего проекта (для примера, назовем его Dungeon Crawl Prototype):


После этого в списке проектов появится созданный проект. Переходим к нему и выбираем SET UP CLOUD BUILD:


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


Подключаем GitHub и переходим к настройке сборки проекта:


Добавляем новую сборку SETUP NEW TARGET:


Выбираем платформу. В нашем примере было создано две сборки под Windows 64 и Android:


Вводим название Target Label, в Branch ветку в git репозитории. Для тестового примера был установлен флаг Auto Detect Version:


Для примера был выбран Debug ключ и тестовый Bundle ID:


Далее нажимаем NEXT: BUILD, после чего настройка сборки завершена. Те же шаги необходимо повторить и для других платформ. На этом заканчиваем настройку Unity Cloud Build. В будущем понадобится создать Discord-оповещения для старта построения сборки и результата сборки. Сделаем это после настройки сервера.

Создание и настройка Discord-гильдии (сервера)


После создания сервера необходимо добавить новые роли. Для этого переходим в настройки и создаем три:

  • bot для нашего бота, ci для пользователей:
  • ci для пользователей, которые смогут давать команды боту:
  • qa для тех, кому будет доступна ссылка на скачивания сборки.


Далее создадим три канала:


На этом настройка гильдии закончена. Следующим шагом будет создание Discord-бота.

Создание и настройка Discord-бота


Далее создаем бота. Для этого переходим в созданное приложение, выбираем вкладку Bot и нажимаем Add Bot:


Далее необходимо настроить разрешения для бота. Переходим в пункт OAuth2 и выбираем следующие опции:


После выбора всех опций копируем url кнопкой Copy. Затем в браузере переходим по скопированной ссылке, выбираем Discord-гильдию, созданную ранее, и проверяем, выставленные разрешения:


Далее в настройках Discord-гильдии добавляем нашего бота в роль bot, которую создали ранее:


Осталось настроить Discord-оповещения для Unity Cloud Build (о начале и завершении сборки, и её результате):

Настройка Discord оповещения для Unity Cloud Build

Возвращаемся в Unity Cloud Build и переходим в раздел Notifications, в котором выбираем Integrations page:


Далее создаем новую интеграцию, нажав на NEW INTEGRATION:


Выбираем Discord и нажимаем NEXT:




На этом настройка оповещений и окружения завершена. На следующем этапе создадим Discord-бот на Python.

Создание Discord-бота на Python

Настройка проекта

Руководитель направления (Technical Product Manager)

Sportmaster Lab , Липецк, Санкт-Петербург, Москва , От 200 000 до 300 000 ₽

Создаём новый проект и добавляем в него requirements.txt с таким содержанием:

Так же создаём файл .env с переменными:

DISCORD_GUILD — название Discord гильдии.

DISCORD_BOT_NAME — имя бота.

DISCORD_TOKEN — можно получить на Discord Developer Portal в разделе Bot, скопировав токен:


UNITY_API_KEY можно получить в настройках Unity Cloud Build:


UNITY_ORGANIZATION_ID и PROJECT_ID так же можно получить в Unity Cloud Build. Для этого открываем конфигурацию сборки и нажимаем на EDIT BASIC INFO:


Далее в строке браузера можно увидеть UNITY_ORGANIZATION_ID и PROJECT_ID:


PROJECT_NAME — имя проекта, который собирается в Unity Cloud Build:

Написание бота

Далее я опишу основные моменты реализации Discord-бота. Создаём класс DiscordBot который наследуется от discord.Client. Он реализует API, позволяющее подключиться к Discord гильдии:

Далее необходимо подключиться к Discord-гильдии:

Метод on_ready, позволяет реагировать на событие подключения бота к Discord-гильдии:

Для работы с Unity Cloud Build создаём класс UnityCloudBuildWorker:

Запуск бота как сервис

Для удобства запуска бота на удаленном сервере мы добавили в репозиторий возможность собрать и запустить бота в качестве Docker-контейнера. Для этого были добавлены Dockerfile:

И Makefile, в котором описаны команды up и down для запуска и остановки контейнера с ботом:

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

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

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

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

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

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

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

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

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

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

Пока что, все непонятно, щас объясню.

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

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

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

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

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

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

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

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

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

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

Как сделать получение ролей через реакции в дискорде Discord, Длиннопост, Боты, Первый пост, Сервера дискорд

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

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

Есть много того, что вам может понравиться в Discord. Он бесплатен в использовании и управлении, имеет поддержку VOIP, и благодаря поддержке ботов, очень хорошо настраивается. Вот лучшие боты Discord, о которых вы должны знать.

7 лучших ботов Discord для улучшения вашего сервера 1

1. Carl Bot

Одна из наиболее полезных функций в Discord — это роли реакции, которые позволяют вводить команды и смайлики в Discord, позволяя вносить различные изменения на сервере.

Роли за реакции:

Логирование:

Модерация:

  • Лог модерации.
  • Множество команд для модерации.
  • Канал, чтобы модераторы могли видеть всех нарушителей.

7 лучших ботов Discord для улучшения вашего сервера 2

2. Groovy

Новичок на сцене музыкальных ботов Discord — Groovy — позволяет пользователям на канале в Discord ставить в очередь плейлисты песен из самых популярных музыкальных источников в интернете.

7 лучших ботов Discord для улучшения вашего сервера 3

3. MEE6

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

Множество ботов Disord предназначены для модерации сервера, и MEE6 не вызовет разочарования. Вы можете настроить автоматические правила для защиты от таких проблем, как спам на сервере. Администраторы MEE6 также могут настроить систему «страйков» для автоматизации наказаний, если пользователи регулярно нарушают правила.

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

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

7 лучших ботов Discord для улучшения вашего сервера 4

4. RED

Если вы хотите, чтобы бот действительно настраивался, то RED должен быть на вашем радаре. Учтите, что для его размещения вам понадобится собственный сервер.

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

7 лучших ботов Discord для улучшения вашего сервера 5

5. Dyno

Еще одним достойным внимания ботом является Dyno, который используется на более чем 1,6 миллионах серверов. Одним из его главных преимуществ является большая информационная веб-панель, позволяющая полностью контролировать процесс настройки.

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

Но дело не только в модерации. Вы можете настроить DJ-бота с индивидуальными плейлистами, играть в слот-игры, искать случайные факты и даже фотографии.

7 лучших ботов Discord для улучшения вашего сервера 6

6. Tatsumaki

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

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

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

7 лучших ботов Discord для улучшения вашего сервера 7

7. Pancake

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

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

Кстати, если вам нужно изменить голос в Disord, то вот тут есть подробная инструкция, как это сделать и несколько программ на выбор.

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

Имея сотни доступных команд, на сервере Pancake Disord найдется что-то для каждого.

7 лучших ботов Discord для улучшения вашего сервера 8

Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Создаем бота для Discord

В этом ознакомительном HOWTO я расскажу, как можно немного занять себя на время карантина и сделать бота для своего Discord-сервера. Мы развернем NodeJS в Docker под Ubuntu 18.04 и запустим в нем бота с парочкой простых команд. В конце я оставлю ссылки на полезные источники информации, чтобы вы могли дальше развивать бота, наделяя его полезными функциями.

Программное обеспечение сервера, используемое в этом уроке:

  • Ubuntu 18.04
  • Docker 19.03.6
  • npm 6.14.5

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

Первые шаги

New application

В появившемся окне нужно придумать имя своему приложению (будущему боту):

Бот Дискорд

После указания имени и создания приложения мы можем перейти к созданию бота. Для этого в левом меню выберите пункт “Bot” и нажмите на кнопку “Add Bot”.

Добавить бота в Discord

Последним шагом здесь будет копирование token по кнопке “Copy”. Держите в секрете ваш token и сохраните его куда-нибудь — он понадобится позже.

Токен Discord

Подготовка сервера

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

Команды для установки в Ubuntu 18.04:

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

Настройка Iptables для чайников

Как установить и настроить NTP на сервере

Создание основных файлов

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

  • discord.js (основная библиотека для работы бота);
  • dotenv (будет использоваться для конфигурационного файла).

Создадим рабочую директорию проекта и файл package.json. В моем случае рабочая директория располагается в директории /home, но вы можете выбрать любую другую на свое усмотрение.

Примерный вид файла:

В нем мы указали имя будущего пакета (name), версию (version), описание (description), автора (author), основной файл (app.js) и список зависимостей (dependencies).

Запустим npm install и убедимся, что создался файл package-lock.json, который потом также будет скопирован в контейнер.

Теперь создадим файл самого бота app.js и запишем в него следующий код:

Учитывая, что здесь используется конфигурационный файл, создадим в рабочей директории .env и запишем в него:

Вместо “tokenbot” подставляется token бота, который был сохранен в начале статьи, а в качестве prefix указывается символ, после которого будут вводиться команды. Я выбрал в качестве префикса “!”, но вы можете выбрать другой удобный символ, если только он не используется самим Discord, как например “@” или “/”.

Создание Docker-контейнера

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

Создадим файл .dockerignore и запишем туда несколько локальных файлов, которые будут игнорироваться:

Соберем образ и запустим на его основе контейнер:

Вместо “authorname” можно ввести имя пользователя, от которого создается бот, и через “/” указать имя бота.

Проверим, что контейнер запустился, специальной командой:

Добавление бота на сервер

Бот запущен и работает в контейнере. Осталось только пригласить его на сервер и проверить его работу.

Для приглашения необходимо:

Выбор сервера для бота

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

Проверка команд бота

Заключение

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

Далее бота можно развивать, наполняя его другими более сложными и полезными функциями. Для этого вам пригодятся знания JavaScript и следующие ссылки:

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

Читайте также: