此项目现在开源啦!
模组功能
通常情况下,模组加载器能够检测客户端的模组列表是否与服务端一致,然而这只检测服务端和客户端都需要添加的模组,而不检测仅客户端模组(如小地图、渲染优化,甚至作弊模组等),有的客户端甚至还会添加透视材质包,这严重影响了游戏公平性。而传统的应对方法,如刷假矿,可能会破坏区块数据,或者造成卡顿(至少我用的时候服务器因为这个原因崩溃了很多次)。
此模组是专为整合包作者和腐竹准备的管理模组(不仅仅是反作弊),它可以检测客户端整合包中模组文件(包括仅客户端的)是否与制作和发布时的版本一致,亦可检测客户端是否擅自添加了某些仅客户端使用的,但是不被服务端允许的文件。
例如:如果服务端不允许使用,客户端添加了小地图模组就会被拒绝连接;如果服务端要求使用,客户端删了小地图模组就会被拒绝连接。
另一个功能是可以方便进行服务器的版本管理。例如服务端更新了部分模组文件,但是有些客户端没能及时更新,由于模组信道不变仍然能通过模组加载器的匹配,但是模组版本差异可能导致服务器数据出现问题。使用此模组后即可方便地关闭旧版本客户端的“验证通道”iOS既视感,从而保护服务器玩家的账户数据安全。
运行原理
模组将会检测配置文件中指定的所有文件,并计算它们的哈希值。最后所有文件的哈希值会被合并,用于生成整个客户端的哈希签名,这个值将用来验证客户端。
每当客户端连接到服务端时,服务端每隔一段时间会向客户端发送需要验证的文件列表,然后客户端将计算哈希签名并发送给服务端。如果此签名不在服务端记录的列表中,则该客户端将被拒绝连接。
重要提示
开发者已经确定“排除”配置会导致一些问题。因为这些被排除的文件不会被检查,玩家可以在游戏中将其替换成同名文件从而绕过检查。
因此,在 4.0 及后续版本中已经移除了“排除”配置。从而此模组将不再兼容自动汉化更新等会自行产生文件的模组或功能。如果这些文件生成后可以持续使用(如汉化的语言材质包),则可保留其文件并删除模组本体,从而兼容此模组。
另外,由于开发者精力有限,现在仅支持1.18.2及以上的最终版本。
使用方式(4.0)
现在 Forge 和 Fabric 的配置方法相同
规划好你的整合包,把所有要使用的模组及其他文件添加进对应的文件夹;
准备好后运行测试用服务端,运行服务端命令 /jarsauth record,打开记录模式。此模式下服务端会允许任何客户端的连接,并记录下他们的细节;
用客户端连接服务端;
当在服务端控制台中看到“Client details reloaded”,存档文件夹中会生成一个“acc-x.json”的文件。然后断开连接,在次运行服务端命令 /jarsauth record,关闭记录模式;
在存档文件夹中有一个“jarsauth-profile.json”文件,仔细阅读注释部分,修改配置;
完成后运行服务器命令 /jarsauth reload ,重载配置;
该客户端可以连接到服务端了,现在不再需要任何客户端侧的配置。
如果要拒绝客户端连接,删除对应的“acc-x.json”文件即可。
【注意】可能会由于网络波动导致验证失败,重新连接即可。
作者承诺和授权
由于百科更新可能不及时,这一部分现在已经转移至 GitHub 主页。