本篇教程由作者设定使用 CC BY-NC-SA 协议。

问题背景

左上角的两个按钮(GUI 编辑 和 IPN 设置)经常会被 XEI (JEI/REI/EMI ...)的按钮挡住。

稍微研究过这个 mod,无外乎两种做法:

  1. IPN 设置里直接隐藏掉,眼不见为净

  2. GUI 编辑按钮,进入编辑模式,移动两个按钮的位置

  3. 无视他,让他挡,小小的按钮还不稀罕点他了

假如就是想保留这两个按钮,被挡住又让人浑身难受,那不用说肯定选择第二种做法。

当你兴致勃勃在物品栏里调完位置,接着打开了箱子,你会发现:嗯?咋又回去了?

没错,IPN 的 GUI 编辑是根据 屏幕(Screen)/菜单(Menu) 走的,每个屏幕界面都得重新设置一遍,没有继承或者通配符的功能。噩梦!!!


这个问题困扰我很久,直到这翻了翻源码:

[没啥用的配置] 左上角俩按钮位置的全局修改-第1张图片

(↑ 点开看大图 ↑)

GuiSettings 对应 IPN 设置左侧菜单的“GUI 设置”一项,但游戏内确实没找到这四项设置。

当我以为是只有 MC 1.21 以上才有的功能时,我发现代码里还写着“§§hide - default button possitions”。哎,hide ?那我多少得试一试,于是也就有了这篇教程!


配置

我没找到如何在游戏内显示这四个隐藏设置(可能在前置 libIPN 的代码里,有兴趣再翻翻),说人话:得手动改配置文件。

改配置文件必须先关闭游戏先关闭游戏先关闭游戏!!!否则改动内容会被游戏刷没!


找配置

IPN 的配置文件位于 <游戏版本名>/config/inventoryprofilesnext 文件夹内,有个 inventoryprofiles.json 文件。这个 JSON 文件保存了所有变更过的配置项,没有的话自己新建(理论上肯定会生成)。

实在找不到,游戏内打开 IPN 设置,首页(Mod 设置)的头一个按钮,点一下就能打开文件夹了。

[没啥用的配置] 左上角俩按钮位置的全局修改-第2张图片


改配置

按如下代码修改 JSON 文件,数值按需修改。下面代码给的数值都是对应配置项的默认值。

{
    ... 其它设置
    "GuiSettings": {
        ... 其它设置
        "settings_top":  25,
        "settings_left": 10,
        "editor_top":  10,
        "editor_left": 10
    }
}

“settings_top”和“settings_left”表示“IPN 设置按钮”距离 屏幕顶部 与 屏幕左侧 的像素量;

“editor_top”和“editor_left”表示“GUI 编辑按钮”距离 屏幕顶部 与 屏幕左侧 的像素量;

都是整数,范围无限制(Int 最小值 到 Int 最大值),当然得确保在屏幕内部。


注意下 JSON 语法规范,末尾有逗号,最后一项没有逗号。


游戏,启动!

我测试用的配置文件如下:

[没啥用的配置] 左上角俩按钮位置的全局修改-第3张图片

因而游戏里看上去是这样的:

[没啥用的配置] 左上角俩按钮位置的全局修改-第4张图片[没啥用的配置] 左上角俩按钮位置的全局修改-第5张图片

可以看到,“GUI 编辑按钮”向右移动了。而且,我没特意编辑过 GUI,箱子界面的按钮也发生了变化。全局生效了!