纯萌新一枚,自己抓包学到的,先从(渣的一bi的亚马逊)
https://launchermeta.mojang.com/mc/game/version_manifest.json
(新版不带换行555)获取版本,比如
{
"id": "1.11.2",
"type": "release",
"time": "2017-02-07T13:18:39+00:00",
"releaseTime": "2016-12-21T09:29:12+00:00"
"url": "https://launchermeta.mojang.com/mc/game/12f260fc1976f6dd688a211f1a906f956344abdd/1.11.2.json"
}
然后获取这个版本的json,地址是"url"处的内容
https://launchermeta.mojang.com/mc/game/12f260fc1976f6dd688a211f1a906f956344abdd/1.11.2.json
首先是jar文件,上面的client就是客户端,server就是服务端,下载后重命名为版本号
"downloads": {
"client": {
"sha1": "db5aa600f0b0bf508aaf579509b345c4e34087be",
"size": 9198097,
"url": "https://launcher.mojang.com/mc/game/1.11.2/client/db5aa600f0b0bf508aaf579509b345c4e34087be/client.jar"
},
"server": {
"sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4",
"size": 9720835,
"url": "https://launcher.mojang.com/mc/game/1.11.2/server/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar"
}
},
然后是后边的libraries都有下载地址,比如
"id": "1.11.2",
"libraries": [
{
"name": "com.mojang:netty:1.6",
"downloads": {
"artifact": {
"size": 7877,
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
"path": "com/mojang/netty/1.6/netty-1.6.jar",
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
}
}
},
但是到assets这步就犯难了,
"assetIndex": {
"id": "1.11",
"sha1": "ea7f56173691250e9805db5e3dda2d65b951ede3",
"size": 157395,
"url": "https://launchermeta.mojang.com/mc/assets/1.11/ea7f56173691250e9805db5e3dda2d65b951ede3/1.11.json",
"totalSize": 124627552
},
这个json的内容是需要存在assets文件夹下的所有的文件
这全都是类似于
"minecraft/sounds/mob/tray/death2.ogg": {
"hash": "d48940aeab2d4068bd157e6810406c882503a813",
"size": 18817
},
这些assets文件怎么下载呢?
另外,在后边有些library文件是这样的,
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
在"name"和"download"之间多了一些内容,这些如何处理呢?
最后两个libraries的name前面还有
"extract": {
"exclude": [
"META-INF/"
]
},
这个是做什么的呢?
另外就是首次启动时的处理依赖是下载natives吗?我看HMCL是在首次启动时还下东西欸,这些natives是从那些地方获取的呢?