Zh:Game files
游戏
游戏本身的所有可用版本列出在 https://launchermeta.mojang.com/mc/game/version_manifest.json
针对特定版本的JSON文件被包含在上方的版本清单中,它包含了运行客户端的要求、minimumLauncherVersion和服务端、客户端及资源的下载链接。
库
可用于所有Minecraft版本并由启动器下载的库位于
https://libraries.minecraft.net/
上方下载的JSON文件用于确定要下载的库。文件内部有一个libraries
键,其中包含有关每个所需库的信息。
示例:
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
},
"rules": [
{
"action": "allow",
"os": {
"name": "osx",
"version": "^10\\.5\\.\\d$"
}
}
]
}
name
键用于确定下载库的URL。该字符串的格式为
<package>:<name>:<version>
对应的URL应该看起来像这样:
https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar
其中path
是用斜杠替换package
中所有点号的结果。
它还下载一个sha1的哈希,URL为:
https://libraries.minecraft.net/<package>/<name>/<version>/<name>-<version>.jar.sha1
http://libraries.minecraft.net/ 不会工作——你必须使用https
natives
为每个指定平台提供了一个字符串。该字符串应插入在文件名的.jar和<version>之间,使得文件名有这样的格式:
<name>-<version>-<native-string>.jar
这适用于任何具有natives
键的文件。
natives字符串可能会包含${arch}
,它应该被32
或64
替换。
extract
键提供了文件解压的规则。
rules
键用于确定文件下载到的平台。当action
为allow
,该文件将会下载到os
所述平台。当action
为disallow
,该文件将不会下载到os
所述平台。如果没有os
键,则规则默认为无指定平台。
在上面的示例中,在OS X平台上完整的下载路径为
https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.1-nightly-20130708-debug3/lwjgl-platform-2.9.1-nightly-20130708-debug3-natives-osx.jar
该文件将被解压,但META-INF
文件将不会被解压。此外,此文件只有在计算机运行OS X 10.5时才会下载。
资源
游戏本身会从这里下载更多资源:
http://resources.download.minecraft.net/
每个版本的资源索引链接在<version>.json中。资源索引的示例url看起来会像这样:
https://launchermeta.mojang.com/mc/assets/1.12/67e29e024e664064c1f04c728604f83c24cbc218/1.12.json
文件中的每个资源都有一个名称(资源对象的字段名称),一个SHA1哈希和一个文件大小。客户端现在从这里下载索引中的所有资源
http://resources.download.minecraft.net/<first 2 hex letters of hash>/<whole hash>
并将他们存储在
.minecraft/assets/objects/<first 2 hex letters of hash>/<whole hash>
和一份副本存储在
.minecraft/assets/virtual/legacy/
这是对于不支持新版系统的版本(1.7.2及以下)的旧格式。