Як улаштований 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 останніх ігор, які завершилися або були перервані. «Огляд» не оновлюється сам: перезавантажте сторінку, щоб побачити нову гру.