Перейти до змісту

Як улаштований CivBot

CivBot — бот у Discord, який веде гру Civilization V від кнопки на панелі гри до треду гри й результату. Тут показано, де з'являються картки й треди, хто їх бачить, що показує й дозволяє сайт CivBot і де шукати гру, коли її картка зникла з каналу збору ігор.

Роль CivBot

Гра проходить через п'ять місць у Discord і на сайті:

  • Панель гри — гравець натискає на ній «FFA» або «Duel» і приватно обирає тип гри.
  • Картка збору — з'являється в каналі збору ігор; на ній гравці записуються, банять нації й натискають «Готовий».
  • Тред гри — під час старту картка збору зникає, а в каналі історії ігор з'являється публічний тред гри. У треді обирають нації й записують результат командою /гра завершити (/game finish). На сервері, з яким працює сайт, у тред можна кинути й файл сейву; подробиці — Сейв у треді гри.
  • Таблиця лідерів — завершена гра FFA змінює рейтинг гравців, і таблиця лідерів показує його після найближчого щогодинного оновлення.
  • Сайт CivBot — після входу через Discord там видно ігри сервера, з яким працює сайт, сторінку кожної гри та профіль кожного гравця. Гравець гри може на сайті ще й завершити гру, обрати націю та додати сейв.
flowchart TD
    M(["Модератор"]) -- "ставить командою /moderator panel" --> P["Панель гри"]
    G(["Гравець"]) -- "натискає «FFA» чи «Duel»" --> P
    P -- "відкриває збір" --> C["Картка збору"]
    C -- "учасник або модератор натискає «Старт…»" --> T["Тред гри"]
    T -- "учасник або модератор виконує /гра завершити" --> R["Результат"]
    R -- "у FFA змінює" --> RT["Рейтинг"]
    RT -- "щогодини потрапляє в" --> L["Таблиця лідерів"]
    T -- "гра з'являється на" --> S["Сайт CivBot"]
    R -- "показується на" --> S
    S -- "гравець гри завершує гру" --> R

Діаграма показує лише головний шлях гри: каналу сповіщень, журналу подій і приватних відповідей бота на ній немає.

Що входить

Місце Що там видно Хто налаштовує
Панель гри Кнопки «FFA», «Duel», «Статистика гравця», «Інформація» і список останніх ігор Модератор командою /moderator panel
Канал збору ігор Картки зборів із кнопками Адміністратор сервера командою /guild config
Канал історії ігор Публічний тред кожної гри, що стартувала Адміністратор сервера командою /guild config
Тред гри Картка гри, вибір націй і результат; на сервері, з яким працює сайт, — ще й сейви, які кинули в тред Бот, під час старту гри
Канал таблиці лідерів Таблиця лідерів поточного сезону Модератор командою /leaderboard show
Канал сповіщень Сповіщення про збори, яким бракує гравців Модератор командою /guild notifications configure
Журнал подій Записи про події зборів і ігор Модератор командою /guild log_channel
Приватні відповіді Меню й відповіді, які бачите лише ви —
Сайт CivBot «Огляд», «Ігри», «Інспектор сейвів», сторінка гри та профіль гравця після входу через Discord —

Панель гри

Панель гри — повідомлення, з якого починається кожна гра. Модератор ставить її командою /moderator panel, і панель з'являється в тому каналі, де він виконав команду. На сервері панель одна: нова команда прибирає попередню.

Кнопки панелі доступні всім. «FFA» і «Duel» створюють гру, а «Статистика гравця» приватно показує статистику обраного гравця. «Інформація» приватно показує картку з рядками «Каналу історії ігор: #…» і «Каналу збору ігор: #…».

Над кнопками — список до 15 останніх ігор сервера, що вже стартували. У рядку видно значок стану, номер, режим, тип і гравців, а позначка «>>» веде в тред гри. Список оновлюється кожні 5 хвилин, а також після старту, завершення чи переривання гри. Подробиці — Панель гри.

Канал збору ігор і канал історії ігор

Коли гравець створює гру, картка збору з'являється в каналі збору ігор. Якщо панель стоїть в іншому каналі, бот приватно надсилає посилання на картку, і воно зникає через 60 с.

Під час старту картка збору зникає. Гра отримує номер, а в каналі історії ігор з'являється її публічний тред із назвою на кшталт «248 — FFA 6 Patch». У першому повідомленні треду бот згадує всіх гравців, і Discord додає їх у тред. Тред лишається в каналі історії ігор і після завершення чи переривання гри. Подробиці — Тред гри.

Таблиця лідерів, сповіщення й журнал подій

Таблицю лідерів модератор ставить командою /leaderboard show: вона з'являється в тому каналі, де він виконав команду, а попередня зникає. Щогодини бот оновлює таблицю. У ній до 15 учасників сервера з найвищим рейтингом серед тих, хто в поточному сезоні зіграв хоча б одну завершену гру FFA. Подробиці — Таблиця лідерів.

Канал сповіщень модератор задає командою /guild notifications configure. Туди приходять сповіщення, які учасник збору чи модератор надсилає кнопкою «Сповістити про збір» на картці збору. Заголовок сповіщення, наприклад «+3 FFA6 Збір», веде на картку збору. Подробиці — Сповіщення про збір.

Журнал подій модератор вмикає командою /guild log_channel, вказавши канал. Бот записує туди створення гри, вхід і вихід гравців, вигнання, скасування збору й переривання гри, обмін слотами й сповіщення про збір. Старт і завершення гри в журнал не потрапляють. Хто читає журнал, залежить від прав цього каналу в Discord. Подробиці — Журнал подій.

Сайт CivBot

Сайт показує ігри, веде сторінку кожної гри та профіль кожного гравця й розбирає сейви Civilization V. Без входу відкрита головна сторінка: на ній видно вітрину екранів сайту й можна переглянути сейв у скороченому вигляді. Список ігор, сторінка гри й профіль гравця без входу ведуть на вхід через Discord. Увійти можна кнопкою «Увійти через Discord»: сайт просить у Discord лише базові дані облікового запису, без пошти й списку серверів. Після входу відкриваються три розділи:

  • «Огляд» — блоки «Мої останні ігри», «Поточні ігри» й «Останні результати», а також «Ваш тиждень», «Цей місяць» і «Таблиця лідерів» сезону;
  • «Ігри» — список ігор сервера з вибором гравців і перемикачем «Мої ігри»; подробиці — Ігри на сайті;
  • «Інспектор сейвів» — повний розбір файлу .Civ5Save з графіками хід за ходом.

Поле «Шукати гравців або номер гри…» у шапці працює на кожній сторінці: його відкриває клавіша «/». Номер гри веде на сторінку гри, ім'я гравця — на профіль.

Сторінку гри й профіль гравця бачить кожен, хто ввійшов. Міняти гру на сайті можуть лише її гравці, тобто ті, хто має місце в ній: завершити гру, обрати націю місцю, прикріпити сейв, зіставити гравців сейву та знайти лобі в Steam. Модератор без місця в грі на сайті лише дивиться, а керує грою в Discord. Подробиці — Сторінка гри, Завершення гри на сайті, Сейви гри на сайті.

«Огляд» показує лише ігри сервера, з яким працює сайт, і лише ті, що вже стартували. Подробиці — Сайт CivBot.

Зв'язок сайту з Discord

Це діє на сервері, з яким працює сайт. Під карткою гри в треді є кнопка «На сайті» (на картці завершеної гри — «Результати на сайті»), що веде на сторінку гри. Гру, завершену на сайті, бот перемальовує в треді. У меню застосунків учасника сервера є пункт «Профіль на сайті»: бот приватно надсилає посилання на профіль гравця. Подробиці — Профіль гравця.

З чим пов'язане

  • Гра — проходить шлях від картки збору до треду гри й результату; подробиці — Гра.
  • Ролі — панель гри, канали, таблицю лідерів і журнал налаштовують модератори й адміністратори; подробиці — Гравці, модератори й адміністратори.
  • Підключення бота — канали збору й історії ігор задають, коли бота підключають до сервера; подробиці — Підключення CivBot до сервера.
  • Рейтинг — завершена гра FFA змінює рейтинг, а таблиця лідерів його показує; подробиці — Як рахується рейтинг.

Правила

Публічні повідомлення бачать усі, приватні відповіді — лише адресат

Панель гри, картку збору, тред гри, таблицю лідерів і сповіщення бачить кожен, хто має доступ до їхнього каналу. Статистика з команди /stats show теж публічна: вона з'являється в каналі.

Приватну відповідь бачить лише той, кому бот її надіслав. Приватно приходять:

  • повідомлення «Оберіть тип гри» після кнопок «FFA» чи «Duel»;
  • меню, які відкривають кнопки «Бани» й «Вигнати»;
  • відповіді на кнопки «Статистика гравця» й «Інформація» панелі гри;
  • відмови на кшталт «У вас немає доступу до цієї дії.» і відповіді на /гра завершити.

Частина приватних відповідей зникає сама: наприклад, посилання на нову картку збору — через 60 с. Подробиці — Ліміти й таймери.

Публічні повідомлення бот пише мовою сервера

Картки, панель гри, журнал подій і сповіщення бот пише основною мовою сервера в Discord. Те, що людина відкриває сама, приходить мовою її клієнта Discord: повідомлення «Оберіть тип гри», меню кнопок «Бани» й «Вигнати» та відповіді на кнопки «Статистика гравця» й «Інформація». Відмови на кнопках картки збору й треду гри, як-от «У вас немає доступу до цієї дії.» чи «Ця гра завершилась або була видалена. Створіть нову гру.», приходять мовою сервера. Бот пише українською, російською й англійською, а коли мова сервера чи клієнта Discord інша — англійською.

Деякі написи однакові на всіх серверах: таблиця лідерів має російський заголовок «Топ игроков» і англійські назви стовпців «Rating», «Wins» і «Games», а /гра завершити відповідає англійською «Done!». В українському клієнті Discord перекладено лише назви /гра завершити і /гра оновити (/game refresh), решта команд мають тільки англійські назви. Сайт має власне меню мови з пунктами «English», «Українська» й «Русский». Подробиці — Мова бота.

Що може піти не так

  • Картка збору зникла з каналу збору ігор. Якщо гра стартувала, шукайте її тред у каналі історії ігор: назва треду починається з номера гри. Якщо збір скасували або 3 години ніхто не натискав його кнопок, створіть нову гру на панелі гри.
  • Ви не знаєте, де канал збору ігор і канал історії ігор. Натисніть «Інформація» на панелі гри: у приватній картці названо обидва канали.
  • Тред гри зник зі списку каналів. Тред, у якому добу ніхто не писав, архівується, а гра від цього не змінюється. Знайдіть його серед архівних тредів каналу історії ігор: назва треду починається з номера гри.
  • Таблиця лідерів не змінилася після гри. Таблиця оновлюється раз на годину. Рейтинг змінюють лише завершені ігри FFA, а гра Duel і перервана гра його не змінюють.
  • Гри немає на сайті. Сайт показує лише ігри сервера, з яким він працює, і лише ті, що вже стартували. Блок «Мої останні ігри» показує до 3 ваших найновіших ігор. «Поточні ігри» враховують до 20 ігор, що стартували за останні 48 годин і ще тривають: у блоці видно 5 з них, а решту підписано рядком на кшталт «Ще 3 гри в процесі». «Останні результати» показують до 10 останніх ігор, які завершилися або були перервані. «Огляд» не оновлюється сам: перезавантажте сторінку, щоб побачити нову гру.

Пов'язане