作为一位娃都上小学的大叔,我实在不好意思说我玩MC(我的世界),因为这个游戏小学生玩的比较多,国际服、网易服、各种其他服,包括自己还架设了个服务器,结果每次都是玩一阵子就变成鬼服,成为一个人的孤独。。。

这不之前一起玩的一位朋友自己在某宝上买了一个服务器,开了一个1.15.2的新版本的服务器,邀我一起,游戏嘛实在是没有太大兴趣继续玩下去了,不过在帮她服务器维护的时候在网上发现了一个好插件,可以实现将我的世界中的游戏聊天记录发送到QQ群中,具体插件我就不做介绍了,说重点:

因为朋友是买的面板服,服务器不是真正在自己的手里,仅有的权限就是一个控制面板软件和FTP权限,而这个插件是需要在服务器上监听一个端口的,这个端口需要对外开放,我尝试了很多常用不常用的端口,都无法连接,无奈之下只好放弃了。

等等,我可不是那么容易放弃的人,既然无法从插件入手,我把目光转向了还能获取到聊天信息的服务器控制面板,这个面板看起来应该是开服必备软件,下来的最关键的部分将围绕它展开,

首先要声明一下,这片文章是针对不开放多余端口的面板服的,如果你是自己的服务器根本不用这么麻烦,大把现成插件可用。我纯粹是记录好玩,无任何针对和偏见,请勿多想。

先展示一下这个面板服的控制面板:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(1)

面板服管理工具

登录进去以后是一些杂七杂八没用的东西,主要功能在控制台,点开控制台以后是这个样子的:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(2)

面板工具控制台

本来自己的服务器的话是可以轻松获取到运行信息,无奈面板服只能通过这么个玩意才能得到运行信息,下面就来想办法如何从面板服工具拿到它,我先来尝试第一招,抓包分析他的工作逻辑,下面请出WIRESHARK,我最喜欢用的抓包工具:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(3)

打开WIRESHARK,开始抓包后操作一遍控制台,让控制台获取到服务器的工作日志,WIRESHARK会把整个传输的数据包全部记录下来,根据面板服的IP和管理工具的端口号将众多数据包过滤筛选,得到如下有用的数据包:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(4)

抓取到的数据包

随便一看,我吓了一大跳,太简单了这个工具,没有任何保护,没有任何加密,也没有任何的协议,直接就是socket发送一串字符串,然后服务器那边的服务器端就把服务器日志发回来:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(5)

发送的数据

可以看到,客户端向服务器端发送的字符串就是“xxxxxx get”(xxxxxx是工具的超级密码)。而且是明文发送,然后服务器估计就是只简单的判断密码一样不一样后就返回了游戏服务器的运行日志,而且也是明文的:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(6)

返回的日志

这下就好办了,我只需要给它发送同样的字符串,就可以直接得到运行日志了,没有比这再简单的了,我后续的大招都不用使了,在这里要深深感叹一下这些开服的腐竹们,他们的面板服是运行在多么脆弱的一个环境里。。。

接下来就自己测试一下:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(7)

随便写段代码

成功返回得到MC服务器运行日志:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(8)

获得到的日志

没想到还带有它的小尾巴,也许这就是它的通讯协议吧。

接下来就是对得到的日志进行过滤,只提取到有用的聊天记录。因为日志的格式是固定的以下格式:

[时间] [信息类型] 信息内容

所以很好办,先把得到的字符串数据按行分开,逐行进行判断就可以了,可以用正则表达式也可以匹配关键字符。就不细说了,写法有N多种。

聊天记录得到了,怎么同步到QQ群呢?

方法有很多种,最简单的就是开着QQ群聊天窗口,捕获窗口然后模拟输入,但我不太会,但我善于借鉴,查看了其他直接在MC服务器上装插件的工具的做法,他们的插件获取到聊天消息后是发送到一个叫酷Q的东西上,于是我下载下来研究:

我的世界电脑版怎样关闭聊天框(我的世界面板服不用插件成功实现游戏聊天同步到QQ群记录)(9)

看到这个界面我就明白了,这就是一个第三方的QQ,你可以自己开发它的应用,来实现各种自定义功能,接下来我们就通过它,把获取到的聊天记录发送到指定群。

那么具体如何做呢?明天再说,因为我家里的网不好,下载酷Q的SDK下了好半天还没好。。。

现在已经晚上11点半了,年龄大了不能熬夜,晚安。

,