第152章真正深入了解NBT-6和2020年大事件表
(真正深入了解nbt-6)
在前五章,我们仔细地了解了一下nbt的数据类型。现在,我们已经了解得差不多了,那么还剩下什么呢?
nbt的版本
——第三节:nbt的版本
nbt最早在indev版本就出现了,但是当时只有0到10这11个标签可用。
后来,到了minecraftbeta1.3,nbt正式有了第一个格式版本:19132
minecraft1.2版本时,notch引入了anvil[.mca]文件格式来存储区块,在此之前存储区块的文件格式为region[.mcr](minecraftbeta1.3时为存储区块引入的)。而随着anvil的引入,nbt的版本正式由19132升级到了19133,虽然只是新加入了一个整形数组(intarray:[i])。
神奇的是,1.12版本时加入long长整型时并没有更新nbt格式版本号。
nbt的版本就是这样,但它对我们有啥影响呢?
目前,如果我们要编辑nbt文件,我们除了使用java版1.13及之后minecraft内置的snbt和压缩后(gzip压缩)的nbt文件的转换器来编辑nbt文件,还可以使用第三方软件编辑nbt的文件。如果我们使用第三方软件nbt编辑文件的话,nbt的格式版本此时就有些影响了:
nbtedit——19132——windows
nbtexplorer——19133——windows/mac/liunx
neinedit——19132——mac
minebackultimate——19133——windows
nbt2yaml——19133——windows
webnbt——19133——浏览器
nbtgrammarforsynalyzeit——19132——mac
如上,每个软件所支持的nbt格式是不同的。只不过,对我们的影响似乎也就这一点。
——第四节:snbt
上面我有提到一个东西:snbt,那么snbt是个什么鬼东西呢?
其实它并不是一个鬼,而且它并不陌生,我们已经见过它很多很多次了。
它的全称就是:stringnamedbinarytags(字符串化的二进制命名标签)
似乎这么说来还有点陌生。那么就直白点说吧,snbt就是纯文本形式的nbt,且通常用于指令!我们所见到的所有文本形式的nbt都是snbt!
——第五节:nbt⇄snbt
我们现在知道了nbt文件它其实是二进制的,且不同于我们平常所见到的snbt。那么,我们该怎样转化nbt和snbt呢?
其实很简单,上面提到mc社区里有许多第三方软件,随便下一个基本上就可以了。
但第三方软件毕竟不是mojang开发的。那么mojang这个官方有开发吗?
答案是肯定的。
java版1.13之后,mc服务端就有自带的数据生成器。这个数据生成器有这么几个功能:
1实现nbt(.nbt)⇄snbt(.snbt)
2生成原版数据包的全部内容
3生成一个列出了所有方块状态、注册名和完整的原版命令树的json文件
那么我们该如何启动它呢?
很不简单。首先,我们需要一个minecraft1.13版本及以上的服务端,你可以在mcbbs或者是官方启动器上下载,只不过官方的下载.......你需要一个迅雷。
下载完后,你可以直接粗暴地双击server.jar(服务端),你也可以按照作品相关里的教程自己创建一个.bat文件方便打开:
@echooff
color0
titleaminecraftserver
java-xms2g-xmx2g-jarserver.jarpause
如果你打开不了,那有3种可能:
1.你抄错了上面的指令(方法:细心检查)
2.你未安装java(方法:安装一个java8)
3.你安了个32位的java(方法:卸了,重新装一个64位的java8,或把-xms2g-xmx2g调成-xms1g-xmx1g)
(会不会有人打开不了,发现没安java,于是下了个32位的java10,只不过不是脱机的,然后嫌下载慢随便在网上找了一个。结果java安好了,捆绑软件也一大堆,浏览器主页还被改了。再次打开仍然打开不了,于是删了java10,去下了个64位的java10,这次聪明用脱机。结果发现系统是32位,不知道怎么弄,弄来弄去还差点把windows换成了mac。最后重新买了一台装了64位的windows系统电脑,花了998$。安了64bitjava10,再次打开,发现还是打开不了。然后才了解到mc是java8的,于是下了java864bit脱机,结果仍然打不开。最后终于发现原来打成了:
@echooff
color0
titleaminecraftserver
java-xms2g-xmx2g-jarserverpause)
回到正题。
按照作品相关里的教程,我们配置好服务器后(实际上不用配置也可以),这样子做: