暂无管理组..
暂无编辑组..
重要提示
模组已经更新至5.0,由于更新较大,配置无法兼容4.x,因此服务端侧需要重新生成配置文件。客户端也需要同步更新模组,但无需配置;
5.0及以后的版本中,各项功能均可选择开启或关闭,且默认关闭,请仔细阅读说明部分并修改配置,如不修改配置则与未安装效果一致;
所有功能仅会在专用服务端(即 Forge, Fabric, Arclight阿克莱特, Mohist墨伊斯特等环境)生效,局域网联机和单人游戏均不生效;
所有的提示语都放进了语言文件里,也就是 "zh_cn.json" 文件,如果有需要修改请在发布前解压并重新打包模组 jar 文件;
由于开发者精力有限,现在仅支持1.18.2及以上的最终版本。Forge 版自 1.20.6 开始转为支持 NeoForge。
功能 1 - 文件校验 (File Checksum)
这也是本模组最初的功能。
使用场景
通常情况下,模组加载器能够检测客户端的模组列表是否与服务端一致,然而这只检测服务端和客户端都需要添加的模组,而不检测仅客户端模组(如小地图、渲染优化,甚至作弊模组等),有的客户端甚至还会添加透视材质包,这严重影响了游戏公平性。而传统的应对方法,如刷假矿,可能会破坏区块数据,或者造成卡顿。
此模组的“文件校验”功能可以检测客户端整合包中模组文件(包括仅客户端的)是否与制作和发布时的版本一致,亦可检测客户端是否擅自添加了某些仅客户端使用的,但是不被服务端允许的文件。
例如:如果服务端不允许使用,客户端添加了小地图模组就会被拒绝连接;如果服务端要求使用,客户端删了小地图模组就会被拒绝连接。
另一个场景是服务器的版本管理。例如服务端更新了部分模组文件,但是有些客户端没能及时更新,由于模组信道不变仍然能通过模组加载器的匹配,但是模组版本差异可能导致服务器数据出现问题。使用此模组后即可方便地关闭旧版本客户端的“验证通道”iOS既视感,从而保护服务器玩家的账户数据安全。
运行原理
模组将会检测配置文件中指定的所有文件,并计算它们的哈希值。最后所有文件的哈希值会被合并,用于生成整个客户端的哈希签名,这个值将用来验证客户端。
每当客户端连接到服务端时,服务端每隔一段时间会向客户端发送需要验证的文件列表,然后客户端将计算哈希签名并发送给服务端。如果此签名不在服务端记录的列表中,则该客户端将被拒绝连接。
由于某些文件可能在启动或运行时发生变化(如自动汉化更新的语言文件,或者启动器皮肤的材质文件),检测时会被认为这些文件已经被修改,从而无法通过文件校验。如果这些文件生成后可以持续使用(如汉化的语言材质包),则可保留其文件并关闭上述功能,从而兼容此模组。
使用方式
规划好你的整合包,把所有要使用的模组及其他文件添加进对应的文件夹;
准备好后运行测试用服务端,运行服务端命令 /jarsauth record,打开记录模式,
此模式下服务端会允许任何客户端的连接,并记录下他们的细节;
用客户端连接服务端;
当在服务端控制台中看到 “Client details reloaded” ,存档文件夹中会生成一个 [acc-x.json] 的文件,
然后断开连接,再次运行服务端命令 /jarsauth record ,关闭记录模式,
你可以修改此文件的名称以便区分不同的版本,只要以 "acc-" 开头就行,如 [acc-test.json];
配置文件将会在存档文件夹中生成,即 [setting-file-checksum.json] 文件,仔细阅读 [desc_cn.txt] 的说明,修改配置;
完成后运行服务器命令 /jarsauth reload ,重载配置。此后任何时间修改配置后必须使用此命令使之生效;
该客户端可以连接到服务端了,客户端侧不再需要配置;
如果要拒绝客户端连接,删除对应的 [acc-x.json] 文件即可;
【注意】可能会由于网络波动导致验证失败,重新连接即可。
功能 2 - 客户端验证 (Client Authentication)
此功能类似于登陆
使用场景
对于离线模式服务器而言,由于无法使用官方的验证服务,从而仅通过玩家名称来区分不同玩家,因此玩家容易被冒名顶替。此功能可以给服务器添加一个专用的身份验证服务,从而解决玩家被其他人使用相同用户名登陆的问题。
运行原理
当某个玩家登陆时,服务端会检查其是否存在使用此用户名的 UUID ,如没有则会被当作初次登陆,如有则向客户端请求该 UUID 并验证。当客户端没有相应信息时则无法返回,超过一定时间就会被拒绝连接。
当一个玩家初次登陆时,服务端会生成一个与玩家用户名绑定的 UUID 并保存在服务端,同时也会发送给玩家。玩家保存数据后将会自动断开连接以便重新登陆验证。
使用方式
配置文件将会在存档文件夹中生成,即 [setting-client-auth.json] 文件,仔细阅读 [desc_cn.txt] 的说明,修改配置;
【对服务器而言】玩家连接后,存档文件夹中会生成一个 [uuid-files] 文件夹,这里包含所有玩家的 UUID 信息;
如果要注销玩家,只要直接删除对应的 UUID 文件即可,由于此文件在每次验证时读取,因此不需要重载即可直接生效;
【对玩家而言】客户端根目录中会生成一个 [uuid-files] 文件夹,这里包含所有此客户端使用过的所有用户名的 UUID 信息;
玩家需要妥善保管好 UUID 文件,如果丢失则会导致无法登陆对应的服务器;如果泄漏可能会导致被顶替;如果在不同电脑上登陆服务器,请将 [uuid-files] 文件夹复制到对应到客户端根目录中。
功能 3 - 服务端许可证 (Server License)
此功能可以作为防沉迷
使用场景
部分服务器可能需要管理玩家的连接时间,或者需要获得腐竹授权后才能登陆食用。此功能给服务器添加了一个更加精确化的白名单系统,服务端可以自行签发许可证,持有有效许可证的玩家才能连接服务器。许可证包含有效期、类型(按时间或按连接次数)、限额等参数,帮助管理各客户端的连接授权。
运行原理
登陆时服务端会查找对应玩家的服务端证书,如果出现下列情况:
没有证书
证书已过期
证书限额已用完
则会拒绝玩家连接。此后也会每隔一段时间重新验证。
此功能由服务端自行完成,不需要与客户端交换数据。
使用方式
配置文件将会在存档文件夹中生成,即 [setting-server-license.json] 文件,仔细阅读 [desc_cn.txt] 的说明,修改配置;
服务端证书放在服务端存档下的 [licenses] 文件夹里;
服务端启动时会自动把模组文件 [JarsAuth-*.jar] 复制到服务端存档目录下面;
本模组可作为可执行 jar 运行,双击或使用终端命令(java -jar JarsAuth-*.jar)即可打开证书管理器;
证书管理器的文件将生成在工作目录下的 [licenses] 文件夹里,因此如果在其他位置生成文件,就需要把这些文件放回服务端存档下的 [licenses] 文件夹里。改动即可生效,不需要重载配置。
关于重载配置的提示
所有功能的配置文件和功能 1 的客户端 acc 文件的变化需要重载,其余改动即刻生效,不需要重载。
作者承诺和授权
由于百科更新可能不及时,这一部分现在已经转移至 GitHub 主页。