Кто такой Хугинн?

В деятельности сообщества мы стремимся использовать современные технологии для автоматизации ряда организационных процессов. Так несколько лет назад появился чат-бот для Discord - Хугинн. Недавно мы существенно обновили его, полностью переработав код, и добавив новый функционал.

В скандинавской мифологии Хугин и Мунин — пара воронов, которые летают по всему миру и сообщают богу Одину о происходящем. На древнеисландском Huginn означает «мыслящий», а Muninn — «помнящий». Бот Хугинн хранит истории о подвигах Викингов, и сообщает им о важнейших событиях в жизни сообщества.

Инструкция по установке и настройке бота, а также исходный код доступны в нашем репозитории: https://github.com/Viruviking/discordbot

Возможности бота

Система достижений

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

/profile

Параметры

  • target_user - пользователь канала, для которого будет показан профиль Системы достижений

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

Пользователи с ролью модератора или администратора могут просмотреть свой профиль или профиль другого участника Системы достижений. Остальные пользователи смогут просмотреть только свой профиль.

/addcoins

Параметры

  • target_user - пользователь канала, к профилю которого будет применена команда
  • coins_amount - количество монет, добавляемых пользователю

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

/adduser

Параметры

  • target_user - пользователь канала, для которого будет добавлен профиль Системы достижений

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

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

Команда доступна только пользователям с ролью модератора или администратора.

/levelup

Параметры

  • target_user - пользователь канала, к профилю которого будет применена команда
  • achievement_code - код достижения, которое будет выдано указанному пользователю

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

Коды достижений для сообщества Викингов Вирумаа можно посмотреть на странице: Список достижений для Викингов Вирумаа

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

Команда доступна только пользователям с ролью модератора или администратора.

События сообщества

Бот может создавать несколько типов событий сообщества: «Мероприятия» и «Квесты». Предполагается что мероприятия - это события с конкретным местом и временем проведения, вероятнее всего, с физическим присутствием участников сообщества на месте. Квесты - по сути задания, которые участники могут выполнять в любом подходящем им месте и в любое подходящее им время, однако в строго определенный период времени (этим они отличаются от Достижений).

В момент создания Событие, а также его дата проведения (в случае «Квеста» - срок исполнения), регистрируются в базе данных. Бот ожидает регистрации участников События до указанной даты проведения (срока исполнения). Бот не позволит создать новое Событие в том случае, если в системе уже зарегистрировано Событие выбранного типа, дата проведения (дата исполнения) которого еще не прошла. Таким образом, Бот позволяет осуществлять регистрацию участников только на одно событие каждого типа («Мероприятия», «Квесты») единовременно.

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

/addevent [event_type: Событие]

Параметры

  • event_type - тип события: Мероприятие или Квест.

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

Дата должна быть указана в формате DD/MM/YYYY HH:mm. Указанные дата и время служат сроком завершения регистрации участников на мероприятие.

После отправки формы, в канал уведомлений придет сообщение с упомянутой в нём ролью. Идентификатор роли (ID) должен быть указан в файле конфигурации, в качестве значения параметра event_notify_role_id. Под сообщением будут размещены кнопки «Участвую» и «Не участвую» - для регистрации на мероприятие или отказа от участия в нём.

По нажатии на кнопку «Участвую» пользователь будет зарегистрирован в БД в качестве участника мероприятия и получит соответствующие уведомление.

По нажатии на кнопку «Не участвую» пользователь будет зарегистрирован как «Отказавшийся от участия» и также получит соответствующее уведомление.

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

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

/addevent [event_type: Квест]

Параметры

  • event_type - тип события: Мероприятие или Квест.

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

Дата должна быть указана в формате DD/MM/YYYY HH:mm. Указанные дата и время служат сроком завершения регистрации участников на квест.

После отправки формы, в канал уведомлений придет сообщение с информацией о квесте. Под сообщением будут размещена кнопка «Принять» - для регистрации на участие в квесте.

По нажатии на кнопку «Принять» пользователь будет зарегистрирован в БД в качестве участника квеста и получит соответствующие уведомление. Пользователь не может изменить свое решение касательно участия в квесте.

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

Информация для участников сообщества Викинги Вирумаа: Как работают Квесты от ворона Хугинна?

/listevent [event_type: Событие]

Параметры

  • event_type - тип события: Мероприятие или Квест.

Команда показывает список зарегистрированных участников, а также отказавшихся от участия в Мероприятии, для которого в данный момент открыта регистрация, либо для последнего мероприятия, созданного при помощи Бота (в том случае, если дата мероприятия уже прошла). Результат вывода команды будет показан пользователю, вызвавшему её. Команда доступна только для пользователей с ролью модератора или администратора.

В случае, если пользователь изменил решение касательно участия в мероприятии (или отказа от участия в нём), в списке будет отражено последнее решение пользователя.

/listevent [event_type: Квест]

Параметры

  • event_type - тип события: Мероприятие или Квест.

Команда показывает список зарегистрированных участников Квеста, для которого в данный момент открыта регистрация, либо для последнего Квеста, созданного при помощи Бота (в том случае, если срок выполнения уже прошел). Результат вывода команды будет показан пользователю, вызвавшему её. Команда доступна только для пользователей с ролью модератора или администратора.

Случайные действия

/roll

Параметры

  • dice_type - тип кубика (дайсе): [d4|d6|d8|d12|d20]
  • private - скрыть результат: [True|False]

Команда показывает случайное значение кубика (дайса) выбранного типа.

/card

Параметры

  • private - скрыть результат: [True|False]

Команда показывает случайную карту из колоды в 54 карты.

Сообщить об ошибке или предложить идею

Код Бота предоставляется в рамках стандартной лицензии GNU. Это означает что Вы можете использовать исходный код Бота и/или видоизменять его под нужды собственного проекта.

К сожалению, мы не оказываем техническую поддержку по вопросам настройки и запуска Бота на сторонних серверах Discord. Также мы не можем гарантировать постоянную доступность сервисов Sunfox.ee, на которых размещены ресурсы (в основном, изображения), используемые для работы Бота.

Сообщить об ошибке в работе Бота Huginn можно на соответствующей странице репозитория: https://github.com/Viruviking/discordbot/issues. Там же можно сделать предложение по его улучшению.

Войти