第一百零七章 如何获取你在Minecraft中的头
这章我们来讨论些可怕的东西。
你是否想过一个问题:如何在Minecraft中获取你的头?
答案是肯定的,你甚至可以把它拿在手上,然后.......
挂在墙上(好滑稽啊啊啊啊啊!)
(事实上真的有个JAVA服务器这么做了)
问题来了,怎么获取你的头呢?
这个时候就要用到头颅这个物品。
你应该知道,正常头颅的皮肤是Steve(史蒂夫)的头,也有骷髅、僵尸等怪物的头。
但你知道吗?你可以改变头颅的皮肤——变成其他玩家的。
头颅具有一个数据类型为文本的SkullOwner标签,你可以在这个标签内写上一个玩家的名字,然后就可以获取到这名玩家的头。比如我们籽岷大大的Minecraft正版用户名是Zi_Min,你就可以:
/give @s minecraft:skull 1 3 {SkullOwner:“Zi_Min“}
\\Java1.13以下版本\\
/give @s minecraft:br /layer_head{SkullOwner:“Zi_Min“}
\\Java1.13及以上版本\\
(近日一外国小哥在Minecraft获得了籽岷的头,那么它是怎么.......)
需要注意的是,上述方法仅仅适用于下面两种情况:
①你是通过离线账户来游玩Minecraft的
②你是通过正版账户来游玩Minecraft的
为什么呢?因为游戏之所以能够获取到对应玩家的头颅,是因为游戏向Mojang官方服务器发送了请求,然后官方服务器再把这个皮肤数据传送回来,其过程有些类似于玩家登录服务器游玩。因此,当你在某离线或正版Java服务器中运行上述指令,腐竹就有可能在某一天无聊翻看服务器根目录的usercache.json文件时惊喜的发现:
{“name“:“Zi_Min“,“uuid“:“1aa95b71-48fc-4636-962b-e95de5071da6“,“exbr /iresOn“:“202x-xx-xx xx:xx:xx +0800“}
(???籽岷来玩我服务器了?)
.......
等等,你在运行上述指令后,只是获取到普通的玩家头颅,或者说获取到了看起来不是籽岷皮肤的头颅?
如果你仅仅是获取到普通的玩家头颅,那大概率是你的问题:
①你写错了
②你网断了
③你用的基岩版
④你在单人游戏中尝试,且没有打开『对局域网开放』
⑤你的电脑或服务器无法连接到官方服务器
⑥你电脑的防火墙阻止了你的Minecraft访问官方服务器
但如果你获取到了看起来不是籽岷皮肤的头颅,那就肯定是这个问题:
您正在使用外置登录游玩Minecraft
什么是『外置登录』?
我们知道,Minecraft的正版玩家能够登录并显示皮肤,是因为Minecraft游戏本体向官方服务器发送了玩家的登录信息,服务器经过验证无误后再返回皮肤等信息,最终你在游戏中的角色就有了皮肤。但对于一个没有正版账号的Minecraft玩家来说,发送一个虚假的登录信息给官方服务器肯定是不行的。那该如何让盗版玩家也能够享受上皮肤的好处呢?
要解决这个问题很简单。盗版玩家之所以无法显示皮肤,是因为将『虚假的登录信息』发送给了『正版服务器』。如果我们自己搭建一个盗版服务器,然后再让Minecraft将这个『对于盗版服务器来说是正确的但对正版服务器来说是虚假的登录信息』发送给『我们自己的盗版服务器』,这样子负负得正,我们发送的信息也就成为了『正确的登录信息』,Minecraft也就可以获取到『盗版服务器』传来的皮肤,最终在游戏内显示出来。
这就是『外置登录』的原理。在真正的『外置登录』中,各大皮肤站就是『盗版服务器』,我们在各大皮肤站注册的账号就是『对于盗版服务器来说是正确的登录信息』。当我们在诸如HMCL、PCL2之类的Minecraft Java第三方启动器中输入『对于盗版服务器来说是正确的登录信息』和该信息对应的『盗版服务器』,再让启动器以『外置登录』的方式启动时,Minecraft就会尝试发送『对于盗版服务器来说是正确的登录信息』给『正版服务器』。
(等等,这样子的话哪里会验证成功啊?)
别急,好戏还在后头。
当启动器检测到Minecraft正将『对于盗版服务器来说是正确的登录信息』发送给『正版服务器』时,启动器会以迅雷不及掩耳之势,在消息还未发送到正版服务器时,就一把夺过Minecraft与『正版服务器』的通信,把这个通信从『正版服务器』上拔下来,插到指定的『盗版服务器』上面去。此时『对于盗版服务器来说是正确的登录信息』就不会发送给『正版服务器』,而是发送到对应的『盗版服务器』。『盗版服务器』在收到登录信息后,验证通过,发送皮肤等信息给Minecraft,Minecraft此时就会认为该登录信息正确,允许玩家登录游戏并显示皮肤。
上述过程十分完美,但由此会产生出一个问题:
当我们通过指令获取指定玩家的头颅时,游戏本应该会发送请求给『正版服务器』,但启动器这么一操作就使得信息往『盗版服务器』那边发,最终导致我们获取到『盗版服务器』上对应玩家的头颅,而不是我们想要的正版玩家头颅。
举个例子。假设你想要获取到籽岷的头颅,这时候你就会尝试通过上述指令获取。如果你用的是离线或正版登录,那没什么,游戏可以正常从官方服务器那边拿到正确的头颅。但如果你是在LittleSkin(一个皮肤站)上注册了一个账号,然后通过外置登录游玩Minecraft,此时你再尝试获取籽岷的头颅,就不会获取到正版玩家『Zi_Min』也就是籽岷的头颅,而是LittleSkin这个皮肤站上『Zi_Min』这个玩家的头颅。如果这名玩家也用的是籽岷皮肤那也没什么,但如果ta用的是其他的皮肤,你就可能会疑惑『籽岷怎么改皮肤了?』。
这就是为什么用外置登录会获取到错误头颅的根本原因。
另外,网易我的世界虽然不是外置登录,但也和外置登录很类似——网易修改了Minecraft Java的源代码,使得皮肤请求会往网易服务器那边发。因此如果你在网易我的世界中尝试获取籽岷的头,实际上也无法获取到正确的头,仅仅只能得到网易服务器上『Zi_Min』玩家的头颅。
上面这些便是获取到指定玩家头颅的办法。但本章还未结束,因为在这,Mojang埋了一个大大的彩蛋:
Mojang是个好心人,他给了我们一些特殊的头颅。
这些头颅大多数是动物的,但其中不乏一些特别神奇的头颅。
没错,就是那个被玩梗玩到飞起的Herobrine!
(只不过这Herobrine的胡子好像被剃须刀刮掉了)
下面是名单:
MHF_Alex——Alex的头
MHF_Blaze——烈焰人的头
MHF_CaveSbr /ider——毒蜘蛛的头
MHF_Chicken——鸡的头
MHF_Cow——牛的头
MHF_Creebr /er——苦力怕的头(Creebr /er?)
MHF_Enderman——小黑的头
MHF_Ghast——恶魂的头
MHF_Golem——铁傀儡的头
MHF_Herobrine——吾王Herobrine的头
MHF_LavaSlime——地狱史莱姆的头(我忘记这怪物叫啥了)
MHF_MushroomCow——蘑菇牛的头
MHF_Ocelot——豹猫的头
MHF_Pig——猪的头
MHF_PigZombie——猪人的头
MHF_Sheebr /——羊的头
MHF_Skeleton——小白的头
MHF_Slime——史莱姆的头
MHF_Sbr /ider-蜘蛛的头
MHF_Squid——鱿鱼的头
MHF_Steve——Steve的头
MHF_Villager——被砍了鼻子的村民的头(村————民————)
MHF_WSkeleton——凋零骷髅的头
MHF_Zombie——僵尸的头
(奇怪了?Herobrine的好兄弟Notch的头去哪了?)
(其实获取Notch的头并不需要在前面添加上MHF,因为Notch本身就有MC帐户)
但Mojang不止砍了动物以及玩家的头,还饶有兴趣地把目光放在了部分方块上。
于是名单上又多了:
MHF_Cactus——缩水的仙人掌
MHF_Cake——小蛋糕
MHF_Chest——小箱子(并不能放东西)
MHF_CoconutB——棕色的椰子
MHF_CoconutG——绿色的椰子
MHF_Melon——在贫瘠土地上生长的西瓜
MHF_OakLog——在贫瘠土地上生长的木头
MHF_Present1——绿色的.......礼包?
MHF_Present2——红色的........礼包?
MHF_Pumbr /kin——在贫瘠土地上生长的南瓜
MHF_TNT——被做成标本的TNT
MHF_TNT2——被做成标本的TNT(另一个材质)
Mojang不止把心思放在了动物和方块上(还有一些彩蛋),还把目光投向了地图制作者。
于是他们给地图制作者添加了以下几个比较有用的头颅:
MHF_ArrowUbr /——朝上的箭头
MHF_ArrowDown——朝下的箭头
MHF_ArrowLeft——朝左的箭头
MHF_ArrowRight——朝右的箭头
MHF_Exclamation——一个感叹号
MHF_Question——一个问号
这一章到此为.......奇怪了这存档里所有树的树叶都被偷了?
这到广
......
......
......
......
附录:头颅历史
Java
1.4.2——加入了头颅。此时虽然可以获取自定义头颅,但只能通过修改游戏的NBT文件才能实现。
1.7.2——现在可通过指令获取到自定义头颅。
1.8——骷髅、僵尸、苦力怕和凋灵骷髅的头颅可通过相应生物被闪电苦力怕炸死来获得。
1.8.4——自定义玩家头颅的来源现在只能是官方服务器。
1.9——加入了龙首。
1.13——头颅的命名空间ID被改变。
携带版/基岩版
0.12.1——加入了头颅
1.0.0——加入了龙首