一、前言

如果你习惯了 1.16 以上的原始输入功能,在换到 1.7.10 等版本后,发现移动鼠标的过程中,画面移动时快时慢,有时候会突然飘一下,让人倍感晕眩,那么你可能需要这个名叫 Raw Mouse Input 的 mod。


但不幸的是,在 GTNH 的 Java17 版本中,由于删减了库文件,导致 Raw Mouse Input 无法成功运行,你可以选择等待作者更新,或者按如下方式手动补全缺失的库。


*启动后第一次进入多人游戏会无法移动鼠标,可以先进入一次单人地图,再进多人即可解决,由于这个问题没有任何报错信息,具体原因未知。个人猜测是 mod 本身原因,因为 mod 缺少库文件的异常抛出时机是在加载单人地图时。


二、手动解决

找到启动器中 GTNH 安装的位置,替换 GTNH 使用的原版资源 json,替换至下方链接中的 json。(图为 MultiMC 启动器,位于整合包内容的 patches 文件夹内)。

https://www.123pan.com/s/hZqZVv-2THuA.html

该 json 是 2.3.3 的,理论上应该通用于 2.3.*,如出现异常,可参考下方原理自行修改。

在 GTNH Java17 中加入 Raw Mouse Input 的临时方法-第1张图片

三、原理

在每个 minecraft 版本中都会拥有用于记录启动时库加载的 json,它将所有游戏启动需要加载的库都记录在其中,供启动器使用。而 GTNH 并不使用原版的记录文件,而是直接携带多个用于方便魔改,我们只需要修改其中对应 1.7.10 原版(非 forge)的那个,在其中的 libraries 列表添加如下 3 个库文件,添加完毕后游戏启动时会自行下载相应的库文件,添加时注意 json 格式。 

{
    "downloads":{
        "classifiers":{
            "natives-linux":{
                "path":"net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
                "sha1":"7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
                "size":10362,
                "url":"https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
            },
            "natives-osx":{
                "path":"net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
                "sha1":"53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
                "size":12186,
                "url":"https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
            },
            "natives-windows":{
                "path":"net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
                "sha1":"385ee093e01f587f30ee1c8a2ee7d408fd732e16",
                "size":155179,
                "url":"https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
            }
        }
    },
    "extract":{
        "exclude":[
            "META-INF/"
        ]
    },
    "name":"net.java.jinput:jinput-platform:2.0.5",
    "natives":{
        "linux":"natives-linux",
        "osx":"natives-osx",
        "windows":"natives-windows"
    }
},
{
    "downloads":{
        "artifact":{
            "path":"net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
            "sha1":"e12fe1fda814bd348c1579329c86943d2cd3c6a6",
            "size":7508,
            "url":"https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
        }
    },
    "name":"net.java.jutils:jutils:1.0.0"
},
{
    "downloads":{
        "artifact":{
            "path":"net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
            "sha1":"39c7796b469a600f72380316f6b1f11db6c2c7c4",
            "size":208338,
            "url":"https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
        }
    },
    "name":"net.java.jinput:jinput:2.0.5"
}

在 GTNH Java17 中加入 Raw Mouse Input 的临时方法-第2张图片