ZH:Game files

From wiki.vg
Jump to: navigation, search

游戏

游戏本身的所有可用版本列出在 https://launchermeta.mojang.com/mc/game/version_manifest.json

针对特定版本的JSON文件被包含在上方的版本清单中,它包含了运行客户端的要求、minimumLauncherVersion和服务端、客户端及资源的下载链接。

Warning.png 如果你仍在使用旧版端点(https://s3.amazonaws.com/Minecraft.Download),请更新到新版,因为旧版端点不再更新且随时都有可能被移除。

可用于所有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

Warning.png http://libraries.minecraft.net/ 不会工作——你必须使用https

natives为每个指定平台提供了一个字符串。该字符串应插入在文件名的.jar和<version>之间,使得文件名有这样的格式:

<name>-<version>-<native-string>.jar

这适用于任何具有natives键的文件。

natives字符串可能会包含${arch},它应该被3264替换。

extract键提供了文件解压的规则。

rules键用于确定文件下载到的平台。当actionallow,该文件将会下载到os所述平台。当actiondisallow,该文件将不会下载到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及以下)的旧格式。