ZH:Mojang API

注意

 * 所有公共API均受速率限制，因此您应该缓存这些结果. 当前的设置为每10分钟600个请求，但可能会更改.
 * 对于API的某些部分，有时包括演示版帐号但有时又不包括. Mojang一直在改动它.

API状态
GET https://status.mojang.com/check

返回各类Mojang服务的状态. 可能的值为 （无问题）、 （有些许问题）、 （服务不可用）.

用户名 -> 在某时间的UUID
GET https://api.mojang.com/users/profiles/minecraft/ ?at=

这将返回在提供的时间戳时该用户名的UUID.

可用于获取该名称原始用户的UUID，但是这只有在名称至少更改一次或帐号是旧版帐号的情况下才有效.


 * 时间戳是指UNIX时间戳（不包含毫秒）
 * 当未发送 参数时，将使用当前时间

响应

 * 是该uuid的当前名称，而并不是请求的名称！
 * 仅在为true时显示（未迁移到mojangd的帐号）
 * 仅在为true（未付款的帐号）时显示

如果不存在使用给定用户名的玩家，则会发送不带任何HTTP正文的HTTP状态代码. 如果时间戳不是数字、太大或太小都会发送HTTP状态代码 ，并显示如下错误消息：

UUID -> 名称历史
GET https://api.mojang.com/user/profiles/ /names

返回该用户之前使用过的所有用户名和当前使用的用户名. UUID必须不带连字符.

响应
字段是Java时间戳（以毫秒为单位）.

玩家名 -> UUIDs
POST https://api.mojang.com/profiles/minecraft

响应

 * 名称区分大小写
 * 旧版仅在为true时显示（档案未迁移到mojang.com）
 * 演示版仅在为true时显示（帐号未付款）
 * 如果任何用户名为null或空，则返回IllegalArgumentException
 * HTTP头必须为
 * 每个请求不能超过10个名字

UUID -> 档案 + 皮肤/披风
GET https://sessionserver.mojang.com/session/minecraft/profile/

这将返回玩家的用户名以及它们相关的所有其他信息（如皮肤）. 示例：https://sessionserver.mojang.com/session/minecraft/profile/4566e69fc90748ee8d71d7ba5aa00d20

这有一个更严格的速率限制：你只可以每分钟请求一次相同的档案，但是您可以发送任意多的唯一请求.

响应
"textures"对象"value"的base64解码后字符串：
 * 如果用户尚未将minecraft.net帐号迁移到mojang，则 将出现在响应中.


 * 时间戳有时会是过去的（可能是由于缓存了结果？）
 * 若玩家模型拥有纤细的手臂（“Alex”样式），则 对象将拥有 . 而对于方形手臂（“Steve”样式），则将缺少.
 * 如果未设置自定义皮肤，则将缺少 . 玩家是否具有“Alex?”或“Steve?”外观，取决于其UUID的Java哈希码. 奇哈希则将使用Steve. 示例实现：
 * PHP
 * Go
 * JavaScript（包含注释）
 * Java（包含示例UUID）
 * 相似地，当帐号没有披风时将缺少.

更换皮肤
POST https://api.mojang.com/user/profile/  /skin

这将为所选档案设置皮肤，但Mojang的服务器将从URL获取皮肤. 这也适用于旧版帐号.

响应
发生错误时，服务器将发送回带有错误的JSON. （若成功为空白有效负载）

头
Authorization: Bearer  

负载
此API的有效负载由两个url编码的表单字段（由'＆'组成）组成. model=<""/"slim">&url= 

model是默认模型的空字符串，而slim模型为“slim”.

示例
curl -H "Authorization: Bearer  " --data-urlencode "model=" --data-urlencode "url= http://assets.mojang.com/SkinTemplates/steve.png " https://api.mojang.com/user/profile/  /skin

POST /user/profile/ /skin HTTP/1.1 Host: api.mojang.com User-Agent: curl/7.49.0 Accept: */* Authorization: Bearer   Content-Length: 69 Content-Type: application/x-www-form-urlencoded model=&url=http%3A%2F%2Fassets.mojang.com%2FSkinTemplates%2Fsteve.png

上传皮肤
PUT https://api.mojang.com/user/profile/  /skin

这会将皮肤上传到Mojang的服务器，同时设置了用户的皮肤. 这也适用于旧版帐号.

响应
除非错误，否则无响应

头
Authorization: Bearer  

负载
该API的负载由多部分表单数据组成. 有两部分（顺序与边界的b/c无关）：

示例
curl -X PUT -H "Authorization: Bearer  " -F model=alex -F file="@alex.png;type=image/png" https://api.mojang.com/user/profile/  /skin

PUT /user/profile/ /skin HTTP/1.1 Host: api.mojang.com User-Agent: curl/7.49.0 Accept: */* Authorization: Bearer   Content-Length:   Content-Type: multipart/form-data; boundary=  --  Content-Disposition: form-data; name="model" slim --  Content-Disposition: form-data; name="file"; filename="alex.png" Content-Type: image/png   -- --

重置皮肤
DELETE https://api.mojang.com/user/profile/  /skin

将用户的皮肤重置为默认皮肤.

响应
除非错误，否则无响应

头
Authorization: Bearer  

示例
curl -X DELETE -H "Authorization: Bearer  " https://api.mojang.com/user/profile/  /skin

DELETE /user/profile/ /skin HTTP/1.1 Host: api.mojang.com User-Agent: curl/7.46.0 Accept: */* Authorization: Bearer  

被阻止的服务器
GET https://sessionserver.mojang.com/blockedservers

返回用于在客户端尝试连接时对照服务器地址进行检查的SHA1哈希列表.

客户端使用ISO-8859-1字符集依据此列表检查小写名称. 他们还将尝试检查子域名，并用 替换每个级别. 具体来说，它会根据域名中的 进行拆分，遍历每个部分，一次删除一个. 例如，对于 ，它将尝试 、 和. 使用IP地址（通过划分为4个部分进行验证，每个部分都是0到255之间的有效整数，包括0和255之间的有效整数），替换将从头开始，因此对于 ，它将尝试 、 、 和.

此检查由netty中的bootstrap类完成. 默认netty类被启动器加载的com.mojang:netty依赖覆盖. 这使其可以影响使用netty（1.7+）的任何版本.

响应
所有按行分隔的SHA1哈希列表.

目前约有2200种哈希值已被破解. 6f2520f8bd70a718c568ab5274c56bdbbfc14ef4:*.minetime.com 7ea72de5f8e70a2ac45f1aa17d43f0ca3cddeedd:*.trollingbrandon.club c005ad34245a8f2105658da2d6d6e8545ef0f0de:*.skygod.us c645d6c6430db3069abd291ec13afebdb320714b:*.mineaqua.es 8bf58811e6ebca16a01b842ff0c012db1171d7d6:*.eulablows.host 8789800277882d1989d384e7941b6ad3dadab430:*.moredotsmoredots.xyz e40c3456fb05687b8eeb17213a47b263d566f179:*.brandonlovescock.bid 278b24ffff7f9f46cf71212a4c0948d07fb3bc35:*.brandonlovescock.club c78697e385bfa58d6bd2a013f543cdfbdc297c4f:*.mineaqua.net b13009db1e2fbe05465716f67c8d58b9c0503520:*.endercraft.com 3e560742576af9413fca72e70f75d7ddc9416020:*.insanefactions.org 986204c70d368d50ffead9031e86f2b9e70bb6d0:*.playmc.mx 65ca8860fa8141da805106c0389de9d7c17e39bf:*.howdoiblacklistsrv.host 7dca807cc9484b1eed109c003831faf189b6c8bf:*.brandonlovescock.online c6a2203285fb0a475c1cd6ff72527209cc0ccc6e:*.brandonlovescock.press e3985eb936d66c9b07aa72c15358f92965b1194e:*.insanenetwork.org b140bec2347bfbe6dcae44aa876b9ba5fe66505b:*.phoenixnexus.net 27ae74becc8cd701b19f25d347faa71084f69acd:*.arkhamnetwork.org 48f04e89d20b15de115503f22fedfe2cb2d1ab12:brandonisan.unusualperson.com 9f0f30820cebb01f6c81f0fdafefa0142660d688:*.kidslovemy500dollarranks.club cc90e7b39112a48064f430d3a08bbd78a226d670:*.eccgamers.com 88f155cf583c930ffed0e3e69ebc3a186ea8cbb7:*.fucktheeula.com 605e6296b8dba9f0e4b8e43269fe5d053b5f4f1b:*.mojangendorsesbrazzers.webcam 5d2e23d164a43fbfc4e6093074567f39b504ab51:touchmybody.redirectme.net f3df314d1f816a8c2185cd7d4bcd73bbcffc4ed8:*.mojangsentamonkeyinto.space 073ca448ef3d311218d7bd32d6307243ce22e7d0:*.diacraft.org 33839f4006d6044a3a6675c593fada6a690bb64d:*.diacraft.de e2e12f3b7b85eab81c0ee5d2e9e188df583fe281:*.eulablacklist.club 11a2c115510bfa6cb56bbd18a7259a4420498fd5:*.slaughterhousepvp.com 75df09492c6c979e2db41116100093bb791b8433:*.timelesspvp.net d42339c120bc10a393a0b1d2c6a2e0ed4dbdd61b:*.herowars.org 4a1b3b860ba0b441fa722bbcba97a614f6af9bb8:justgiveinandblockddnsbitches.ddns.net b8c876f599dcf5162911bba2d543ccbd23d18ae5:brandonisagainst.health-carereform.com 9a9ae8e9d0b6f3bf54c266dcd1e4ec034e13f714:brandonwatchesporn.onthewifi.com 336e718ffbc705e76b4a72884172c6b95216b57c:canyouwildcardipsplease.gotdns.ch 27cf97ecf24c92f1fe5c84c5ff654728c3ee37dd:letsplaysome.servecounterstrike.com 32066aa0c7dc9b097eed5b00c5629ad03f250a2d:mojangbrokeintomy.homesecuritymac.com 39f4bbfd123a5a5ddbf97489877831c15a70d7f2:*.primemc.org f32f824d41aaed334aef248fbe3a0f8ecf4ac1a0:*.meep.in c22efe4cf7fb319ca2387bbc930c1fdf77ab72fc:*.itsjerryandharry.com cc8e1ae93571d144bf4b37369cb8466093d6db5a:*.thearchon.net 9c0806e5ffaccb45121e57e4ce88c7bc76e057f1:*.goatpvp.com 5ca81746337088b7617c851a1376e4f00d921d9e:*.gotpvp.com a5944b9707fdb2cc95ed4ef188cf5f3151ac0525:*.guildcraft.org

统计信息
POST https://api.mojang.com/orders/statistics

获取有关Minecraft销量的统计信息.

负载
负载是"metricKeys"键下的json选项列表. 您将收到与所请求类型的销售总额相对应的单个对象. 您必须请求至少一种销售类型. 以下是https://minecraft.net/en/stats/使用的默认列表

有效选项有： item_sold_minecraft prepaid_card_redeemed_minecraft item_sold_cobalt item_sold_scrolls

响应
返回一个包含已销售副本总数、最近24小时内售出的副本数量和每秒的销售量的json对象.

示例
C# | 完整的API包装器

Go | UUID或名称至拥有皮肤、披风和名称历史的档案

Python | 完整的API包装器

Python | UUID或名称至档案

Python | 名称的文件至UUID和名称的文件

PHP | UUID或名称至拥有皮肤、头颅和名称历史的档案

PHP | UUID至名称

PHP | UUID至名称、名称至UUID

Java | 几近完整的API包装器

JavaScript | UUID或名称至拥有皮肤、披风和名称历史的档案