Skip to content

Процесс Ally в Discord

Конвейер Ally — стандартный способ для участника гильдии-партнёра подать заявку как союзник через Discord. Это структурный близнец процесса Записаться — один клик кандидата открывает приватный тикет проверки, проверяющий запускает короткий мастер, чтобы подтвердить, за какого персонажа подаётся заявка, и архивный транскрипт попадает в форум при закрытии.

Эта страница разбирает весь конвейер с точки зрения каждой роли — владелец настраивает, кандидат-союзник нажимает кнопку, проверяющий выполняет slash-команды. Форма почти идентична Записаться; раздел Отличия от Записаться в конце указывает на специфику Ally.

Предварительные условия

  • Бот соединён с вашей гильдией AO Master — см. Установка + соединение.
  • Ваша гильдия на тире Pro или выше (конвейер Альянс ограничен тиром).
  • Человек, выполняющий настройку, является Discord-владельцем сервера или имеет право Manage Integrations в AO Master.
  • Существует одна Discord-роль, которая будет выступать «проверяющей» — любой с этой ролью может действовать с тикетами. Создайте её в Discord заранее, если ещё нет.

1. Владелец — настройка хаба Ally

Хаб Ally создаётся из того же канала #⚙️-guild-settings, что и Записаться. Закреплённое сообщение Guild Settings теперь имеет четыре кнопки в первой строке: [🔍 View Config] [🎯 Manage Enlist] [💰 Manage Regear] [🤝 Enable Ally].

Нажмите зелёную кнопку 🤝 Enable Ally. Появится эфемерная панель со статусом «Not set up» и единственной рабочей кнопкой — ⚙ Setup.

Мастер настройки (2 шага)

Мастер идентичен по форме мастеру настройки Записаться (тот же двухшаговый паттерн, описанный в Процессе Записаться):

  1. Pick reviewer Discord roles — выпадающий список с мультивыбором Discord-ролей вашего сервера с количеством участников в реальном времени. Мастер отказывает в выборе @everyone и управляемых ботом ролей. Любой с одной из выбранных ролей будет видеть тикеты союзников и сможет запускать /ally review / /ally reject / /ally done.
  2. Confirm — краткая карточка подтверждения с перечнем того, что будет создано: канал #🤝-ally-here + категория 🤝 Ally, плюс закреплённая кнопка [Apply as Ally]. Нажмите ✅ Confirm.

Примерно через 5 секунд панель перерисовывается в полную панель управления Manage Ally.

Панель управления Manage Ally

Постнастроечная панель отражает панель Manage Enlist с дополнениями, специфичными для Ally, внизу. Кнопки включают:

  • ⚙ Reconfigure — повторно запустить выбор ролей проверяющих.
  • ? Edit Questions — изменить вопросы заявки для кандидатов-союзников. (Общий редактор; те же вопросы отображаются и на web-странице /ally/<code>.)
  • 📝 Edit Template / ✏️ Edit Ally Message / ✏️ Edit Ticket Message / ✏️ Edit Ally Button — настроить тело закреплённого сообщения, приветственное сообщение внутри каждого тикета, метку кнопки.
  • 📋 Map Ally Channel / 📂 Map Ticket Category — направить закреплённую кнопку или новые тикеты на существующие Discord-каналы / категории вместо автосозданных.
  • 🚫 Pause Ally — прекратить приём новых кандидатов, но оставить текущие тикеты открытыми.
  • 🔄 Refresh Pinned — перерисовать закреплённое сообщение [Apply as Ally] в #🤝-ally-here.
  • 🎮 Auto-Name: OFF / ON — переключить переименование Discord-никнейма при одобрении (по умолчанию ON).
  • 🔧 Rebuild — автоматически отклонить всех ожидающих кандидатов-союзников + очистить канал #🤝-ally-here и категорию 🤝 Ally + пересоздать их. Роли проверяющих + настройки сообщений сохраняются.
  • 🗑 Disable Ally — очистить всю конфигурацию Ally Discord-стороны. Каналы Discord остаются, но становятся неуправляемыми. Обратимо повторным запуском настройки.

Каждую настройку можно также изменить на web-стороне в #Интеграция Discord → Integrations → Ally (см. Интеграция Discord). Изменения синхронизируются в обе стороны в реальном времени.


2. Кандидат-союзник — нажимает [Apply as Ally]

Для всех за пределами гильдии единственный видимый канал внутри категории 🤝 Ally — это #🤝-ally-here. В закреплённом сообщении есть кнопка [Apply as Ally] (или ваша пользовательская метка).

Когда кандидат нажимает кнопку:

  1. Бот создаёт приватный канал по шаблону имени тикета (по умолчанию 🤝-ally-<discord-username>). Видеть его могут только кандидат + роли проверяющих.
  2. Бот публикует Welcome message в начале тикета — пользовательское вступление принимающей гильдии + вопросы заявки, если они заданы.
  3. Бот отвечает эфемерным nudge, направляя кандидата отвечать на вопросы в тикете.

Кандидат вводит ответы как обычные Discord-сообщения. Проверяющие видят эти сообщения в тикете; ответы не хранятся в базе данных AO Master (они живут только в транскрипте Discord).


3. Проверяющий — /ally review, /ally reject, /ally done

Три slash-команды охватывают всю сторону проверяющего. Все три ограничены ролями проверяющих, установленными в панели Manage Ally.

/ally review

Выполняется внутри канала-тикета союзника. Открывает мастер:

  1. Pick character from alliance — выпадающий список персонажей из ваших гильдий-партнёров альянса. Кандидат заявляет, за какого персонажа подаёт заявку; список ограничен гильдиями-партнёрами альянса, чтобы проверяющий не мог случайно одобрить кого-то из гильдии, не являющейся партнёром.
  2. Confirm — сводная карточка показывает выбранного персонажа + его исходную гильдию-партнёра (определяется в реальном времени из API Albion). Нажмите ✅ Confirm.

После подтверждения:

  • Строка союзника добавляется в #Allies на web-стороне AO Master (статус: Linked).
  • Бот добавляет роль AO Ally к Discord-аккаунту кандидата (создаётся автоматически при первом включении Ally; цвет соответствует настроенному чипу Ally Role).
  • Если для выбранной исходной гильдии существует маппинг Partner Role, бот также выдаёт эту роль (напр., кандидат из «Cozy Chilipi» получает и AO Ally, и роль Cozy Chilipi).
  • Если Auto-Name включён, бот переименовывает Discord-никнейм кандидата в соответствии с выбранным персонажем Albion.

/ally reject

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

/ally reject user:@<applicant> reason:<optional reason>
  • Ожидающая заявка кандидата меняется на Rejected.
  • Бот отправляет кандидату DM с причиной (или стандартной, если вы её не указали).
  • Тикет закрывается немедленно; транскрипт НЕ архивируется (отклонённые закрытия пропускают архивный форум по замыслу — отклонённые тикеты являются шумом).

/ally done

Выполняется внутри тикета ПОСЛЕ того, как /ally review одобрил кандидата. Происходят два действия:

  1. Полная переписка тикета зеркалируется — с оригинальными именами авторов + аватарами + каждым прикреплённым файлом — в приватный форум-тред внутри форум-канала 🗄-ally-archive. Форум и webhook, который бот использует для публикации в него, создаются автоматически при первом запуске /ally done (гильдия, которая никогда ничего не архивирует, не несёт пустой форум вокруг).
  2. Канал-тикет удаляется.

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


4. Отличия от Записаться

Два конвейера используют одну и ту же структурную основу, но у Ally есть несколько особенностей, которых нет в Записаться:

АспектЗаписатьсяAlly
Ограничение тиромFree тир и вышеPro тир и выше
Выбор персонажаТекстовый поиск по AlbionВыбор из реестра альянса (ограничен гильдиями-партнёрами)
Выдача роли при одобренииDiscord-роль из таблицы маппингаУниверсальная роль AO Ally + опциональная Partner Role на основе исходной гильдии
Визуальный маркер на webОбычная роль AO MasterAlly Role chip (метка + цвет)
Канал реестра на web#Members#Allies
Проверка дезертирстванетЕжедневная проверка; меняет статус на Left alliance, когда исходная гильдия союзника покидает альянс — см. Ally Role Sync
Slash-команды/enlist review, /enlist reject, /enlist done/ally review, /ally reject, /ally done
Канал закреплённой кнопки по умолчанию#📋-enlist-here#🤝-ally-here
Префикс канала-тикета🎯-enlist-…🤝-ally-…
Архивный форумapply-archive🗄-ally-archive

Всё, что не указано в таблице, работает одинаково — тот же паттерн мастера настройки, тот же макет панели, тот же поток архивного транскрипта, та же семантика Pause / Rebuild / Disable.


5. Когда функция Альянс «приостановлена»

Альянс ограничен тиром Pro. Если ваша гильдия опускается с Pro на более низкий тир (истекает подписка, понижение тира), конвейер входит в режим приостановки:

  • Кнопка 🤝 Enable Ally в #⚙️-guild-settings заменяется затемнённым состоянием [🔒 Alliance — Pro tier needed].
  • Существующие тикеты союзников остаются открытыми, но новые кандидаты не могут подать заявку.
  • Проверка дезертирства приостанавливается (ваш реестр не меняется только из-за снижения тира).
  • Существующие союзники сохраняют роль AO Ally и строку в реестре.

Восстановление тира Pro автоматически возвращает конвейер к активному состоянию — повторная настройка не нужна.


6. Зеркало на web-стороне

Каждая настройка в панели Manage Ally Discord также находится в #Интеграция Discord → Integrations → Ally на web (см. Интеграция Discord). Кросс-поверхностные настройки (переключатель Receive new applicants, Custom apply questions, чип Ally Role) находятся в Настройки → Набор (внешняя вкладка Ally) и также отображаются на странице Ally в Интеграции Discord под карточкой Related settings.

Выбирайте любую удобную поверхность — они синхронизируются в реальном времени по одному каналу.