
Paginated Advancements & Custom Frames — Minecraft Java Edition 1.18.1 - 26.1+
Зависимости · Загрузчик: Fabric, NeoForge, Quilt · Версия Minecraft: 1.18.1 - 26.1+ · Версия мода: 2.8.2 · Обязательные зависимости: Fabric…
Зависимости · Загрузчик: Fabric, NeoForge, Quilt · Версия Minecraft: 1.18.1 - 26.1+ · Версия мода: 2.8.2 · Обязательные зависимости: Fabric API, Cloth Config API (для версий Fabric/Quilt и NeoForge до 2.8.0) Ванильный и
Зависимости
· Загрузчик: Fabric, NeoForge, Quilt
· Версия Minecraft: 1.18.1 - 26.1+
· Версия мода: 2.8.2
· Обязательные зависимости: Fabric API, Cloth Config API (для версий Fabric/Quilt и NeoForge до 2.8.0)
Ванильный интерфейс достижений ограничивает отображение вкладок. Стандартное окно имеет фиксированную ширину и высоту, рассчитанные лишь на шесть вкладок. Если установить крупную сборку модификаций, где каждый большой мод добавляет собственную ветку прогрессии, новые вкладки начинают выходить за пределы экрана, накладываться друг на друга или полностью исчезать из интерфейса. Модификация Paginated Advancements & Custom Frames расширяет стандартное окно меню достижений, добавляя постраничную навигацию, систему закрепления приоритетных веток, встроенный инструмент отладки и поддержку полностью новых рамок для иконок с помощью ресурс-паков или дата-паков.
Технический принцип работы и решение ограничений ванильного интерфейса
Ванильный класс AdvancementsScreen использует захардкоженные координаты для рендеринга окна достижений (размер составляет 252 на 140 пикселей). Элементы управления, такие как сетка вкладок и фоновый рендер, привязаны к статическим размерам окна, что делает невозможным масштабирование под высокое разрешение монитора. Класс AdvancementTab также имеет жёсткие границы для отрисовки иконок вкладок по периметру основного фрейма.
Paginated Advancements & Custom Frames внедряет изменения непосредственно в логику рендеринга графического интерфейса клиента с помощью Mixin-инъекций в классы MixinAdvancementsScreen и MixinAdvancementTab. Вместо использования жёстко прописанных констант модификация перехватывает инициализацию интерфейса и считывает текущие размеры окна игры. На основе этих данных вычисляется оптимальный размер фрейма достижений, который адаптивно расширяется, занимая большую часть экрана.
Система автоматически группирует все зарегистрированные вкладки в отдельные страницы (пагинация). Алгоритм вычисляет максимальное количество вкладок, которые могут поместиться в пределах верхней и нижней панелей окна по формуле, учитывающей ширину окна и установленные отступы. Если количество веток достижений превышает лимит страницы, модификация создаёт дополнительные виртуальные страницы и добавляет интерактивные кнопки-стрелки в нижней части интерфейса. При переключении страниц рендерер скрывает вкладки с неактивных страниц, предотвращая перегрузку оперативной памяти графическими объектами и устраняя конфликты наложения элементов.
Ключевые возможности и функционал
Основная функция Paginated Advancements & Custom Frames – реорганизация графического меню достижений. Модификация предлагает несколько практичных инструментов для навигации:
· Динамическая пагинация: Добавляет стрелки переключения страниц в нижний угол окна достижений. Игроки могут просматривать любое количество вкладок, даже если в сборке активировано более пятидесяти модификаций с собственными цепочками заданий.
· Закрепление вкладок: Пользователь может добавить любую вкладку в список избранных. Для этого предназначена специальная кнопка в виде звёздочки на каждой вкладке. Закреплённая вкладка автоматически перемещается на первую страницу и отображается в начале списка, независимо от её алфавитного или внутриигрового порядка сортировки.
· Сохранение состояния сессии: Мод запоминает последнюю открытую вкладку достижений. При закрытии меню и его повторном открытии через клавишу L интерфейс покажет ту же вкладку, на которой остановился игрок, вместо сброса к первой стандартной вкладке.
· Отладчик достижений (Advancement Debugger): Специальный режим для разработчиков сборок и авторов квестов. Он активируется в конфигурации или при включении расширенных подсказок (клавиши F3 + H). При наведении курсора на иконку достижения отображается дополнительное окно подсказок с технической информацией: внутренним идентификатором (например, minecraft:adventure/arbalistic) и списком триггеров (условий), необходимых для выполнения. Комбинация клавиш Ctrl + C копирует идентификатор выделенного достижения в буфер обмена.
Настройка, совместимость и экосистема
Параметры отображения меню достижений пользователь может изменить через файл конфигурации. Расположение и формат файла зависят от загрузчика модификаций:
· Fabric и Quilt: Для работы настроек необходима установка библиотеки Cloth Config API. Параметры записываются в файл paginatedadvancements.json (или paginatedadvancements.json5) в папке config.
· NeoForge: Версии мода начиная с 2.8.0 используют встроенную систему конфигурирования NeoForge, что исключает потребность в дополнительных библиотеках. Файл генерируется под названием paginatedadvancements-client.toml в папке config.
В конфигурационном файле доступны следующие ключевые параметры:
· showDebugTooltips – логическое значение (true или false), управляющее показом технической информации для отладки достижений.
· maxDebugLines – целое число, ограничивающее максимальное количество строк триггеров в окне подсказок, предотвращая выход текста за пределы экрана при большом количестве требований.
· disableBackgroundFade – параметр для отключения затемнения фона игры во время просмотра меню достижений.
· spacing – шаг в пикселях для регулировки расстояния между соседними вкладками на панели.
· enablePinning – разрешает или запрещает игрокам закреплять избранные вкладки.
Модификация поддерживает систему кастомизации иконок через механизм Custom Frames (пользовательские рамки). По умолчанию Minecraft предлагает три типа рамок: task (обычное задание), goal (цель) и challenge (испытание). Мод позволяет создавать новые типы с помощью дата-паков.
Для добавления новой рамки необходимо создать JSON-файл в дата-паке по пути:
assets/<идентификатор_мода>/advancement_frame_types/<название_рамки>.json
Пример содержимого файла:
{ |
Текстуры для рамки размещают по путям:
· assets/<идентификатор_мода>/textures/gui/sprites/advancements/<название_рамки>_unobtained.png – вид рамки до выполнения достижения.
· assets/<идентификатор_мода>/textures/gui/sprites/advancements/<название_рамки>_obtained.png – вид рамки после выполнения.
Для привязки созданной рамки к конкретному достижению используют файл маппинга в дата-паке по пути assets/<идентификатор_мода>/advancement_frames/<имя_файла>.json:
[ |
Мод разрабатывался как чисто клиентская утилита, поэтому он не требует установки на сервер. Он полностью совместим с крупными индустриальными и магическими модами (такими как Create, Ender IO, Botania), которые добавляют сложные системы квестов и многочисленные вкладки достижений. Пользователям старого загрузчика Forge доступна неофициальная адаптация мода под названием ForgedPaginatedAdvancements. Для запуска последних версий мода на платформе NeoForge 26.1+ обязательно использование среды выполнения Java 25.
Заключение
Paginated Advancements & Custom Frames эффективно решает проблему ограниченного пространства ванильного интерфейса достижений, которая становится критичной в больших сборках модификаций. В отличие от аналога Better Advancements, который преимущественно масштабирует окно без добавления страниц, этот мод предлагает чёткое разделение на страницы и удобное закрепление вкладок. Модификация упрощает работу разработчиков модифицированных сборок благодаря встроенному дебаггеру и гибкой системе регистрации новых типов рамок через JSON-структуры дата-паков. Единственным заметным ограничением является необходимость в создании дополнительных ресурс-паков клиента для корректного отображения кастомных графических рамок.
Установка
Базовая установка занимает около 5 минут. Общий процесс одинаков, отличается только лоадер и совместимый билд.
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











