
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 API、Cloth Config API(适用于 2.8.0 之前的 Fabric/Quilt 及…
依赖项 · 加载器:Fabric、NeoForge、Quilt · Minecraft 版本:1.18.1 - 26.1+ · 模组版本:2.8.2 · 必需依赖:Fabric API、Cloth Config API(适用于 2.8.0 之前的 Fabric/Quilt 及 NeoForge 版本) 原版的进度界面限制了选项卡的显示。标准窗口的宽度和高度是固定的,仅能容纳六个选项卡。如果安装一个大型整合包,其中每个大型模组都会添加自
依赖项
· 加载器:Fabric、NeoForge、Quilt
· Minecraft 版本:1.18.1 - 26.1+
· 模组版本:2.8.2
· 必需依赖:Fabric API、Cloth Config API(适用于 2.8.0 之前的 Fabric/Quilt 及 NeoForge 版本)
原版的进度界面限制了选项卡的显示。标准窗口的宽度和高度是固定的,仅能容纳六个选项卡。如果安装一个大型整合包,其中每个大型模组都会添加自己的进度分支,那么新的选项卡就会开始超出屏幕边界、相互重叠,或者完全从界面中消失。Paginated Advancements & Custom Frames 模组扩展了进度菜单的标准窗口,新增了分页导航、优先分支固定系统、内置调试工具,以及通过资源包或数据包为图标提供全新边框的支持。
技术工作原理及对原版界面限制的解决
原版类 AdvancementsScreen 使用硬编码的坐标来渲染进度窗口(尺寸为 252 × 140 像素)。诸如选项卡网格和背景渲染等控制元素都绑定到固定的窗口尺寸,这使得无法根据高分辨率显示器进行缩放。类 AdvancementTab 同样为沿主框架边缘绘制选项卡图标设定了硬性边界。
Paginated Advancements & Custom Frames 通过对类 MixinAdvancementsScreen 和 MixinAdvancementTab 进行 Mixin 注入,直接对客户端图形界面的渲染逻辑进行修改。模组不再使用硬编码的常量,而是拦截界面的初始化并读取游戏窗口的当前尺寸。基于这些数据,会计算出进度框架的最佳尺寸,并自适应扩展以占据屏幕的大部分区域。
系统会自动将所有已注册的选项卡分组到单独的页面中(分页)。算法会根据一个考虑窗口宽度和所设边距的公式,计算出窗口上下面板范围内可容纳的最大选项卡数量。如果进度分支的数量超过单页上限,模组就会创建额外的虚拟页面,并在界面底部添加交互式箭头按钮。在切换页面时,渲染器会隐藏非活动页面上的选项卡,从而避免图形对象过度占用运行内存,并消除元素重叠的冲突。
主要特性与功能
Paginated Advancements & Custom Frames 的主要功能是对图形化进度菜单进行重新组织。该模组提供了多种实用的导航工具:
· 动态分页:在进度窗口的下角添加翻页箭头。玩家可以浏览任意数量的选项卡,即使整合包中启用了五十多个带有各自任务链的模组也不例外。
· 固定选项卡:用户可以将任意选项卡添加到收藏列表中。为此,每个选项卡上都设有一个星形的专用按钮。被固定的选项卡会自动移动到第一页并显示在列表开头,而不受其字母顺序或游戏内部排序顺序的影响。
· 会话状态保存:模组会记住上次打开的进度选项卡。如果关闭菜单后通过 L 键再次打开,界面会显示玩家上次停留的那个选项卡,而不会重置到第一个标准选项卡。
· 进度调试器(Advancement Debugger):这是一种为整合包开发者和任务作者提供的特殊模式。它可以在配置中启用,或在开启高级提示(F3 + H 键)时激活。当光标悬停在进度图标上时,会显示一个附加的提示窗口,其中包含技术信息:内部标识符(例如 minecraft:adventure/arbalistic)以及完成所需的触发器(条件)列表。组合键 Ctrl + C 可将选中进度的标识符复制到剪贴板。
设置、兼容性与生态系统
用户可以通过配置文件更改进度菜单的显示参数。文件的位置和格式取决于模组加载器:
· Fabric 和 Quilt:要使设置生效,需要安装 Cloth Config API 库。参数会写入 config 文件夹中的 paginatedadvancements.json(或 paginatedadvancements.json5)文件。
· 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 分钟。流程相同,只是 Loader 和对应构建不同。
- 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.











