这个项目是为了能够更便捷的开设Minecraft服务器而开发的。
这个项目分为Server Pack(服务器包)和Client Pack(客户端包)两部分。服务器包能够操控客户端包的所有行为。因此,可以说连接到恶意服务器是危险的。服务器可以让客户端下载病毒文件等待其他软件打开它。(一个示例是,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup,Windows会在下次启动时启动里面的所有东西。但是一般情况下应用程序没有权限写入此目录,不过依旧可以写入用户目录,Windows会在下次用户登录时启动那里的所有东西。因此请记住:该项目不需要任何管理员权限,当该项目向您请求管理员权限时,请拒绝!这可以避免损坏您的计算机。)
我们计划在v2.4更新的时候加入安全机制,拒绝写入当前目录之外的目录(不包含当前目录的子目录以及其的子目录)。当然,这会是可选的,只需要在Cconfig.json中将useSpath改为false即可。为了防止通过本项目更改Cconfig.json,当useSpath为false时,程序将会提醒您确认,确认后将会修改Cconfig.json中xAuthedConfigChange的值改为用我们闭源的MachineCodeGenerator生成的机器码。该机器码是唯一的。
编译&运行
本程序无需编译,直接运行。
推荐直接clone或者下载源代码,安装依赖库后直接运行
发行版下载地址:自营(不稳定) GitHub Releases(弃更)
下载已编译,无需运行环境的Windows发行版↑↑↑
请务必从自营源下载!!!Github因为上传麻烦已被放弃!如果怀疑安全性,请直接编译源代码或直接运行源代码!!!
目前可以到Github Release下载老版本,跟新版差别不大。
依赖库:requests(客户端), flask(服务端)(可选)
如果不使用server_function.py,可以不安装flask.
如果要编译直接随便找个py2exe编译一下就得
使用方法
你可能看到了,仓库中有很多零散的文件,其中只有.py后缀的是有用的。然而,你也应该看看readme.txt后缀的,里面包含了重要的信息。
从以上信息,想必你能意识到,这就是一个有client.json索引文件的http服务器。
是的,这是一个练习实践项目,这代表着这个项目的更新频率在一段时间内会是频繁的,但是过了这个时间之后,将会近于废弃。这其实是一个用Python不完全重写的BalloonUpdate静态服务端项目,加入了一些实用工具包括模组下载器和动态服务端,但是并没有做到文件监听、子目录遍历和友好的GUI界面。因此,我推荐使用BalloonUpdate的BalloonServer而不是该项目。
启动服务端
首先,你需要使用config_gen.py生成或者创建一个config.json文件。
他看起来像这样:
[ [<ResourceDir>, [<filetype1>, <filetype2>, …], <TargetDir>], … ]
<ResourceDir>=资源文件的目录,必须是相对路径且不能使用”..”符号
<filetype>=匹配的资源文件的后缀名
<TargetDir>=客户端对应的目录,必须是相对路径且不能使用”..”符号
然后只需要启动server.py或者server_function.py即可
注意:服务端文件和配置文件必须同时在同一文件夹存在。
Server_function.py的地址是http://127.0.0.1:7809/
启动客户端
你需要创建一个Cconfig.json,看起来像这样:
{ "requestURL": "http://127.0.0.1:7809/" }
然后启动client.py就可以更新了
延伸阅读
原理解析
Server_function.py只是一个单纯的flask服务器罢了,加多了每次访问client.json自动重新生成的能力,但是访问的多了会炸
Server.py只是识别config.json给出的规则并用os.listdir()遍历,生成出客户端的规则client.json
客户端扫描client.json,根据给出的url、sha512、target就可以全量同步
欢迎提出问题和建议
我是MCSMT的开发者,友情提醒一下,这个已经严重落后,请以仓库README为准~
最新版本:v3.0.2.11.1