Настраиваемые интерфейсы и безопасные обновления
Настраиваемые интерфейсы и безопасные обновления
Администраторы получают более предсказуемую конфигурацию, безопасные миграции и каналы обновлений, а игроки — исправленные и более гибко настраиваемые клановые интерфейсы.
Новое
- Добавлены каналы обновлений
STABLE,BETAиALPHA. - Добавлен параметр
updateChannelс русским описанием назначения каждого канала. - Добавлен выбор самой новой допустимой версии по SemVer внутри выбранного канала.
- Добавлена автоматическая публикация GitHub prerelease для версий
-beta.Nи-alpha.N. - Добавлена скрытая настройка
autoUpdate: при отсутствии ключа автоматическое обновление включено; для отключения администратор может вручную добавитьautoUpdate: false. - Добавлена метрика выбранного канала обновлений.
- Добавлен
MenuConfigValidator, который проверяет обязательные GUI-ID, материалы, слоты, названия, описания и списки слотов. - Добавлен общий
ConfigValidatorдля опасных и противоречивых значений магазина, квестов, битв и казны. - Добавлены резервные
.bak-копии старыхquests.ymlиbattles.ymlперед schema migration. - Добавлены конфигурируемые параметры быстрых операций казны: суммы, слоты, timeout ввода и слова отмены.
- Добавлены конфигурационные меню
noClanMenu,clanColorMenuиtreasuryHistoryMenu. - Добавлены отдельные GUI-ID для заблокированного слота и декоративных элементов кланового сундука.
- Добавлены отдельные GUI-ID предупреждений об активной битве при выходе или роспуске клана.
Для игроков
- Улучшен экран игрока без клана: оформление теперь берётся из конфигурации, а не создаётся непосредственно в UX-коде.
- Улучшено меню визуальной метки соклановцев: цвета, состояния, материалы, названия и описания управляются конфигурацией.
- Улучшена история казны: карточки операций и навигация используют конфигурационные шаблоны и ID.
- Улучшены меню участников, прав пользователя, ролей, рейтинга и улучшений: удалены пустые fallback-предметы, которые могли отображаться как обычный
STONEбез названия и описания. - Улучшено клановое хранилище: заблокированные слоты и декоративные элементы теперь имеют собственные конфигурационные шаблоны.
- Улучшены сообщения создания клана и настройки визуальной метки: пользовательские тексты и звуки перенесены в стандартную Action-конфигурацию.
Для администраторов
menus.ymlтеперь автоматически дополняется отсутствующимиitems.<id>, а не только отсутствующими верхнеуровневыми разделами.- Backfill сравнивает существующий
menus.ymlс чистыми дефолтамиMenusConfig(), поэтому отсутствующие ID не теряются после десериализации старого файла. - После backfill конфигурация повторно загружается в тот же запуск, поэтому новые ключи доступны сразу без второго рестарта.
- Существующие значения администратора не заменяются при добавлении новых полей и GUI-ID.
- Неизвестные addon-ключи и большая часть структуры существующего YAML сохраняются вместо полного пересоздания файла.
/clan admin reloadиспользует тот же безопасный путь загрузки, миграции, backfill и валидации, что и запуск сервера.- Старые кастомные built-in квесты сохраняются при обновлении схемы и не заменяются дефолтными определениями.
- Кастомный
displayклановых битв сохраняется при schema migration. - При проблеме обязательного GUI-ID сервер выводит точный путь вида
menus.yml.<menu>.items.<id>вместо молчаливого создания пустого предмета. - Настройки казны больше не являются декоративными: быстрые суммы, слоты, timeout и cancel inputs реально используются интерфейсом.
- Удалён дополнительный захардкоженный звук казны; обратная связь управляется через Actions из конфигурации.
Улучшено
- Улучшена интеграция PlayerPoints: reflection теперь подбирает совместимую перегрузку
give,takeиlookпо типам аргументов, а не только по имени и количеству параметров. - Улучшена безопасность миграций конфигурации: перед изменением старой схемы сохраняется исходный файл, а пользовательские значения восстанавливаются поверх новых defaults.
- Улучшена конфигурационная архитектура GUI: пользовательские элементы используют экземпляры
GuiItemConfigпо стабильным ID вместо локальных названий, lore, материалов и слотов в UX-классах. - Улучшена валидация
entrySlots: проверяются диапазоны и повторяющиеся слоты. - Улучшена обработка отсутствующих шаблонов: GUI больше не подменяет их безымянными default-предметами.
- Улучшена система обновлений: проверка новых версий выполняется независимо от наличия старого
checkUpdates, а канал определяет допустимый уровень релиза.
Исправлено
- Исправлена миграция
quests.yml, которая могла перезаписать изменённые администратором встроенные квесты новыми дефолтами. - Исправлена миграция
battles.yml, которая могла сбросить кастомизированное отображение битв. - Исправлен backfill, который раньше не доходил до отдельных ключей внутри
items:. - Исправлен случай, когда
userPermissionsMenu.permissionотсутствовал как самостоятельный ключ и скрытно наследовался из другого меню. - Исправлены пустые
GuiItemConfig()fallback в редакторе ролей, правах ролей, рейтинге кланов и меню улучшений. - Исправлено хранение части lore подтверждения выхода и роспуска клана непосредственно в Kotlin-коде.
- Исправлена ситуация, когда новые настройки могли физически не появиться в существующем YAML и оставались доступны только через Kotlin-defaults.
- Исправлена совместимость новых конфигурационных изменений со сборками Java 21 и Java 25.
Удалено / заменено
- Удалены дополнительные
Supplemental*loaders и второй параллельный способ чтения конфигурации. - Удалены скрытые fallback-шаблоны GUI, которые маскировали отсутствующие ID.
- Удалена генерация старого
checkUpdatesкак пользовательского переключателя проверки обновлений. - Удалена генерация
autoUpdateиз обычного конфига; отсутствие параметра теперь означает включённое автообновление. - Заменено полное переписывание части YAML при backfill на точечное добавление отсутствующих полей и ID.
Важно
Это BETA-сборка для проверки новой конфигурационной архитектуры и миграций. Перед обновлением рекомендуется сохранить папку
plugins/pnClans; автоматические.bakсоздаются для старыхquests.ymlиbattles.yml, но ручная резервная копия всё равно полезна.
По умолчанию используется канал
BETA, поэтому сервер будет получать новые стабильные и beta-релизы. КаналSTABLEполучает только стабильные версии, аALPHA— любые опубликованные alpha, beta и stable-сборки. Draft-релизы игнорируются.
В этом beta-релизе закрыта проблема отсутствующих обязательных GUI-ID и пустых fallback-предметов. Полный перенос абсолютно всех оставшихся динамических фрагментов старых интерфейсов в конфигурацию продолжится в следующих beta-сборках.