Minecraft指令手册

你好MC

首页 >> Minecraft指令手册 >> Minecraft指令手册最新章节(目录)
大家在看嫡嫁千金 陆地剑仙:剑阁守剑八十年 这本小说很健康 玄幻:无双皇子,征战诸天! 我!反派家主,开局剜瞳 开局金风细雨楼主,一刀惊天下 万古神帝张若尘最新章节列表 我的弟子全是大帝之资 太上武神诀 超神宠兽店 
Minecraft指令手册 你好MC - Minecraft指令手册全文阅读 - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - 好看的玄幻魔法小说

第一百四十章 真正深入了解NBT-6

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

(真正深入了解Nbt-6)

(注意,本章中指出的中文minecraft wiki错误现已修正)

在前五章,我们仔细地了解了一下Nbt的数据类型。现在,我们已经了解得差不多了,那么还剩下什么呢?

Nbt的版本

——第三节:Nbt的版本

Nbt最早在Indev版本就出现了,但是当时只有0到10这11个标签可用。

后来,到了minecraft beta1.3,Nbt正式有了第一个格式版本:

minecraft 1.2版本时,Notch引入了Anvil[.mca]文件格式来存储区块,在此之前存储区块的文件格式为Region[.mcr](minecraft beta1.3时为存储区块引入的)。而随着Anvil的引入,Nbt的版本正式由升级到了,虽然只是新加入了一个整形数组(Int Array:[I])。

神奇的是,1.12版本时加入Long长整型时并没有更新Nbt格式版本号。

Nbt的版本就是这样,但它对我们有啥影响呢?

目前,如果我们要编辑Nbt文件,我们除了使用Java版1.13及之后minecraft内置的SNbt和压缩后(GZIp压缩)的Nbt文件的转换器来编辑Nbt文件,还可以使用第三方软件编辑Nbt的文件。如果我们使用第三方软件Nbt编辑文件的话,Nbt的格式版本此时就有些影响了:

NbtEdit————windows

NbtExplorer————windows\/mac\/Liunx

NEINedit————mac

mineback Ultimate————windows

Nbt2YAmL————windows

webNbt————浏览器

Nbt grammar for Synalyze It————mac

如上,每个软件所支持的Nbt格式是不同的。只不过,对我们的影响似乎也就这一点。

——第四节:SNbt

上面我有提到一个东西:SNbt,那么SNbt是个什么鬼东西呢?

其实它并不是一个鬼,而且它并不陌生,我们已经见过它很多很多次了。

它的全称就是:String Named binary tags(字符串化的二进制命名标签)

似乎这么说来还有点陌生。那么就直白点说吧,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文件

那么我们该如何启动它呢?

很不简单。首先,我们需要一个minecraft 1.13版本及以上的服务端,你可以在mcbbS或者是官方启动器上下载,只不过官方的下载.......你需要一个迅雷。

下载完后,你可以直接粗暴地双击server.jar(服务端),你也可以按照作品相关里的教程自己创建一个.bat文件方便打开:

@echo off

color 0

title A minecraft Server

java -xms2g -xmx2g -jar server.jar pause

如果你打开不了,那有3种可能:

1.你抄错了上面的指令(方法:细心检查)

2.你未安装JAVA(方法:安装一个JAVA 8)

3.你安了个32位的JAVA(方法:卸了,重新装一个64位的JAVA 8,或把-xms2g -xmx2g调成-xms1g -xmx1g)

(会不会有人打开不了,发现没安JAVA,于是下了个32位的JAVA 10,只不过不是脱机的,然后嫌下载慢随便在网上找了一个。结果JAVA安好了,捆绑软件也一大堆,浏览器主页还被改了。再次打开仍然打开不了,于是删了Java 10,去下了个64位的Java 10,这次聪明用脱机。结果发现系统是32位,不知道怎么弄,弄来弄去还差点把windows换成了mac。最后重新买了一台装了64位的windows系统电脑,花了998$。安了64bit JAVA 10,再次打开,发现还是打开不了。然后才了解到mc是JAVA8的,于是下了Java 8 64bit脱机,结果仍然打不开。最后终于发现原来打成了:

@echo off

color 0

title A minecraft Server

java -xms2g -xmx2g -jar server pause)

回到正题。

按照作品相关里的教程,我们配置好服务器后(实际上不用配置也可以),这样子做:

首先,打开命令提示符(windows)或终端(mac)

打开方法这里就不多叙述了。

然后复制这一串代码:

java -cp server.jar net.minecraft.data.main

复制粘贴进去不要立刻执行,因为这毛用都没有,还会显示:

(windows)

错误:找不到或无法加载主类 net.minecraft.data.main

(mac)

错误:找不到或无法加载主类 net.minecraft.data.main

原因: java.lang.classNotFoundException: net.minecraft.data.main

那么该怎么办呢?

其实很简单,你直接输入进去这系统压根就找不到server.jar这个文件,所以,这里你就要这样子:

打开你的server.jar所在的文件位置,然后直接把整个server.jar文件拖进去,你就会发现系统自动给你输入了server.jar的路径。

现在好了,你只需要用这段路径替换原来的server.jar,比如你的server.jar路径是:

d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar(windows)

\/Users\/block\/desktop\/桌面文件\/Server\/server.jar(mac)

那么你替换之后,就会变成这个样子:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main(windows)

java -cp \/Users\/block\/desktop\/桌面文件\/Server\/server.jar net.minecraft.data.main(mac)

现在,执行,你就成功——走出了第一步。系统找到了这个server.jar,并执行了指令,只要你这个server.jar是1.13版本及以上的,那么就会跳出:

option description

-----------------

--all Include all generators

--client Include client generators

--dev Include development tools

--help Show the help menu

--inputString Input folder

--outputString output folder (default: generated)

--reports Include data reports

--server Include server generators

这是啥意思呢?我们把这一大串放到生草机里去搅拌一下,就会得到:

选项说明

-----------------

--全部

包括所有发电机

--客户

包括客户端生成器

--开发

包括开发工具

--救命

显示帮助菜单

--输入

输入文件夹

--输出

输出文件夹(默认:生成)

--报告

包括数据报告

--服务器

包括服务器生成器

差不多可以看出一些端倪,只不过这仍然太生草了。所以我们需要上一下minecraft wiki,得出这些东西的具体用途是:

--all 生成原版数据包

--client 生成assets\/minecraft文件夹,包含blockstates和models文件夹

--dev 用于Nbt文件和SNbt文件的相互转换[需要验证]

--help 显示选项和描述列表

--input 输入含有nbt或snbt文件的文件夹

--output 规定输出的目标文件夹,若目标文件夹不存在则自动新建该文件夹(默认为generated)

--reports 生成reports文件夹,包含biomes文件夹和blocks、mands、registries三个JSoN文件

--server 生成data\/minecraft文件夹,包含advancements、loot_tables、recipes、tags四个文件夹

--validate [需要更多信息]

现在我们可以尝试生成一个原版的数据包,这就需要在控制台上输入:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --all(没错,只需要在原本的后面加上你要执行的指令就可以了),回车运行。

然后你就会发现出现了一大串的信息。

接着,到目录去查看......

反正作者这边什么东西也没有生成。minecraft wiki上还写着:

原版数据包(pack.mcmeta文件除外)将生成在当前文件夹的generated目录中。

难不成是打开方式不对?

来试试其他的功能吧,比如这个--help,看一下会有什么帮助:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --help

结果......还是这个界面:

option description

-----------------

--all Include all generators

--client Include client generators

--dev Include development tools

--help Show the help menu

--input Input folder

--output output folder (default: generated)

--reports Include data reports

--server Include server generators

就很离谱。

对了,我们最开始不是要转换文件的吗?咋弄成这个了?

好,那现在我们就开始尝试一下--dev:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --dev --input“d:\\minecraft\\minecraft Server\\1.13.2\\world“

然后......

实际上这是一个错误的做法。正确的做法应该这样子:

在服务端这个目录创建一个新的文件夹(实际上也不用创建,创建只是为了更好的把要转换的文件集中起来),并将其取名为:input

然后,找到实际上是以Nbt存储的.dat的文件(比如world下的level.dat),将它们丢进去。

接下来,改这些文件的后缀.dat为.nbt。

最后,最重要的一点,执行:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --dev --input “d:\\minecraft\\minecraft Server\\1.13.2\\input“

(注意,空格一定要空,作者最开始时就是少了一个空格,然后就是一堆问题!特别是--input和后面的文件夹路径中间一定要空!这是个坑!)

然后,当出现:

[xx:xx:xx][main\/INFo]: Starting provider: Nbt to SNbt

[xx:xx:xx][main\/INFo]: converted level from Nbt to SNbt

[xx:xx:xx][main\/INFo]: Nbt to SNbt finished after xxx ms

恭喜你!你成功了!

但转换后的文件去哪了呢?

答案很简单:

c:\\Users\\xxxxx\\generated(windows)

\/Users\/xxxxxx\/generated(mac)

找到这个目录,你就会发现了自己期待已久的:

.snbt!

这个文件你现在可以用记事本来打开并修改了。

但现在问题又来了,我们现在可以使用dev来进行.nbt→.snbt,那该怎么.nbt←.snbt呢?

很简单。我们把刚才弄出来的.snbt文件再放进input文件夹,顺便删掉那个.nbt。再度执行:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --dev --input “d:\\minecraft\\minecraft Server\\1.13.2\\input“

然后你就会发现这不行。

为啥呢?minecraft wiki上说:

用于Nbt文件和SNbt文件的相互转换[需要验证]

很明显这里错了,--dev只能是.nbt→.snbt,并不能.nbt←.snbt。

那该怎么办呢?

使用--client:

java -cp d:\\minecraft\\minecraft Server\\1.13.2\\我的世界1.13.2官方服务端.jar net.minecraft.data.main --client --input “d:\\minecraft\\minecraft Server\\1.13.2\\input“

然后:

[xx:xx:xx][main\/INFo]: Starting provider: SNbt - Nbt

[xx:xx:xx][main\/INFo]: SNbt - Nbt finished after xxx ms

minecraft wiki上这样介绍--client:

生成assets\/minecraft文件夹,包含blockstates和models文件夹

很明显这句话完全错误(来自2021-8-5的注:实际上并不是完全错误,确实有这功能,只不过还附带了.nbt←.snbt的功能)。实际上,--client的作用就是.nbt←.snbt。现在你打开generated,你就会发现.snbt重新被转换成了.nbt。

现在我们知道了--dev是.nbt→.snbt,--client是.nbt←.snbt,也发现了minecraft wiki中的错误。剩下的内容,我们就以后再研究了,毕竟剩下的不是本章的重点。

oK那么Nbt就讲到这了。我们下一章再见。

上一章目 录下一章存书签
站内强推大奉打更人 将门:爷爷莫慌,老子真无敌了! 没钱上大学的我只能去屠龙了 丹武双绝 庶子夺唐 她是剑修 洪荒:第十三祖巫?不!得叫老子巫祖! 都市,最后一个巫族 重生宝可梦,从独角虫开始 权力医途 寻忆:武灵天下 处分我退学,高考又求我回去? 重生后,我成了奸臣黑月光 道士不好惹 繁花织梦重生女总裁的逆袭时代 豪门商途璀璨家族的风云岁月 打坐就能涨法力,贫道要无敌 开局一辆购物车发育全靠卡BUG 先和离后逃荒,我的空间能升舱 赶海:一双紫金瞳,驾驭全球海洋 
经典收藏灰烬领主 巨龙:我的两个龙妹一蠢一屑 我在崩坏世界苟到末日降临 嫡嫁千金 长生:一曲唢呐,送葬诸天仙帝 万界征服系统:我是大魔王 洪荒:我镇元子才是地道之主 赘婿神皇 丹武双绝 系统:没有资源?我直接无限复制 开局成杀神,陛下为何造反? 行走在诸天万界 天武神帝云飞扬林雨初 一部帝经镇万古 御兽仙尊 全民求生之超凡领主 金丹是恒星,你管这叫修仙? 忍界解说员 污蔑我玷污皇嫂?我直接假戏真做 国王 
最近更新气域传说之战神再起 五行真经 沧澜仙魔录 创造源 别动这个剧本 魔界龙羽生 于彼天逍遥 神源录 绝域凡仙行 最强模拟,没有选项,全继承 后室之UT大酒店 万界执掌 魔起苍山 开局挖弟弟至尊骨,我直接捏爆 败犬圣女,把头发盘起来! 圣元纪事一双华传奇 八域灵界 银霜领主 鼎炼乾坤 月夜的传说之寻觅 
Minecraft指令手册 你好MC - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - Minecraft指令手册全文阅读 - 好看的玄幻魔法小说