pnClans v1.2.0 — Pink Alliance: квесты и клановые битвы
Кратко
Версия расширяет клановые квесты, добавляет организованные битвы на аренах и вводит подробную статистику участников. Новые интерфейсы оформлены в общей стилистике pnClans и объясняют цели, прогресс, награды, условия боя и доступные действия.
После знакомства с обновлением присоединитесь к Discord: https://discord.gg/TFdnyvMft. Оставьте в канале «Отзывы» общий отзыв, сообщение о баге или ошибке либо идею для развития плагина.
Для игроков
- Расширен каталог с 3 до 17 встроенных квестов.
- Реализован общий прогресс квестов с зависимостями и автоматическими наградами.
- Переработано меню квестов с фильтрами, страницами, состояниями, прогрессом и подробным описанием каждой цели.
- Добавлены клановые битвы с вызовом соперника, подтверждением, ареной, ограниченной областью, лимитом убийств и таймером.
- Добавлены команды
/clan battle,/clan battle <клан>,/clan battle accept <challenge-id>и/clan battle decline <challenge-id>. - Добавлена команда
/clan stats [игрок] [day|week|month|all]для просмотра убийств, смертей и K/D участника текущего клана. - Добавлена статистика участника за день, текущую неделю, текущий месяц и всё время.
- Добавлено предупреждение о техническом поражении перед роспуском клана во время активной битвы.
Для администраторов
- Расширен файл
quests.ymlдля настройки циклов, клановых очков, получателей наград и оформления квестов. - Добавлен файл
battles.ymlдля настройки арен, точек появления, радиуса, длительности, размера составов, MMR и клановых очков. - Установлено значение
enabled: falseпо умолчанию вbattles.ymlдо явной настройки и проверки арены. - Добавлено требование
pnclans.adminдля всех команд/clan admin; право по умолчанию доступно операторам сервера. - Добавлена поддержка всех команд
/clan adminиз консоли. - Добавлено требование
ClanPerms.Action.START_BATTLEдля отправки, принятия и отклонения вызова. - Добавлена команда
/clan admin info <clan>для просмотра состояния клана. - Добавлена команда
/clan admin stats <player> [day|week|month|all]для просмотра статистики участника. - Добавлена команда
/clan admin mmr <add|remove|set> <clan> <amount>. - Добавлена команда
/clan admin bank <add|remove|set> <clan> <amount>с алиасомtreasury. - Добавлена команда
/clan admin points <add|remove|set> <clan> <amount>. - Добавлена команда
/clan admin level set <clan> <1..5>. - Добавлена команда
/clan admin member remove <player>с защитой лидера от случайного удаления. - Добавлена команда
/clan admin quest reset <clan> <quest-id>. - Добавлена команда
/clan admin battle stop <clan> [winner-clan]. - Добавлены команды
/clan admin saveи/clan admin reload. - Добавлено журналирование административных изменений в консоль сервера.
- Добавлено приглашение в Discord в конце успешного запуска плагина с предложением создать тему на форуме или написать в чат.
Для разработчиков
- Повышена версия публичного API с
4до5. - Подключена отправка отменяемых
ClanQuestProgressEventиClanQuestCompleteEvent. - Добавлено поле
actorв события прогресса и завершения квеста. - Сохранены прежние JVM-конструкторы событий квестов через
@JvmOverloads. - Добавлены публичные типы
ClanQuestProgress,ClanBattleиClanBattleEndReason. - Расширен интерфейс
Clan: добавленыbattleWins,battleLosses,questProgressиsetQuestProgress(). - Добавлены отменяемые события
ClanBattleChallengeEventиClanBattleStartEvent. - Добавлено итоговое событие
ClanBattleEndEvent. - Добавлен источник транзакций
ClanPointsSource.BATTLE. - Добавлено клановое право
ClanPerms.Action.START_BATTLE. - Добавлено значение
BATTLESдляOpenGuiAction. - Добавлена причина отказа
ClanOperationRejection.PERSISTENCE_FAILEDдля операций, которые не удалось сохранить. - Добавлены PlaceholderAPI-ключи
%pnclans_battle_wins%и%pnclans_battle_losses%. - Добавлены PlaceholderAPI-алиасы
%pnclans_wins%и%pnclans_losses%. - Добавлены внутренние ключи
{clan_battle_wins}и{clan_battle_losses}для сообщений и GUI. - Добавлено сохранение прогресса квестов в JSON и SQLite.
- Добавлено сохранение суммарных побед и поражений в битвах в JSON и SQLite.
- Добавлено сохранение ежедневной статистики убийств и смертей в JSON и SQLite.
Добавлено
- Добавлены цели квестов для вступлений, домов, казны, магазина, участия в битвах, побед, убийств и урона на арене.
- Добавлены однократные, ежедневные и недельные циклы пользовательских квестов по UTC.
- Добавлены получатели
ACTOR,LEADERиONLINE_MEMBERSдля настраиваемыхAction-наград. - Добавлено начисление
rewardPointsнепосредственно клану независимо от получателяAction-наград. - Добавлен подбор соперников с учётом онлайна, активных матчей и ожидающих вызовов.
- Добавлено резервирование арены за одним активным матчем.
- Добавлено удержание участников внутри настроенного радиуса арены.
- Добавлен возврат участников на исходные позиции после боя, выхода из клана или следующего входа на сервер.
- Добавлено сохранение инвентаря, уровня и опыта после смерти в клановой битве.
- Добавлена защита участников битвы от урона союзников и посторонних игроков.
Изменено
- Переработаны названия и описания новых предметов и кнопок по общей палитре и структуре GUI pnClans.
- Изменено расположение карточек квестов: они занимают только внутренние слоты декоративной рамки.
- Установлено расположение карточек соперников только во внутренних слотах декоративной рамки.
- Изменён подсчёт требований уровней: повторные циклы учитываются как отдельные завершения.
- Изменены зависимости квестов: однажды завершённый квест постоянно открывает следующий.
- Изменено поведение
quests.ymlсenabled: false: прогресс и награды останавливаются, а требования магазина и уровней отключаются. - Изменено меню магазина: обязательные квесты показываются перед финальной строкой действия.
- Изменены убийства на арене: они обновляют общую статистику и обычные PvP-квесты, но не применяют базовые изменения MMR и
clanPointsPerPlayerKillповерх боевых наград. - Изменено сохранение игрового времени: административное сохранение создаёт контрольную точку и не завершает активную сессию игрока.
- Изменены карточки участников для явного обозначения формата убийств и смертей и расчёта периодов по UTC.
Исправлено
- Исправлена миграция существующего
quests.ymlбез поляschemaVersion. - Исправлена проверка обязательных квестов при покупке товара.
- Исправлена проверка завершений квестов при повышении уровня клана.
- Исправлено значение
kickedвClanMemberLeaveEventпри исключении участника. - Исправлена нормализация регистра идентификаторов клановых домов.
Совместимость
- Сохранена загрузка существующих данных кланов: новые счётчики получают
0, а новые карты прогресса и статистики остаются пустыми. - Сохранена совместимость старых конструкторов событий квестов для уже собранных аддонов.
- Требуется обработать
ClanPointsSource.BATTLEв аддонах с исчерпывающимwhenпо источникам очков. - Проверена сборка pnClans и примера аддона для Java
21и Java25.
Миграция
- Создайте резервную копию всей папки
plugins/pnClans, включая базу данных, данные сундуков и YAML-конфигурации. - Замените JAR плагина и выполните первый запуск без игроков на сервере.
- Оставьте
enabled: falseвbattles.yml, укажите точный мир, безопасные точкиchallengerиdefenderи подходящийradius, затем проверьте арену перед включением битв. - Проверьте встроенные квесты, награды и пользовательские идентификаторы в обновлённом
quests.yml. - Проверьте все значения
conditions.requiredQuestsвshop.yml: каждый идентификатор должен существовать вquests.yml. - Перенесите новые строки главной сводки, карточек состава и требований уровней из стандартного
menus.ymlверсии 1.2.0, если используется существующий настроенный файл. - Перенесите разделы
quests,battlesиupgrade.insufficientQuestsиз стандартногоmessages.yml, если требуется изменить встроенные тексты и звуки. - Перекомпилируйте аддоны против API
5, если они используют новые типы, события или поля.
Важно
При миграции
quests.ymlзаменяются весь разделdisplayи квесты со встроенными идентификаторами. Сохраняются квесты с дополнительными пользовательскими идентификаторами.
При миграции
battles.ymlзаменяется разделdisplay, а значениеenabled, правила и арены сохраняются. Обязательно проверьте старое значениеenabledдо входа игроков.
Статистика за день, неделю и месяц начинает накапливаться после обновления. Период
allсохраняет прежние суммарные убийства и смерти.
Действия, выполненные до обновления, не засчитываются в квесты: существующие кланы начинают с нулевого прогресса.
Активные битвы, ожидающие вызовы и история отдельных матчей между перезапусками не сохраняются. При штатной остановке активный матч завершается без результата и наград, а позиции участников восстанавливаются при следующем входе.
Перезагрузка конфигурации блокируется во время активной битвы. Сначала завершите матч обычным способом или командой
/clan admin battle stop.
Успешная команда
/clan admin reloadочищает все ожидающие боевые вызовы.
Изменение
storageTypeчерез/clan admin reloadне переключает активное хранилище. Для смены JSON и SQLite требуется полный перезапуск сервера; данные автоматически между хранилищами не переносятся.
Используйте для арен отдельный защищённый регион или мир. pnClans ограничивает участников радиусом и блокирует прямой PvP с посторонними, но не заменяет полноценный плагин защиты регионов.
Получатель
LEADERдляAction-награды срабатывает только тогда, когда лидер находится онлайн. КлановыеrewardPointsначисляются независимо от онлайна лидера.
