Open yushijinhun opened 2 years ago
本提案的主要内容:
-Dauthlibinjector.prefetch.file=
-Dauthlibinjector.yggdrasil.prefetched=
authlib-injector 要求启动器在启动游戏前,从验证服务器获取元数据,并将其 Base64 编码后作为参数传递给 authlib-injector。这一措施可以加快启动速度,同时避免网络不稳定造成的启动失败。
但由于 Base64 编码后的元数据长度很长,可能超出一些平台对命令行长度的限制,进而造成启动失败。例如,auth-demo.yushi.moe 的元数据经过编码后就达到了 1428 个字符,而 Windows 上命令行长度限制从 2048 到 32768 个字符不等(取决于进程创建方式),再加上其他参数就有可能超出限制。
auth-demo.yushi.moe
启动器启动游戏前的「配置预获取」流程改为如下:
-Dauthlibinjector.prefetch.file={临时文件路径}
以验证服务器 auth-demo.yushi.moe 为例,元数据预获取的实现如下:
{"skinDomains":[".yushi.moe",".prinzeugen.net",...
/tmp/tmp.uwwCKnbW1n.json
-Dauthlibinjector.prefetch.file=/tmp/tmp.uwwCKnbW1n.json
authlib-injector 将继续接受旧的 -Dauthlibinjector.yggdrasil.prefetched= 参数,但会在控制台打印警告。
/cc @huanghongxun @ZhaiSoul @TT702 @Nsiso @LTCatt
临时文件就行了,下次启动覆盖写不需要删除
本提案的主要内容:
-Dauthlibinjector.prefetch.file=
参数实现元数据预获取。-Dauthlibinjector.yggdrasil.prefetched=
参数。背景
authlib-injector 要求启动器在启动游戏前,从验证服务器获取元数据,并将其 Base64 编码后作为参数传递给 authlib-injector。这一措施可以加快启动速度,同时避免网络不稳定造成的启动失败。
但由于 Base64 编码后的元数据长度很长,可能超出一些平台对命令行长度的限制,进而造成启动失败。例如,
auth-demo.yushi.moe
的元数据经过编码后就达到了 1428 个字符,而 Windows 上命令行长度限制从 2048 到 32768 个字符不等(取决于进程创建方式),再加上其他参数就有可能超出限制。改动
启动器启动游戏前的「配置预获取」流程改为如下:
-Dauthlibinjector.prefetch.file={临时文件路径}
。示例
以验证服务器
auth-demo.yushi.moe
为例,元数据预获取的实现如下:/tmp/tmp.uwwCKnbW1n.json
,将上面的元数据以 UTF-8 编码写入此文件。-Dauthlibinjector.prefetch.file=/tmp/tmp.uwwCKnbW1n.json
。兼容性
authlib-injector 将继续接受旧的
-Dauthlibinjector.yggdrasil.prefetched=
参数,但会在控制台打印警告。待讨论事项
/cc @huanghongxun @ZhaiSoul @TT702 @Nsiso @LTCatt