如何查询Minecraft正版用户UUID

发布于 2020-05-30  432 次阅读


  因为我的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!"
}

  好的,我文章水完了也快高考了,溜了溜了。


只是当时已惘然。