Guilded bot discord команды

Обновлено: 04.07.2024

На каждом шаге будем постепенно наращивать функционал.

Создадим новый web api проект с одним контроллером /check. При обращении к этому адресу будем отправлять строку “Hello!” в Discord чат.

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

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

Напишем Dockerfile для нашего проекта и разместим проект на хостинге Heroku.

Посмотрим на несколько способов сделать периодическое выполнение кода.

Реализуем автоматическую сборку, запуск тестов и публикацию проекта после каждого коммита в master

Создание нового проекта - это одна из фундаментальных вещей которые я не буду подробно расписывать. При работе над проектом используйте сервис Github для хранения кода. В дальнейшем мы воспользуемся несколькими возможностями Github.

Добавим к проекту новый контроллер

Получить его можно в пункте integrations в настройках любого текстового канала вашего Discord сервера.

Создание webhook

Создание webhook

Добавим webhook в appsettings.json нашего проекта. Позже мы унесем его в переменные окружения Heroku. Если вы не знакомы с тем как работать с конфигурацией в ASP Core проектах предварительно изучите эту тему.

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

Не забудьте что новый класс нужно будет зарегистрировать в Startup.

Теперь можно воспользоваться новым классом в контроллере.

Получаем реальные данные

Подключим к проекту библиотеку ArgentPonyWarcraftClient.

Создадим новый класс BattleNetApiClient в папке Services.

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

Кроме этого, нужно создать в appsettings проекта две новых записи RealmName и GuildName. RealmName это название игрового мира, а GuildName это название гильдии. Их будем использовать как параметры при запросе.

Сделаем метод GetGuildMembers чтобы получать состав гильдии и создадим модель WowCharacterToken которая будет представлять собой информацию об игроке.

Класс WowCharacterToken следует поместить в папку Models.

Не забудьте подключить BattleNetApiClient в Startup.

Берем данные из заглушки

Для начала создадим модель WowCharacterToken и поместим ее в папку Models. Она представляет собой информацию об игроке.

Дальше сделаем вот такой класс

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

Сделайте интерфейс и подключите все что мы создали в Startup.

Выведем результаты в Discord

После того как мы сделали BattleNetApiClient, им можно воспользоваться в контроллере чтобы вывести кол-во игроков в Discord.

Шаг 3. Находим новых и ушедших игроков

Нужно научиться определять какие игроки появились или пропали из списка при последующих запросах к api. Для этого мы можем закэшировать список в InMemory кэше (в оперативной памяти) или во внешнем хранилище.

Если закэшировать список в InMemory кэше, то мы потеряем его при перезапуске приложения. Поэтому позже мы подключим базу данных Redis как аддон в Heroku и будем кешировать туда.

А пока что подключим InMemory кэш в Startup.

Теперь в нашем распоряжении есть IDistributedCache, который можно подключить через конструктор. Я предпочел не использовать его напрямую , а написать для него обертку. Создайте класс GuildRepository и поместите его в новую папку Repositories.

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

Теперь можно написать сервис который будет сравнивать новый список игроков с сохраненным.

В качестве возвращаемого результата используется модель Report. Ее нужно создать и поместить в папку Models.

Применим GuildService в контроллере.

Теперь отправим в Discord какие игроки присоединились или покинули гильдию.

Можно вывести больше информации об игроке. Ее можно получить если воспользоваться библиотекой ArgentPonyWarcraftClient

Я решил не добавлять в статью больше кода в BattleNetApiClient, чтобы статья не разрослась до безумных размеров.

Unit тесты

У нас появился класс GuildService с нетривиальной логикой, который будет изменяться и расширяться в будущем. Стоит написать на него тесты. Для этого нужно будет сделать заглушки для BattleNetApiClient, GuildRepository и DiscordBroker. Я специально просил создавать интерфейсы для этих классов чтобы можно было сделать их фейки.

Создайте новый проект для Unit тестов. Заведите в нем папку Fakes и сделайте три фейка.

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

Первый тест на GuildService будет выглядеть так:

Как видно из названия, тест позволяет проверить что мы сохраним список игроков, если кэш пуст. Заметьте, в конце теста используется специальный набор методов Should, Be. Это методы из библиотеки FluentAssertions, которые помогают нам сделать Assertion более читабельным.

Теперь у нас есть база для написания тестов. Я показал вам основную идею, дальнейшее написание тестов оставляю вам.

Главный функционал проекта готов. Теперь можно подумать о его публикации.

Шаг 4. Привет Docker и Heroku!

Чтобы упаковать проект в Docker нам понадобится создать в корне репозитория Dockerfile со следующим содержимым

peon.dll это название моего Solution. Peon переводится как батрак.

О том как работать с Docker и Heroku можно прочитать здесь. Но я все же опишу последовательность действий.

Вам понадобится создать аккаунт в Heroku, установить Heroku CLI.

Создайте новый проект в heroku и свяжите его с вашим репозиторием.

Теперь нам необходимо создать файл heroku.yml в папке с проектом. У него будет такое содержимое:

Дальше выполним небольшую череду команд:

Можете открыть приложение в браузере с помощью команды:

После того как мы разместили приложение в Heroku, нужно подключить базу данных Redis для кэша. Как вы помните InMemory кэш будет исчезать после перезапуска приложения.

Установите для нашего Heroku приложения бесплатный аддон RedisCloud.

Строку подключения для Redis можно будет получить через переменную окружения REDISCLOUD_URL. Она будет доступна, когда приложение будет запущено в экосистеме Heroku.

Нам нужно получить эту переменную в коде приложения.

С помощью нее можно зарегистрировать Redis реализацию для IDistributedCache в Startup.

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

На этот класс можно сделать простой Unit тест.

После того что мы сделали, GuildRepository будет сохранять кэш не в оперативную память, а в Redis. Нам даже не нужно ничего менять в коде приложения.

Опубликуйте новую версию приложения.

Шаг 5. Реализуем циклическое выполнение

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

Есть несколько способов это реализовать:

Третий способ - это подключить к проекту специальные Cron аддоны. Например Heroku Scheduler. Можете пойти этим путем и разобраться как создать cron job в Heroku.

Шаг 6. Автоматическая сборка, прогон тестов и публикация

Во-первых, зайдите в настройки приложения в Heroku.

Там есть пункт Deploy. Подключите там свой Github аккаунт и включите Automatic deploys после каждого коммита в master.


Поставьте галочку у пункта Wait for CI to pass before deploy. Нам нужно чтобы Heroku дожидался сборки и прогонки тестов. Если тесты покраснеют, то публикация не случится.

Сделаем сборку и прогонку тестов в Github Actions.


В репозитории появится новый файл dotnet.yml. Он описывает процесс сборки.

Как видите по его содержимому, задание build будет запускаться после пуша в ветку master.

Содержимое самого задания нас полностью устраивает. Если вы вчитаетесь в то что там происходит, то увидите что там происходит запуск команд dotnet build и dotnet test.

Менять в этом файле ничего не нужно, все уже будет работать из коробки.

Запушьте что-нибудь в master и посмотрите что задание запускается. Кстати, оно уже должно было запуститься после создания нового workflow.


Надеюсь данная статья подкинула вам пару новых идей и тем для изучения. Спасибо за внимание. Удачи вам в ваших проектах!


Не упустите возможность узнать больше о самых крутых ботах Discord, доступных в 2019 году.

Топ-8 самых крутых ботов Discord

1. Dyno Bot

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

Это также полезно для объявлений, которые вы можете настроить для определенных действий, таких как случаи, когда люди покидают ваш сервер или присоединяются к нему, а также получают запрет на него. Интеграция Cleverbot, вероятно, лучшая часть Dyno, которую вы можете использовать для потоковой передачи музыки из YT, публикации результатов поиска в Google, а также статистики игры.

2. Типичный бот

3. Статистика игры

Как следует из названия, GameStats предоставляет вам статистику вашего личного профиля во множестве игр, таких как Rainbow Six Siege, CSGO, PUBG, DOTA, World of Tanks, World of Warcraft и т. д. Помимо отслеживания вашей статистики, это также дает вам право хвастаться, потому что вы можете легко поделиться ими с друзьями.

Может потребоваться некоторое время, чтобы привыкнуть к командам этого бота, но вам понравится, когда вы освоите его. Чтобы добавить профиль, введите «.gs profile», а чтобы добавить конкретную игру, введите «.gs add Uplay».

4. Тацумаки

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

Этот бот поставляется со специальной панелью управления, которая позволяет вам изменять его настройки на ходу, но также позволяет просматривать Интернет и многое другое, находясь в Discord.

5. TriviaBot

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

Этот бот очень прост в использовании. Его команды состоят из «запуска мелочей» для запуска и «категорий мелочей» для выбора любимой категории (фильмы, телешоу, спорт, наука и т. Д.). Обязательно попробуйте этого бота, если вас интересуют мелочи или вам надоели жестокие и напряженные игры.

6. Guilded Bot

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

Поддерживаемые игры варьируются от League of Legends, Fortnite и CSGO до Call of Duty и World of Warcraft.

7. Pokecord Bot

Pokecord Бот действительно забавный убийца времени. Это позволяет вам играть в игру Pokémon на вашем сервере Discord. Покемон будет случайным образом появляться на вашем сервере, и тот, кто первым поймает одного из них, станет его хозяином. Конечно, есть битвы покемонов, и ваш покемон будет становиться сильнее с каждой победой.

8. Сыворотка

Сыворотка похожа на версию Siri для бота Discord. Команды очень ограничены, но их можно активировать голосом, что очень удобно. Это означает, что вы можете использовать команды сервера во время игры, не сворачиваясь в трей. Любой геймер может подтвердить, что это отличная функция. Начните давать голосовые команды, произнося «Привет, сыворотка», а затем произносите команду.

Смерть, любовь и роботы

Какие твои любимые боты на Discord? Будете ли вы использовать некоторых из упомянутых здесь ботов? Дайте нам знать в комментарии ниже.

Discord – незаменимое место встреч поклонников онлайн-игр по всему миру. Здесь найдется сообщество для фанатов любой игры. А если учесть, как много людей из разных стран являются геймерами, можно предположить масштаб пользовательской аудитории, использующей эту программу. Поэтому несложно догадаться, что боты для дискорда становятся все более востребованными и популярными. В ряде случаев их использование является не баловством, а необходимостью.


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

Carl Bot

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


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

Groovy

Рассматривая популярные боты для сервера дискорд, нельзя не упомянуть о Груви. Это незаменимый помощник для тех, кто любит послушать музыку во время игры. Он создан для воспроизведения аудио и представлен в двух версиях – платной и бесплатной. Функционала бесплатной версии, как правило, достаточно для среднестатистического пользователя.

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


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


В платной версии количество функций на порядок расширяется. За 99,9 долларов полнофункциональный вариант бота будет доступен навсегда, за 4,99 – на месяц, за 34,99 – на год.

TriviaBot

Большинство пользователей пользуются Discord для обсуждения процесса игры и участия в голосовых и текстовых чатах. Но если установить бот TriviaBot, можно организовать нескучный досуг с участниками сообщества. Этот бот представляет собой игру-викторину с более чем 3000 вопросами из 24 категорий, в которой может принять участие сразу много пользователей. Пользователь может проверить знания в разных областях: литература, спорт, авто, природа и т.д.

Этот бот понятный и несложный в применении. Здесь имеется всего три команды, проверить которые можно, набрав «Справка по пустякам». Для начала игры необходимо набрать «Начать по пустякам», а для выбора тематики заданий – «Категории по пустякам».


Guilded Bot

В представленном рейтинге перечислены только полезные боты для дискорда, одним из которых является Guilded Bot. Он незаменим для тех, кто играет в PUBG, DOTA2, World of Warcraft, Destiny, Overwatch и др. Он помогает привлекать новых участников в команду, повышать возможности и выполнять миссии совместными усилиями. В настройках Guilded доступно управление любыми действиями участников команды. Бот может быть применен также для оповещения пользователей об обновлениях, а за счет новых инструментов набора и планирования позволяют улучшить работу команды сервера в дальнейшем.


Pokecord Bot

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

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


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


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

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


Tatsumaki

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


Pancake

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

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


Одна из популярных функций, предоставляемых ботом – изменение голоса в Дискорде. Для этого есть на выбор сразу несколько программ. Помимо этого здесь есть возможность воспроизводить аудио файлы из таких источников как Ютуб, SoundCloud и др. Среди востребованных социальных функций – поиск шуток, изображений, а также различные игры. Более сотни команд позволяют сделать сервер гораздо функциональнее и привлекательнее.

Сыворотка

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

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


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

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


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

Команды для бота

Боты — специальные коды, созданные на базе API и используемые на серверах Дискорд. Они устанавливаются в программе и используются для расширения ее функционала. Сегодня существует много полезных Discord-ботов. Наиболее популярные — Mee6, Red, Dyno и другие. Все они отличаются по особенностям работы и функциональной начинке. При этом команды для ботов в Дискорде также отличаются. Эти данные необходимо изучать перед добавлением на официальной странице софта.

К примеру, Mee6 — универсальный бот, позволяющий создавать свои собственные команды и настраивать поздравление для участников.


Выделим несколько основных Дискорд-команд:

Команды чата

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


Как видно, Дискорд-команды чата больше направлены на оформление текста и исправление ошибок. Но их применение во многих случаях может оказаться полезным.

Горячие клавиши

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

  1. Войдите в программу Дискорд.
  2. Жмите на шестеренку внизу.
  3. Найдите слева пункт Горячие клавиши.
  4. Выберите необходимое действие в любом из полей.
  5. Введите в поле рядом нужную комбинацию.


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

При этом есть ряд клавиш, которые работают по умолчанию. К примеру, комбинация shift+` используется прямо в игре. В этом случае появляется список голосовых Дискорд-каналов и настройка оверлея. Комбинацию можно поменять в разделе настроек. После появления списка каналов жмите на левую кнопку мышки по участнику и поменяйте громкость.

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


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

Итоги

Теперь вы знаете, какие команды бывают в Discord, для чего их можно использовать, и чем они помогают пользователям. Главное — не упускать такую возможность и пользоваться ей во время общения или игры.

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