人们常说外挂是毁掉一款优秀客户端游戏的罪魁祸首,而对于MC服务器来说,各类作弊Mod可谓亦是一大祸害。MC服主网之前介绍过不少反作弊插件,有兴趣的可以前往本站防熊专区(点我)进一步了解深入。
今天介绍的是一套国人原创的利用客户端与服务器之间的网络通信机制进行反作弊的系统AntiCheat3,它的主要原理是计算好官方客户端(也就是你制作的客户端)的文件指纹,在每次连接服务器时与服务端做比对,若有差错服务器将会拒绝客户端的连接请求,杜绝了玩家私自添加Mod的行为。
插件功能
本插件主要用于无法安装mod的纯净端(如bukkit、spigot),当然,cauldron也可以使用本插件
实现反作弊功能需要:
1.客户端安装AntiCheat3 Mod版
2.服务端安装插件版或mod版二选一
如何使用
先打包好一个可以使用的客户端,具体可参考[原创教程]如何整合属于自己服务器的客户端(三)—— 完美打包MC服务器客户端。此时一定要布置好所有的Mod,因为计算出的文件指纹会因为你的Mod种类而有天壤之别。
客户端操作:
- 首先删除客户端.minecraft\config\AntiCheat.cfg文件。
- 下载好反作弊Mod放入Mods文件夹,启动一次游戏后退出。
- 使用 notepad++ 等文本编辑器打开 .minecraft\config\AntiCheat.cfg,即可获得客户端的所有MD5:
服务端操作:
- 如果是cauldron服务端,则可以安装Mod版或插件版二选一,如果是bukkit、spigot纯净端,则需要安装插件版。
- 启动服务端后,来到 plugins\AntiCheat3,使用 notepad++ 等文本编辑器打开 config.yml,在MD5List下添加客户端MD5。
- 插件版:将客户端的AntiCheat Mod(jar文件)丢进 plugins\AntiCheat3\AntiCheatMod 目录下。
- 最后保存文件,输入指令 /acplugin reload 重载配置文件即可。
- Mod版:将客户端的AntiCheat.cfg覆盖到服务端的config文件夹里,启动服务器,在后台(或OP聊天框内)输入指令 /acmod reload 重载配置文件即可。
- 此时服务端配置完毕,若玩家客户端校验不通过,或没有安装AntiCheat3 Mod,则无法进入服务器。
你还沉浸在安装插件的痛苦当中?很遗憾,一切皆已完成!现在,没有安装防作弊Mod的客户端或对客户端有改动的玩家都无法连接你的服务器啦!
配置文件
MaxWaitTimeMs: 10000
MessageTimeout: “Connection timed out: connect”
MessageDisallow: “Connection refused: connect”
MaxWaitTimeMs 最大等待响应时间
表示玩家连接服务器时,若服务器超过多少毫秒(默认10000ms)仍未收到反作弊mod的响应,则踢出该玩家
当服务器延迟很高或者玩家网络不好时可能会频繁超时,此时需要将该数值调大(例如12000或14000)
MessageTimedOut 超时踢出提示
玩家超时被踢出时的提示
MessageDisallow 踢出提示
玩家mod不匹配时被踢出的提示
以上提示建议自定义为更加友好的提示。
已知BUG
由于登陆插件隐藏物品栏功能的bug,重复一遍,登陆插件的bug,在登录前踢出玩家有几率,导致玩家背包偶尔被清空或变成/*。即便不安装AC3,也会出现此类bug。
解决方法:关闭登陆插件隐藏背包的功能
Authme:
请将配置文件里的
ProtectInventoryBeforeLogIn
设置为false
Crazylogin:
请将配置文件里的
hideInventory
设置为false