Minecraft指令手册

你好MC

首页 >> Minecraft指令手册 >> Minecraft指令手册最新章节(目录)
大家在看 网游之无敌盾战 我也不想拿NBA总冠军 重生之鬼眼受爷 B级天赋,一样可以登顶 重生到游戏入侵五年前 开局超S级天赋,我把求生当度假 坐轮椅持羽扇,操控时间戏众生! 火影:不一样的轮回眼 龙珠:天下无敌贝吉特 逃不掉!又被黑化男主强制爱
Minecraft指令手册 你好MC - Minecraft指令手册全文阅读 - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - 好看的游戏小说

第一百一十章 UUID

上一章 书 页 下一章 阅读记录

在minecraft JAVA 1.7.10版本更新中,mojang认为玩家可以更改用户名。但如果玩家可以更改用户名,那么一个用户名就不能完全代表一个玩家。解决这个问题的唯一办法,就是给玩家添加一个从按下注册那一键开始就不能改变的唯一识别码。

使用什么样的识别码呢?mojang直接就采用了不管是在minecraft中还是在网络上都十分常用的『Universally Unique Identifier』来作为玩家的不可改变识别码,这就是作者在之前经常提到的UUId,它的中文名叫做『通用唯一识别码』。

一个UUId本质上是一个长达128位的随机生成的二进制数字,但我们不可能直接使用它的二进制形式,而是使用它的『十六进制』或『十进制』形式。

在十六进制中,最常见的形式就是:

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

这是UUId的『十六进制表示形式』。准确的来讲,是『有连字符的十六进制(hyphenated hexadecimal)』形式。这种形式的UUId本质上是将UUId转化到十六进制后,再用连字符『-』将其分割成8+4+4+4+12的5段。

当然,把连字符去掉就是纯洁的『十六进制形式(String ithout hyphens)』了:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

只不过去掉连字符的话,你有很大概率会抄错,所以还是建议在抄UUId之前给它加上个连字符。

什么?你不知道十六进制?

那你总知道十进制吧?在十进制中,数字是逢十进一。比如:

5+5=10

所以对于十六进制来讲,数字就是逢十六进一。比如:

(5+5)+7=a+7=11

其中,字母『a』在十六进制中代表『十』这个数字。以此类推,b代表『十一』、c代表『十二』.......f代表『十五』。

这就是十六进制,你懂了吗?

回到正题。我们在第一百零六章时就已经遇到过『有连字符的十六进制』这种形式的UUId了。你还记得吗?让我们回忆一下:

『\/attribute @s minecraft:generic.max_health modifier value get 1-1-1-1-1 2.0』

其中,参数『1-1-1-1-1』就是一个『有连字符的十六进制』形式的UUId。等等,为什么这个UUId不是8+4+4+4+12的?

如果你有注意到游戏返回的消息,就会发现,这种UUId在游戏眼中会被视为:

『00000001-0001-0001-0001-000000000001』

也就是,UUId中数字前面的0可以被省略。比如:

『00000101-0001-0003-0015-0000000』

上面这串UUId就可以省略成:

『101-1-3-15-』

这是一个非常人性化的设计,也非常符合数学。

需要注意,如果是『-1001-1001-1001-』这样的,可不要想着缩写成:

11-11-11-11-11

不然游戏会以为这个UUId是『00000011-0011-0011-0011-000000000011』的缩写。

这种缩写不仅仅在『有连字符的十六进制』形式中可用,在其他形式中照样可用。

现在你知道了十六进制形式的UUId。那之前的UUIdmost(UUId高位)和UUIdLeast(UUId低位)到底是啥呢?

在解答之前,作者建议你先去找一个进制转换器,以方便现学现做。

以刚才的『00000001-0001-0001-0001-000000000001』举例,现在它是十六进制。

把前面三段(00000001-0001-0001)和后面两段(0001-000000000001)分开,并分别划成10进制,变成:和这两个数。

这两个数就是这个UUId的高位以及低位了。其实高位以及低位就是将十六进制的UUId切成两半然后划成10进制得出的数,明白点,就是:

xxxxxxxx-xxxx-xxxx 这一段转换成10进制就是UUId most

xxxx-xxxxxxxxxxxx 这一段转换成10进制就是UUId Least

(在Nbt中,这两个标签的数据类型都为Long长整型)

但要注意,如果没有特别指明,你是不知道一个16进制的数字到底是正还是负。

原因的话,百度\/谷歌一下,你就知道(毕竟这是minecraft指令教学,不是计算机课)。

这种高位和低位的UUId形式,被称为『高低位(most\/Least)』。这种形式在minecraft Java1.16版本更新前几乎遍地都是,但在Java1.16更新中却几乎绝迹了。

为何?因为在1.16版本更新后,Nbt中大部分UUId再也不是『高低位』形式,而是使用了一个全新的表现方式:整型数组(int-array)

其样式我们在之前已经碰过好几次了。比如下面这一串:

[I;-,,-,-]

好像这种形式的UUId和其他形式没有太大关系。

但其实这种UUId和其他形式的UUId也可以互相转换,不然正版玩家的UUId就得重新设置。

如果你不想了解的话,可以跳过这一段,去看看UUId到底该如何获取。

但如果你想了解的话,不妨也来看一看。

仔细观察这一串数组,你会发现这4串数字有正负号,并且没有出现字母,加上这是个『整型数组』。这些证据都证明,这四串数,是十进制。

既然是十进制,那就好办了。根据UUId most以及UUId Least的经验,这四串数,极有可能是十六进制的UUId平均分成4段再分别划成十进制的数。

为了验证我们的猜想,先随机一个UUId:

十六进制——09fa22c0-807d-4a29-b0fa-a6513fab4822

数组形——[I;,-,-,]

将『09fa22c0-807d-4a29-b0fa-a6513fab4822』的连字符去掉,再平均分成4段,并取最前面的那一段,也就是:

09fa22c0

划成十进制就是:!

这种数组形式的UUId本质上就是将16进制形态的UUId平均分成四段再分别划成十进制最后组合成一个数组!

等等,遇到了一个问题,这个负数问题,该怎么办?

百毒一下,你就知道。

了这么多UUId,那么UUId该怎么获取?

如果你是一位Java版的腐竹,开着一个服务器,那你就可以到服务器的根目录找到一个名叫usercache.json或usernamecache.json的文件,里面有全部服务器玩家的UUId。

对于Java的正版玩家来,有许多网站可以通过输入玩家的名字或UUId来查询一个正版玩家的皮肤、UUId等信息,甚至可以知道这个玩家去过哪些服务器,这些服务器现在有多少人在线,他的游戏时长是多少!虽然不知道这些数据是怎么获取的(极有可能是爬虫),但这也方便我们查询自己的UUId(以及别饶)。

比如最常见的mcuuid.net和namemc.。

但别忘了,实体也有UUId。那实体的UUId如何获取?

有很多种方法,你可以去网上搜。这里只讲一个最方便的:

在Java1.13及以上版本中,使用聊栏填写指令时,只要你的准心对着一个实体,在填写目标选择器类型的参数时你就可以通过tab键一键获取到这个实体的UUId(有连字符的十六进制形式)。

对了,正版玩家的UUId还可以通过mojang给出的api来获取,具体用法为:

api.mojang.\/users\/profiles\/minecraft\/一个正版玩家的用户名

这里拿一个用户名叫做『minecraft』的正版玩家举例,输入api.mojang.\/users\/profiles\/minecraft\/minecraft,网页就会返回如下JSoN:

{“name“:“minecraft“,“id“:“bfae140c3b836a066c6debd8f“}

其中的id就是这名玩家的十六进制UUId。

附录:UUId历史

Java

1.16——Nbt中的UUId几乎都改成了整形数组的形式,抛弃了原有的高低位形式。

喜欢Minecraft指令手册请大家收藏:(m.132xs.com)Minecraft指令手册132小说网更新速度最快。

上一章 目 录 下一章 存书签
站内强推 鹰视狼顾 下山退婚:逍遥神医 谁家魔王会跟勇者一起冒险啊 第五形态 时间贩卖店 深渊归途 我只是想安静的打怪升级 开局拐骗大宋将士造反 慕君已久,愿君长宁 我在星际重着山海经 觉醒邪恶小法师被动,征服深渊 大唐:开局带太子勾栏听曲 火影:不一样的轮回眼 妖世祥瑞娇妻,雄性急疯了 锦上 真理铁拳 浓欢 谁懂啊?糊咖退圈后读兽语翻红了 龙珠:天下无敌贝吉特 总裁夫人:竟成了我的红颜
经典收藏 锦上 星际重生之通关系统 斗罗之瞎子斗罗 亡灵阶梯 万族图鉴:你管这叫F级天赋? 创造与魔法:我的魔晶能提现 从零开始的篮球生涯 荒岛的困局与挣扎 其实,我没那么爱你 重生夏目之妖恋 火影:不一样的轮回眼 龙珠超之仙人模式 先生,和你不谈爱 率土三国:什么是最强雇佣军团 明星助理上位记 浮生沐烟雨 万界比武场 游戏之王者无敌 崩铁:卡池角色,给玩家发刀 穿越火线之电竞传奇
最近更新 新手村合出神器,怪物们,颤抖吧 崩坏原神铁道:开局曝光三大主角 末世回溯:时间边缘的守望者 我在网游里点满奇葩技能 网游:重生法爷,光暗之主 崩坏:始于树梢的回响 这个仙道NPC靠玩家续命 别人玩游戏,我修仙 召唤最弱?抱歉我可是召唤主宰! NBA:黑寡妇和大表姐,我都要 网游:开局刮刮乐,觉醒唯一SSS天赋 杀怪百分百爆率,你跟我比幸运? 顶级海王重生2012,全是碾压 诡海迷航:永夜亡魂号 白夜浮生录 欢迎来到神明的游戏 网游:这个牧师是数值怪 斗罗:退婚后,深陷强者修罗场 国运:婚配对象全是萝莉 IG来了个新打野,他能看穿地图
Minecraft指令手册 你好MC - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - Minecraft指令手册全文阅读 - 好看的游戏小说