写了一个Minecraft版本更新推送酷Q插件,记录一下API与设计逻辑

分享一下 Minecraft 官方的版本 API 和 Minecraft 版本更新推送酷Q插件开发思路。

API

接触MC启动器开发的应该都知道官方是提供一系列API的,其中就包括一个版本列表,我们就是通过这个版本列表来实现检测更新的
API地址

1
https://launchermeta.mojang.com/mc/game/version_manifest.json

访问之后可以看见这里发布的版本都会在这里列出,包括快照,正式版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"latest": {
"release": "1.15.2",
"snapshot": "20w20a"
},
"versions": [
{
"id": "20w20a",
"type": "snapshot",
"url": "https://launchermeta.mojang.com/v1/packages/647210e26814933d29be51af2e3e0bb99ea3f4f3/20w20a.json",
"time": "2020-05-13T15:15:58+00:00",
"releaseTime": "2020-05-13T15:11:43+00:00"
},
{
"id": "20w19a",
"type": "snapshot",
"url": "https://launchermeta.mojang.com/v1/packages/e14d3652b363bf64b6b2cc7a2aee6cc0504fa4ba/20w19a.json",
"time": "2020-05-13T14:07:31+00:00",
"releaseTime": "2020-05-06T16:23:24+00:00"
}//省略一堆
]
}

实现

我们可以看到官方在头部就列出了正式版和快照版的最新版本,这也方便了我们对其进行对比监控
我直接将 latest.releaselatest.snapshot 两个内容通过文件保存下来用作判断
然后设置一个周期,定时请求 API 然后解析 Json 将 key versions 下第一条信息,也就是 versions[0].XXX
通过 versions[0].type 获取最新的类型 然后对比 本地存储 latest.typeversions[0].id 的内容来实现判断更新推送

成品体验

[灵工艺] Minecraft 更新推送 酷Q论坛下载
如果你没有酷Q账号可以加入灵工艺用户群,群文件下载