Skip to content

pnClans v1.2.0 — Pink Alliance: квесты и клановые битвы

Choose a tag to compare

@overdyn overdyn released this 12 Aug 00:48
· 7 commits to main since this release

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 и Java 25.

Миграция

  1. Создайте резервную копию всей папки plugins/pnClans, включая базу данных, данные сундуков и YAML-конфигурации.
  2. Замените JAR плагина и выполните первый запуск без игроков на сервере.
  3. Оставьте enabled: false в battles.yml, укажите точный мир, безопасные точки challenger и defender и подходящий radius, затем проверьте арену перед включением битв.
  4. Проверьте встроенные квесты, награды и пользовательские идентификаторы в обновлённом quests.yml.
  5. Проверьте все значения conditions.requiredQuests в shop.yml: каждый идентификатор должен существовать в quests.yml.
  6. Перенесите новые строки главной сводки, карточек состава и требований уровней из стандартного menus.yml версии 1.2.0, если используется существующий настроенный файл.
  7. Перенесите разделы quests, battles и upgrade.insufficientQuests из стандартного messages.yml, если требуется изменить встроенные тексты и звуки.
  8. Перекомпилируйте аддоны против 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 начисляются независимо от онлайна лидера.