因为我的Minecraft服务器开启了白名单(之前有被人炸过服,地图全毁了,到处被放了岩浆,甚至还有6只凋零...后来就对地图数据做了定时备份),然后我的同学想要来和我一起盖房子,所以我需要把他加入白名单。他是Minecraft正版用户,为了把他的账号加到MC服务器的白名单,我需要得到他的UUID(通用唯一识别码 Universally Unique Identifier)。
如何得到正版用户的UUID呢?问了群里大佬,大佬扔了一个链接给我。
//MoJang官方接口
https://api.mojang.com/users/profiles/minecraft/
这是MoJang官方提供的接口,可以查询Minecraft用户的UUID。
//请求https://api.mojang.com/users/profiles/minecraft/BadFlandre
//返回以下数据
{
"name": "BadFlandre",
"id": "a23f0f6a253d48698ec7e2705aecda4d"
}
好了,现在就可以编辑 whitelist.json 文件把账户添加进去了。
[
{
"uuid": "a23f0f6a253d48698ec7e2705aecda4d",
"name": "BadFlandre"
}
]
OK,完成~
然而他依然进不来,因为我的服务器没开正版验证...没办法只能先关闭白名单让他进来然后在控制台用 /whitelist add [user] 命令把他加到白名单里再启用白名单了...
好的那顺便来搞一下今天的主题(水文)
我们已经知道了MoJang官方的接口:
URL:https://api.mojang.com/users/profiles/minecraft/
方式:GET
然后就可以来拼接一个接口了。
官方都有接口了,为什么还要自己封装一个呢?因为我要水文吖
<?php
header('Access-Control-Allow-Origin:*');//允许所有来源访问
header('Content-type: application/json');//设置返回的内容类型为JSON
$gamenick = $_GET['nick'];//传入用户名
//判断传入的昵称参数是否为空,为空则返回错误代码。
if($gamenick == '') {
echo "{\"Code\":\"400\",\"Tips\":\"Nickname is null!\"}";
exit;
}
$timeStamp = time();//时间戳
$mojanguuid = "https://api.mojang.com/users/profiles/minecraft/$gamenick?at=$timeStamp";
$data = file_get_contents($mojanguuid);
$suuid=json_decode($data,true);//解析接口返回的JSON数据
//判断接口返回的昵称参数是否为空,为空则说明昵称不存在,返回错误代码。
if ($suuid['name'] == null) {
echo "{\"Code\":\"404\",\"Tips\":\"Nickname does not exist!\"}";
exit;
} else {
$uuid = array("Code" => "200","UUID" => $suuid['id'],"Nick" => $suuid['name'],);
$uuid = json_encode($uuid,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);
echo stripslashes($uuid);
return $uuid;
}
?>
//请求方式GET
https://api.mxlbs.cn/minecraft/uuid/api.php?nick=[UserName]
好了,来试试吧?
查询BadFlandre的UUID:https://api.mxlbs.cn/minecraft/uuid/api.php?nick=BadFlandre
返回示例:
{
"Code": "200",
"UUID": "a23f0f6a253d48698ec7e2705aecda4d",
"Nick": "BadFlandre"
}
查询空值(未填写昵称)的UUID:https://api.mxlbs.cn/minecraft/uuid/api.php?nick=
返回示例:
{
"Code": "400",
"Tips": "Nickname is null!"
}
查询错误的昵称(不存在的昵称)的UUID:https://api.mxlbs.cn/minecraft/uuid/api.php?nick=0
返回示例:
{
"Code": "404",
"Tips": "Nickname does not exist!"
}
好的,我文章水完了也快高考了,溜了溜了。
Comments | 11 条评论
很早就知道Minecraft的说x
之前也在手机上面玩过x
可是一直都没能静心去创造一个属于自己的世界x
现在也好长时间都没有玩了…
(pc版本的价格居然是移动版的近5倍…)
@千羽 比起基岩版我更喜欢JAVA版(
@东方幻梦 唔?难道要分别买嘛…?
不懂诶x…
Microsoft Store里面的是基岩版嘛?
手机版好像只有一个的说x
@千羽 Microsoft Store里面的就是基岩版
水,都可以水(
@ohmyga

ε=ε=(ノ≧∇≦)ノ
和OMG贴贴你也玩Minecraft啊⊙ω⊙
@卿歌 难道玩Minecraft很奇怪🐴?awa(疑惑)
……害,我只是想回个车,没想到就发出去了。
@云游君 哈哈哈
水(