通过没有API的PHP脚本获取minecraft uuid


Get minecraft uuid by PHP script without API

如何获得Minecraft玩家UUID与UTF-8名称的玩家,如"игрок"?在这种情况下,任何已知的API都不能正常工作。更重要的是,API使用与外部资源的连接,因为我只想使用一个PHP脚本。在Java代码中获取播放器的UUID是:

UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8))

需要帮助创建函数模拟。

在PHP中实现这一行为并不容易,因为nameUUIDFromBytes的所有位算术都依赖于64位的双补整数,然而PHP的整数受限于处理器体系结构的位数- 32为32,64为64,所以除非你能保证它只在64位系统上运行,否则你必须找到一个任意精度库来为你做。

因此,为什么不直接将PHP封装在Java中呢?例如,为这个脚本创建一个Jar文件:

package uuid;
import com.google.common.base.Charsets;
import java.util.UUID;
public class GetUUID
{
    public static void main(final String[] args)
    {
        System.out.println(UUID.nameUUIDFromBytes(("OfflinePlayer:" + args[0]).getBytes(Charsets.UTF_8)));
    }
}
然后有一个PHP脚本调用Jar文件,像这样:
<?php
$username = @$_GET['username'];
if(empty($username))
{
    http_response_code(400);
    die;
}
echo exec("java -jar C:'UUID.jar $username");
?>
然后你可以用http://example.com/uuid.php?username=test调用PHP脚本,这将产生:

530 fa97a - 357 f - 3 - c19 - 94 - d3 - 0 - c5c65c18fe8