• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】

教程 【原创搬迁】《Minecraft指令手册》—— 一本轻松幽默的 Minecraft 指令教学书

从今天开始,本人将会逐步将个人在起点中文网的Minecraft 命令教程作品《Minecraft指令手册》搬迁至 MineBBS!

《Minecraft 指令手册》MineBBS 发布前言​

  2020 年初,疫情期间,本人在家里没事干,突发奇想想像其他人一样写点小说,但是自己不会写(
  怎么办呢?既然不会写小说,但是可以写教程啊!于是,本人开始在起点中文网上连载《Minecraft指令手册》。没想到,这一写就是 4 年,然后基本上停更了 1 年( qwq
  尽管本人自认为该教程还不够好,但根据读者反馈,该教程受到了很多读者的欢迎(以及收藏吃灰),并起到了较好的教学作用。但由于起点中文网本身的排版格式限制,本书只能绞尽脑汁进行排版。还有不更新(1 个月)就被迫下架的离谱机制(好像现在没了,7月上架之后一直活到现在11月),导致本书曾在一段时间内无法在阅文集团各大平台上被阅读。加上其他种种因素,本人决定自本帖发布开始,将逐步在 MineBBS 上再次发布《Minecraft指令手册》,并进行适当的排版以给予读者更好的阅读体验。至于内容将会保持不变,但对于一些严重不符合现状的内容会进行注释。注释的风格如下:
不符合的内容 注:XXXXXX
  那么,《Minecraft 指令手册》是一本什么样的教程呢?
  正如其名,本书最开始的目标是“指令手册”,也就是系统性介绍 Minecraft 中的各种指令,但后面写着写着不仅成了指令手册,更是成为了一个教程。和其他指令教程不一样的是,首先本书覆盖版本很广,大致的覆盖范围在本书的序言中有提及:
本书所讲到的指令涵盖:
Minecraft Java1.4.2~1.19.1
携带版(Minecraft: Pocket Edition)1.0.5~基岩版(Minecraft:Bedrock Edition)1.19.10
  鉴于本书已经停更超过一年,因此不一定适用于更新版本的 Minecraft,但大部分内容应该仍然可用。
  其次,本书的语言更加口语化,但不失严谨性。在章节中会穿插情境、玩梗(有些章节梗的密度我现在看都感觉不适<_<,但大部分还是可以接受的),类似于小说和教程两种风格的碰撞。本书的百度百科对此的介绍十分精准(谁写的给他送朵小红花:evil:):
全书采用渐进式教学结构,划分为"新手入门"至"NBT时代"七大阶段,涵盖基础指令操作、命令方块应用、实体生成机制等技术要点,逐步延伸至计分板系统、红石电路联动等进阶内容。通过百余章实例演示与概念解析,结合"表情包生成""抽奖漏斗搭建"等创意玩法,融入基岩版特性说明、JSON文本格式解析等最新游戏机制。创作风格轻松幽默,穿插愚人节更新解析等特殊章节......
  因此,本书相比那些晦涩难懂的指令教程,可能更容易看懂,也更有乐趣。就算没有看懂,那种知识从脑海中划过的感觉也十分酸爽 awa。当然,鉴于本书的历史已经比较悠久,所以在此我大致介绍一下本书的发展历程:
  • 2020年初:本书发布
  • 2020-2022年,保持更新,完成了百余章节
  • 2022-2024年,放缓更新,对百余章节进行大修
  其中,非常重要的就是这个大修。若你在网上搜索 Minecraft 指令手册,你会发现在很多盗版平台上,本书的目录以及内容和目前起点中文网上的版本大相径庭。其中,盗版网站上的内容明显更加的口语化(到令人不适),且内容更肤浅,包含的错误更多。实际上,本书最开始写作时,本人还不够成熟,因此文本总体质量较低,且大部分内容都是直接参考 Minecraft Wiki并结合自己经验的内容,独创性不够高并且有较多个人经验错误。早期少部分章节为了图快还整块 copy Minecraft Wiki的内容。后面本人意识到这个问题并开始进行修改。修改过程后,绝大部分的教学内容均是在游戏内实地测试过才发布的,而非照搬 Minecraft Wiki内容,为此还发现了少许 Wiki 上的错漏之处,并在文中指出。同时,copy 的部分也被完全删除,并标注了参考信息来源。修改后的语气保留了口语化的优点,也大幅度提升了严谨性,同时适当降低了梗的密度,并引入了更多情境化案例和埋藏的彩蛋。内容的硬骇程度也有所提高。但第一百一十四章后的内容并未进行大修,因此第一百一十四章过后十余章,仍然存在一些问题,但好在当时的写作风格也相对成熟了许多,内容整体上并没有太大问题,更不存在抄袭之类的严重问题(反而是内容开始被营销号抄袭了),就是梗的密度有时候明显太多了。
  本书将会以每周几章的速度在下方更新(搬运),具体更新速度取决于本人空闲时间以及排版复杂度。另外,您也可以在起点中文网等阅文集团平台上阅读本教程,欢迎来投个推荐票!
  考虑到编写本书的辛苦,因此若未取得本人授权,则禁止转载。但若仅作小部分引用(单次连续引用部分 < 1000 字),或进行视频创作等衍生作品的开发(为什么一本指令教程还会有二创),在保留署名的情况下,则完全允许。其他未考虑到的情况会在之后补充。当然这个 1000 字是随便写的,若限制过严或有些问题,也可以在充分讨论后调整:嘿嘿:
  另外,重要提醒,尽可能不要将本书发布于 MineBBS 的消息发布在起点上,因为起点有可能会因为作者将书发表于非阅文集团平台而下架该书!尽管 MineBBS 并非起点的竞争对手(如果是那就好了),但这方面的风险仍然存在。

本书第一次大修完成感言​

2022年11月5日 17:03 783字
  今天,2022年11月5日,本书的第一次大修正式完成。
  此次大修原计划是修到第十三卷『JAVA版的JSON』,但迫于时间原因只修到了第十一卷『NBT时代』完。虽然辛苦是辛苦,但最终的结果很喜人——自序言开始到第十一卷,大部分章节经过修改甚至重写后,错误大大减少,文风也更加严谨。并且,许多章节的低质量内容被替换为其他更应该讲的内容。比如第八十六章『mobevent-不想要流浪商人?关掉就可以了』,由于所讲的指令/mobevent过于简单,章节内容就被替换成了讲解基岩版新指令/music,而原本的内容被移到了第六十六章『指令大杂烩』中。
  由于改动实在巨大(具体可以前往作品相关看『本书第一次大修进程表』),有超过一半章节内容被重写,大约四分之一的低质量章节内容被替换。所以我强烈推荐还没看过更改后章节的读者重新看一遍,或许你会有一些新的收获。
  第一次大修完结的PDF文档可加群下载(但不要乱传或抹去作者信息)。PDF文档的观感可能会比在线上阅读更好一些。当然,如果以后能够抽时间将本书做成一个指令教程网站可能更好。
  回到正题。第一次大修虽然修了很多问题,但仍然还有很多问题没有修。所以本书可能会在2023年暑假开启第二轮大修。新一轮大修的主要内容很有可能包含:
  1. 翻新第十二卷-第十五卷的内容
  2. 调整章节顺序,使得内容能够更好地循序渐进
  3. 更正新发现的错误,添加新版本的内容
  4. 更多配图
  因此,第二轮大修可能会比第一轮更加辛苦。
  接下来本书将会尽可能保证最低一个月一章的更新量(以防止被阅文平台屏蔽)。接下来几卷的内容也大致定了下来:
  1. 第十七卷——了解data指令
  2. 第十八卷——了解方块实体和方块状态,并更深入了解data指令
  3. 第十九卷——综合运用NBT、JSON
  4. 第二十卷——初识算法
  作为一个可能很冷门的Minecraft指令教程,自2020年1月初偶然间产生的一次想要写教程的想法以来,本书的第三个年头也要到头了。
  最后,希望2023年,本书能够帮助更多读者学习指令,Minecraft能够继续向前发展,世界也将变得更好。
  本章到此结束!

阅读本书需注意事项​

2022年1月28日 22:12 1072字
  食用本书前请先看这里!
  1. 由于平台的限制,本书内几乎没有配图(第十卷除外),全是文字。因此,阅读本书时,建议配合Minecraft食用。
  2. 如果您使用的是安卓客户端(不管是起点读书APP还是QQ阅读APP)阅读本书,一些符号将会出现乱码(如<>、&)。使用IOS客户端和浏览器阅读可以解决这个问题。
  3. 本教程适用的游戏版本很广,目前可以确认的是Java1.12.2、1.13.2、1.16版本绝对适用,Java1.8版本至1.19.1版本、基岩版1.2.0至现今版本基本上适用,Java Alpha 1.0.16到1.7.10版本应该能够适用,Java Alpha 1.0.16版本之前基本上不适用,Java1.19.1版本以上情况未知(应该大部分适用)。由于要适配很多的版本,因此本书内容可能不太适用于只玩一个版本的玩家(毕竟还要了解很多自己可能用不上的知识。额,只不过开阔一下见识也很不错)。
  4. 本教程内含有较多的非官方(如本书的『指令』一词,官方翻译为『命令』。两者是同义词。)和一些自创名词,使用这些名词时请注意,最好到Minecraft Wiki确认一下官方的翻译。
  5. 本教程内含有部分内容在中文Minecraft Wiki甚至是整个Minecraft Wiki中并未记载(也有可能记载了,但藏的太深),这些内容基本上是由作者个人实验得出,正确性以及在其他版本中的适用性有待考证。
  6. 作者最开始写本书时,由于是第一次写指令教程,经验比较匮乏,因此含有较多的错误和疏漏之处。目前本书已完成第一次大修,改正了许多错误。
  7. 本书大致可以分为三部分:第一卷为基础部分,第二卷至第十卷为各个指令使用教程,第十一卷至目前最新章节为NBT和JSON教程。由于本书讲得很深,每个指令不管有用没用基本上都讲了,因此对于新手来说大可不必每章都看、每句都要琢磨能否看懂。另外,本书的第一、二卷讲解的顺序安排其实有些不合理(比如第二章就讲了命令方块,导致有些完全没指令基础的人直接看蒙掉),建议看的时候大致按照如下顺序
    阅读本书需注意事项→序言→MC新手要学习的基础—2(可选)→第一章→第三章→第五章→第六章→第四章→第七章→第六十九章前半部分→第十五章→第十章→第十一章→第九章→第八章→第二章→之后可自由安排
    在以后本书的第二次大修中,我将会优化本书前面部分的讲解顺序,尽量做到循序渐进,让大家不至于一下子就看迷糊然后直接放弃。
  8. 本书使用的指令格式可能并不严谨,官方的格式和本书内的格式有些许不同之处
  9. 本书可能不太适合单纯玩基岩版的玩家
  10. 由于我近来老是懒得更新,由于起点的谜之机制,鸽一个月后本书将会被迫屏蔽直到下一次更新。所以建议加入本书的QQ群来获取书本的PDF文档。
  看完这些注意事项后,你就可以前往下一章正式开始阅读本书了!
  (如果你比较闲的话,来给本书配个图也可以的,反正段评谁都可以发)

附录:本书写作时参考的其他网页/教程​


第一卷 新手入门

哎呀,想学指令,怎么打出来呢?

序言​

2020年1月3日 21:24 1647字
(于2022年7月5日修改补充)

  《Minecraft》是一款由马库斯·阿列克谢·泊松(Markus Persson),也就是我们常说的Notch,创办的Mojang工作室开发的一款沙盒游戏。2014年时,Notch将整个Mojang卖给了微软。而现在,你正在看我介绍这款叫做Minecraft的游戏。
  看到书名时你应该就知道了,这本书的内容是关于Minecraft中指令的使用教程。至于为什么你会在一个99.99%的书都是小说的阅读平台上看到这本游戏工具书,这就说来话长了。
  注意!本书不是个游戏同人小说,就是个正儿八经的游戏教程。本教程适用于Minecraft各阶段玩家(云玩家、新手、普通玩家、大佬、萌新),并且最好至少要有一些Minecraft的基础知识(如创造和生存模式分别是什么东西,Minecraft游戏的基本玩法是什么等)。
  本书前期作者写得不好,目前正在翻新修改(比如这个序言就翻新好多遍了),你可能会发现有纰漏之处,欢迎指正。本书所讲到的指令涵盖:
Minecraft Java1.4.2~1.19.1
携带版(Minecraft: Pocket Edition)1.0.5~基岩版(Minecraft:Bedrock Edition)1.19.10
  你可以加入QQ讨论群(太冷了):936503067。
  那Minecraft中的指令到底是个什么东西?(已经知道的可以跳过,下面一大段都是给刚入门Minecraft的新手或没玩过Minecraft看的,玩过一段时间Minecraft的人应该非常清楚。)
  你大概应该知道编程是个什么东西吧?在编程中,你需要通过一行行代码来实现一些功能和流程,然后再由这些不同的功能和流程,加上亿些优化,就写成了一个简单的程序。而指令,虽然从狭义上来说并不是个编程语言,但从某个方面上来说,它本质上也确实有点类似于编程。
  但是这又跟我们本书有何关系呢?答案当然是有关系,但这是我们几百章之后的内容了。
  所以指令到底是个什么东西?通俗的来讲是这样的:你养了一条狗,为了使这只狗听话,你就需要一次次的训练它,让它对你说的某些特定的话或特定的行动产生条件反射。比如你每竖一次中指,就示意这只狗跑向你,久而久之,当这只狗看见你竖中指时,不需要你的示意,它就自动跑到你的身边来了。在这里,你的“竖中指”行为,就是一条指令,而这条指令会被指令接受者接收并执行,即“狗看见你竖中指然后跑到你身边”的行为。这就是“指令”这个词的基本含义。
  如果把这只狗换成Minecraft(这里没有任何贬低MC的意思),那指令在Minecraft的作用你应该能想到吧?通过某种方式发出特定的一串字符,就会让Minecraft做出一些事情,比如不保存并退出游戏(?Minecraft没这个指令吧?)。
  当然,Minecraft并没有反射弧,所以Minecraft中的指令和对狗发出的指令有些不同。具体的不同在于——Minecraft中的指令,可以设定“参数”。
  什么是“参数”呢?我们知道,狗能理解这个指令并做出相应的动作是长久以来训练而成的。但像狗这种训练出的动作有个缺点——不会变通,即你并不能竖一个中指然后指了指十米开外的张三想让狗跑到张三身边,它仍然还是跑到你身边。放到Minecraft中,这就相当于是向Minecraft发出“杀死张三”的指令结果把自己给杀了(根据狗的思维方式,Minecraft只能理解“杀死”,但忽略了“张三”。并且因为“杀死”这条指令的效果是“杀死发出指令的人”,最终就导致你去世了)
  狗的思维凭借我们目前的技术还改变不了,但Minecraft的程序都是人写的,自然就要防止这种情况,让指令变得更加有用,于是就有了“参数”。参数可以在有限的范围内自由修改,这就增加了指令的自由度。有了“参数”后,“杀死张三”这条指令在Minecraft接收到时就会将其拆成两部分:①杀死②张三。“杀死”被Minecraft理解为将要执行的动作,“张三”被Minecraft理解为这动作要执行在一个叫“张三”的东西身上。于是,你成功把张三给杀了。其中,“张三”就是这条指令的参数,你可以将“张三”改为“李四”,甚至是“王五”,再执行,就会杀死不同的玩家。
  也就是说,指令本质上只是一串可以让Minecraft做出特定反应的文本。指令的执行过程简单来说也仅仅只有如下四个步骤:
  执行者(如玩家)发送指令给Minecraft→Minecraft对收到的指令进行解析→如果指令语法正确则执行指令→返回指令执行结果
  在Minecraft真正的指令中,上面的“杀死张三”正确的写法为“/kill 张三”。这些内容你会在后面的章节中详细地了解到。如果你成功理解了上面对指令的描述,接下来几十章的内容你应该也能够成功理解。
  注:如果你直接跳过了前面的内容,直接就看到了序言这,还请先往前翻看看『作品相关』内的『阅读本书需注意事项』一章)
 
内容版权许可
作者保留一切权利,禁止转载

第十六章 title-屏幕标题​

2020年1月6日 17:35 1661字
  /title 指令正如标题所言。可以在屏幕上显示标题,就像是 PPT 的那个大字一样。这个命令相对于之前我们学过的命令比较复杂。
  /title
  用处
:在单个或多个玩家的游戏屏幕上显示标题
  需要权限等级:Java-2,基岩-1
  格式

/title <玩家:目标选择器> clear

\\可以清除指定玩家正在显示的标题\\

/title <玩家:目标选择器> reset

\\可以复原对指定玩家屏幕标题的渐入、保持、淡出时间的设置\\

/title <玩家:目标选择器> title <主标题内容:JSON 文本[Java] | 字符串[基岩]>

\\在指定玩家屏幕正中心显示主标题,如果此时已有主标题正在显示将会覆盖该标题\\

/title <玩家:目标选择器> subtitle <副标题内容:JSON 文本[Java] | 字符串[基岩]>

\\在指定玩家屏幕正中心显示主标题时显示副标题,如果此时已有副标题将会覆盖该标题。如果执行指令时并没有主标题正在显示,将会在下次主标题显示时配套出现\\

/title <玩家:目标选择器> actionbar <附加文字内容:JSON 文本[Java] | 字符串[基岩]>

\\在指定玩家物品栏上方显示一些文字,如果此时已有文字正在显示将会覆盖这些文字\\

/title <玩家:目标选择器> times <文字渐入时间:游戏刻> <文字保持时间:游戏刻> <文字淡出时间:游戏刻>

\\可以对指定玩家屏幕标题文本显示时的渐入、保持、淡出时长进行设置,单位是游戏刻\\

  相信大多数人看了上面六种格式的说明,已经大致会用这条指令了。不难发现,使用 /title 指令可以在屏幕上的三个地方显示文本,一个是屏幕正中心的“主标题”,一个是主标题下方的“副标题”,一个是物品栏上方的“附加文字”。这就有点像什么?没错,PPT。
  让我们打开 PowerPoint 或 WPS Office,新建一个文档,什么排版格式都不要选,然后就是:

单击此处添加标题
单击此处添加副标题

1763994208263.webp

  没错,在 Minecraft 使用 /title 指令时显示的主标题和副标题就是这个样。
  而物品栏上方的附加文字,我们只需要插入一个横排文本框,将其拖到 PPT 页面的“单击此处添加副标题”正下方,注意要对齐中间,然后输入一点文字,再将文字大小改到差不多 12 左右。没错,就是这么个感觉。
  我们也可以在 Minecraft 中使用 /title 做出 PPT 的感觉,只需要这样子摆好命令方块:

A→B→C→​

  在 Java 版中这样设置:
  • A:循环,保持开启,不受制约—— title @a title {"text":"单击此处添加标题"}
  • B:连锁,保持开启,不受制约—— title @a subtitle {"text":"单击此处添加副标题"}
  • C:连锁,保持开启,不受制约—— title @a actionbar {"text":"单击此处添加文本"}
  在基岩版中这样设置:
  • A:循环,始终活动,无条件—— title @a title 单击此处添加标题
  • B:连锁,始终活动,无条件—— title @a subtitle 单击此处添加副标题
  • C:连锁,始终活动,无条件—— title @a actionbar 单击此处添加文本
  然后......
  然后你就会看到屏幕上出现了不断闪烁的主标题和副标题,只有物品栏上方的“单击此处添加文本”没有闪。
  这是怎么回事?
  因为标题有渐入保持淡出的时长
  默认这三者的时长是 10 游戏刻(0.5s)、70 游戏刻(3.5s)和 20 游戏刻(1s),可以通过 times 来改变。因为我们要让它一直显示,我们就可以:

/title @p times 0 10000 0

  这样子我们也就不需要循环并保持开启了,直接改为脉冲、红石控制就可以了。
  但是这显示的时间也太长了。如果要清除,我们此时就可以使用clear来清除标题:

/title @a clear

  同时建议使用 reset 复原刚才对 times 三个值的更改:

/title @a reset

  现在,我们算是把 /title 六个格式都用了一遍,基本上掌握了 /title 的使用方法。但我们仍然要注意一些东西。
  首先副标题不会单独显示,而是需要和主标题配套显示。如果在主标题还未显示时指定了副标题,这个副标题将会在下一次主标题显示时配套出现(注意,主标题淡出后也会清除副标题)。
  其次,物品栏上方的文本并不会受到 times、reset 和 clear 的影响,就像刚才作者更改了渐入、保持、淡出三者的时间,只是标题受到了影响,物品栏上方的文本仍然还是按照默认值来。而且,物品栏上方的文本重复显示时并不会闪,而是好端端的正常显示。这两点需要注意。
  最后需要注意的是,Java 版的 title 其文本使用的是 JSON 文本,所以刚才的指令中,Java 版和基岩版的指令不太一样。基岩版也有使用 JSON 文本的 title 指令,它是 /titleraw。上一章讲过的 /tell 指令也有一个 JSON 变种:/tellraw。关于 /tellraw 和 /titleraw 会在下一章以及之后的内容提到。

历史​

Java​

版本​
更新内容​
1.8​
加入了 /title​
1.11​
加入了可以在快捷栏(物品栏)上方显示文本的能力

携带版和基岩版​

版本​
更新内容​
1.0.5​
加入了 /title
1.9.0​
加入了 /titleraw
 

第十七章 Java版JSON文本初识​

2020年1月6日 17:57 3920字
  在上一章提到了 JSON 文本。JSON 文本在学习指令前期估计只有 /title 和 /tellraw 会用到,所以我们这边也就先认识一下如何使用 JSON 文本显示文本内容。
  JSON /ˈdʒeɪsən/,全称 JavaScript Object Notation,是一种轻量级资料交换格式。而我们今天所要了解的,叫做 JSON 文本(JSON Text)。更确切的来说,是原始 JSON 文本(Raw JSON Text)
  需要注意,JSON ≠ JSON 文本 ≠ 原始 JSON 文本。JSON 有很多用途,不仅仅是拿来给你发消息用的。JSON 文本严格来说指的是原始 JSON 文本经过识别所转化成我们人能够看得懂的文本,没有带 JSON 语法的那种,也就是最终的输出形式。原始 JSON 文本既然带有『原始』二字,那就是指还未经过识别的 JSON 文本,也就是还处于原始形态并带有 JSON 语法的 JSON 文本。
  在 Minecraft 中,Java 版和基岩版的 JSON 文本略有差别,但大体都相同。本章主要讲的是 Java 版的原始 JSON 文本的使用,因为在基岩版,原始 JSON 文本在指令中使用程度并不高。我们会在第六十章讲到基岩版的 JSON 文本。
  如果你还没搞懂,也没关系,看下去就完事了。
  原始 JSON 文本听起来很高级,让人望而生畏,给人一种『作者似乎想要尝试教会你们』的样子,但其实它并不高级,相反还很简单。
  简单到什么程度呢?看:

""

  这是一串没有任何内容的简写 JSON 文本,如果将其识别,转化为正式的输出文本格式,那将会是一串空空如也的文本。
  我们可以尝试向里面加入一些东西,比如:

"Hello Minecraft"

  这串 JSON 文本被识别后,也就是运行『/tellraw @a "Hello Minecraft"』,将会输出如下内容:

Hello Minecraft

  (注意,JSON 文本的所有括号均为英文半角括号,但阅文平台会自动将英文半角括号改为中文全角括号,所以会有些奇怪)
  是不是很简单?但你有没有注意到,上面我提到『这是一串没有任何内容的简写 JSON 文本』,注意『简写』两字。
  所以它的真正形态是什么呢?如下:

{"text":"Hello Minecraft"}

  别害怕,这仍然很简单。
  上面这就是刚才那个『"Hello Minecraft"』的真正形态。我们对这个完全体进行解剖,可以得到如下内容:
  1. { —— 一个花括号,这个花括号告诉游戏『嘿,这里是 JSON 文本的开始!』。游戏也根据它的形态,判断出接下来将是一个 JSON 对象
  2. " —— 一个英文半角括号,这个括号告诉游戏『这里是一个字符串的开始!』
  3. text —— 一串英文。游戏暂且不知道这串英文的意思,于是它继续看下去。
  4. " —— 又是一个英文半角括号,这个括号告诉游戏『这里是这个字符串的结束!』
  5. : —— 一个英文半角冒号,这个冒号告诉游戏『这里是这个组件 (key-value pairs) 的名称与值的界限!』。游戏根据以往的经验,确认刚刚遇见的『"text"』是这个组件的名称(key),这个组件是一个 text 纯文本内容组件
  6. " —— 还是一个英文半角括号,这个括号告诉游戏『这里是又一个字符串的开始!』
  7. Hello Minecraft —— 一串内容,游戏根据前面得到的消息,确认这是这个组件的值(value)。游戏因此得知,这个 text 纯文本内容组件将会显示出『Hello Minecraft』。
  8. " —— 最后一个英文半角括号,这个括号告诉游戏『这里是这个字符串的结束!』
  9. } —— 又一个花括号,这个花括号告诉游戏『这里是 JSON 文本的结束!』
  然后游戏根据以上信息,确认这个原始 JSON 文本的意思是:显示出一串文本(text),内容为『Hello Minecraft』
  我们也可以根据以上信息,了解了这个 JSON 文本:
  1. 这个 JSON 文本被一对花括号({})包围,这对花括号标志着这个 JSON 文本的开始和结束
  2. 这个 JSON 文本内有两个内容,text 和 Hello Minecraft。这两个内容都是字符串,因此均被英文半角括号("")所包裹着。一对英文半角括号标志着一个字符串的开始和结束。
  3. 『"text"』是组件的名称(key),由于是字符串需要加上括号,所以其中的 text 才是具体的名称,意思为『文本』,标志着这个组件的值是一串要被显示出来的文本,也标志着这个组件是一个纯文本内容组件
  4. 『"Hello Minecraft"』是这个组件的值(value),由于它是一个字符串,因此要被括号包裹着,所以 Hello Minecraft 才是值的内容。这标志着这个纯文本内容组件将会显示出『Hello Minecraft』。
  5. 『:』英文半角冒号是一对『组件名称』与『组件值』的分界线,其左边是名称,右边是值。
  6. 『"text":"Hello Minecraft"』像这样的由一对『名称』和『值』组成的东西,叫做『组件』(key-value pairs)
  7. 一个组件的名称规定了该组件是个什么东西,干什么用的。值则规定了该组件具体要干什么,怎么干。
  8. 如果值或组件名是一个字符串(组件名肯定是),那就得使用括号将其包裹起来。
  9. 外面被花括号所包裹着的,里面有一个或多个组件的东西,就像『{"text":"Hello Minecraft"}』这样的,是一个 JSON对象 (Object)
  (注:上面提到的什么『组件』之类的,是本书内才有的叫法,仅为了方便大家理解,官方并无此叫法。『组件』的正式叫法是『键-值对』,又叫做『属性-值对』、『栏位-值对』、『名称-值对』。其中,『键-值对』的英文是『key-value pairs』)
  这就是 JSON 的基础语法,如果你能看懂上面的内容,那就恭喜你,接下来的内容对你来说将会相当简单。
  现在我们已经知道名称叫做 text 的组件,是纯文本内容组件。这个组件所输出的内容是一串平平无奇的文字,没有颜色,也没有什么特效。
  如果我们想要给这串文字添加更多的特效,就要了解更多的组件及其使用方法。
  在 Minecraft Java 的 JSON 文本中,可用的组件可以分为两类:内容组件修饰组件。内容组件用于规定每个 JSON 文本对象能够表现出什么样的内容,一个 JSON 文本对象最多只能有一个内容组件;修饰组件用于修饰内容组件,一个 JSON 文本对象可以拥有多个修饰组件来对输出的内容进行修饰。
  内容组件最基础的是『text』,即上面接触过的纯文本内容组件。
  使用纯文本内容组件,可以显示一串最简单的 JSON 文本,就像上面的那个 JSON 文本:

{"text":"Hello Minecraft"}

  需要注意,JSON 文本是对大小写敏感的,因此你不能写成如下的样子:

{"TEXT":"Hello Minecraft"}

  那样子会报错。
  上面显示出来的 Hello Minecraft 是最基础的白色。如果要更改文字颜色,那么就需要使用 color 组件(在 Java 版,JSON 文本很难使用分节符)。
  color 的值是字符串,也就是说需要被引号包裹着。值支持 17 种颜色 ID:
  black(黑)、dark_blue(深蓝色)、dark_green(深绿色)、dark_aqua(深湖蓝色)、dark_red(深红)、dark_purple(深紫)、gold(金色)、gray(灰色)、dark_gray(深灰色)、blue(蓝色)、green(绿色)、aqua(湖蓝色)、red(红色)、light_purple(亮紫色)、yellow(黄色)、white(白色)和 reset(取消颜色效果使用默认颜色,一般使用于子 JSON 对象中)
  比如:

{"text":"Hello Minecraft","color":"light_purple"}

  就可以显示一个浅紫色的“Hello Minecraft”。其中,color 颜色组件修饰了 text 纯文本内容组件的颜色为浅紫色。不难发现,如果有多个组件,就得使用英文半角逗号将它们分开。
  如果你认为这些颜色还不够,你甚至可以使用 HTML 的十六进制颜色格式来搞到更多的颜色。比如红色的十六位颜色编码就是:#ff0000,用到 JSON 文本里就是:

{"text":"Hello Minecraft","color":"#ff0000"}

  关于 HTML 十六位颜色编码的具体内容自己上百度或谷歌搜,这儿就不多讲了。
  我们知道分节符 § 不仅可以更改文本颜色,还可以为文本添加更多的格式。那么在 JSON 中,我们该如何为一串 JSON 文本添加格式呢?
  § 能添加五种文本格式,对应到 JSON 中即是:
  • §k 乱码 对应 obfuscated 模糊文本
  • §l 加粗 对应 bold 粗体
  • §m 删除线 对应 strikethrough 删除线
  • §n 下划线 对应 underlined 下划线
  • §o 斜体 对应 italic 斜体
  上面的五个组件其值类型均为布尔值,也就是 true(开启)和 false(关闭)。
  在 JSON 文本中,布尔值和 gamerule 一样,是使用 true 和 false,并且并不需要添加括号,因为不是字符串。
  比如要为 Hallo Minecraft 添加斜体,你就需要这样子:

{"text":"Hello Minecraft","italic":true}

  其中,italic 斜体修饰组件修饰了 text 内容组件为斜体。你可以尝试将 italic 改为其他组件,比如 underlined、bold 之类的。
  现在我们已经了解了 Java 版 JSON 文本的基本使用方法,基本上日常使用是没有什么问题了。
  不对,还有一个问题!如果要在一串 JSON 文本里前面使用一种颜色或文本格式,后面使用另一种颜色或文本格式,那该怎么办?
  确实,使用花括号包裹的 JSON 文本,也就是 JSON 文本对象,就算修饰组件能够含有多个,具体下来其实每个组件也只能包含一个,还没有什么先后顺序。
  那怎么办呢?能不能一次性就使用多个 JSON 文本对象呢?
  答案是可以的。
  我们可以将多个 JSON 文本对象排成一个阵列,组成一个 JSON 文本对象列表
  什么是列表?顾名思义,就是将各种东西列在一起的表格。在 JSON 中,列表内的内容一般都是相同类型,比如都是小数,都是整数,都是字符串,内容与内容之间用英文半角逗号分开,外侧用中括号包裹起来,这样子就形成了一个 JSON 列表。
  比如下面就是一个全都是整数的 JSON 列表:

[1,2,3,4,5,6]

  那既然列表内可以放数字,那能不能放字符串、布尔值,甚至是 JSON 对象呢?
  答案也是可以的。
  比如下面这样子:

[{"text":"Hello","color":"blue"},{"text":"Minecraft","color":"black"},"Launcher"]

  JSON 文本在解析的时候,会按照我们正常人所认为的顺序,即从左到右解析。这样子就可以实现 Hello 是蓝色,Minecraft 是黑色,Launcher 是蓝色。
  等等,为什么 Launcher 是蓝色而不是白色?
  因为在一个 JSON 列表中,列表前面的 JSON 对象定义了文本颜色,这个颜色就会传递下去,就算中途有其他对象使用了 color 改变了其他颜色,也只是作用在这个对象内,下一个对象还是使用这个颜色。文本格式也是一样的道理。
  现在就没什么问题了吧?
  需要注意一下,Java1.9 版本之前的 JSON,组件名不需要额外加括号,也就是说在 Minecraft Java1.8 版本,你可以直接这样子:

{text:"Hello Minecraft"}

Java JSON历史​

版本​
更新内容​
1.7.2​
加入了 /tellraw,第一次有指令支持了 JSON
1.8​
加入了使用 JSON 的 /title。告示牌和成书也开始使用 JSON 文本。
1.13​
自定义名称使用了 JSON 文本。加入了 name 参数使用 JSON 的 /bossbar 指令。
1.14​
物品描述标签支持 JSON文本。
1.16​
color 可以使用 HTML 十六位颜色码来更改文本颜色(需要注意这个功能是这时候才添加的)。


  As we know ,we can't type § into the chatbox. So can we type the Unicode of § into the chatbox?
  The answer to the question is no.
  So can we type it by using tellraw?
  I can say, the way is feasible in Minecraft Java 1.12.2.
  Now, let us run Minecraft Java 1.12.2, and create a new world in creative mode. Remember to allow cheats.
  After the world was created, please run the following command:

/give @s command_block

  I'm sure that you must have a command block now. Please set it on the ground.
  Right click to open the GUI, then enter the following command:

/tellraw @p {"text":"\u00a7bHello Minecraft"}

  Click the Done button to return the game. Take a lever out of your bag. Set it next the command block.
  Now let's pull the lever. The moment the lever is pulled, a line of light blue text appear surprisedly! Yes, as you looked, we can use the Unicode of § in JSON Text! Have you learned it?
  If you want to learn about it more, please search "在原版中更改任意文字颜色" in MCBBS. You will find a post by a great command veteran in 2015. PS: You cannot find it anymore because MCBBS is dead.
 

第十八章 在MC里斗表情​

2020年1月6日 18:51 2217字
(本章于2022年11月5日进行重写)
  在第三章,我们了解到在 Minecraft 中有一个特殊的符号:分节符 §。通过 §,我们可以在游戏中更改文本的颜色、格式等等,甚至打出乱码。但在基岩版中,还有一些其他的特殊符号,这些符号在 Minecraft 基岩版的界面中十分常见,你也可以在游戏中手动打出它们。
  这些特殊符号究竟是什么?有什么用途?我们又该如何打出它们?请不要走开,《走进科学》(划掉)马上为你揭晓答案。

—————Part 1—————

  张三现在十分苦恼,这已经是他今天第十次在关闭背包或工作台时不小心点开游戏指南了。但或许是因为生存玩久太无聊,也或者只是好奇,他这一次并没有马上关闭游戏指南,而是看了下去:
  『《我的世界》是一款通过堆方块............使用 WASD 可四处移动............快速连续按两次 W 或按「控制」可冲刺。按住W不放,您将继续冲刺,直到小于[鸡腿][鸡腿][鸡腿]。
  张三看到那三个代表饥饿值的鸡腿时,突然想起来了什么——好像之前在一些服务器中也有遇见过这种穿插在文本中的鸡腿图标。当时他并没有因此想到什么,但今天这样相同的鸡腿图标同样穿插在官方的帮助手册中......他突然有一个奇特的想法:是否可以在游戏中打出这些图标呢?
  于是他打开了万能的 Bing,搜索了『我的世界特殊图标』。结果十分令人 amazing 啊,第一个结果就是『【我的世界】我的世界特殊符号分享_哔哩哔哩_bilibili』。按照这个视频中的方法,他复制了视频简介的内容,并将其粘贴到到聊天框中。成了!张三犹如发现一片新大陆一样欣喜。他看着这些本应出现在官方帮助手册界面的图标,思考着是否能够把这些图标用于建筑装饰中......
  所以,你现在应该明白这些『特殊符号』究竟是什么了吧?但凡只要你玩过一些大型的 Minecraft 服务器,如花雨庭、EaseCation 之类的,肯定见过这些符号:M币、盔甲、鸡腿.......其中,又属 M币 最为典型。
  你可以通过复制粘贴的方法来在游戏中输入这些特殊符号。你可以前往网上搜索,也可以在这就地复制:

A  | B  | X  | Y 
LB  | RB  | LT键  | RT键 
两个方框键  | 菜单键 
LS键  | RS键 
十字上键  | 十字左键  | 十字下键  | 十字右键 
圆形X键  | 圆形O键  | 圆形方键  | 圆形三角形键 
L1键  | R1键  | L2键  | R2键 
圆形左键  | 圆形右键 
L3键  | R3键 
三角形上键  | 三角形左键  | 三角形下键  | 三角形右键 
圆形A键  | 圆形B键  | 圆形X键  | 圆形Y键 
方形L键 
R键  | ZL键  | ZR键 
减键  | 加键 
圆形L键  | 圆形R键 
圆形上键  | 圆形左键  | 圆形下键  | 圆形右键 
鼠标左键  | 鼠标中键 
方形上键  | 方形左键  | 方形下键  | 方形右键 
跳跃键  | 潜行键 
飞行上键  | 飞行下键 
合成提示开  | 合成提示关 
LG键  | RG键 
圆形菜单键 
LS键  | RS键 
圆形L键  | 圆形L左右键  | 圆形L上下键 
圆形R键  | 圆形R左右键  | 圆形R上下键 
LT键  | RT键 
Win键 
0键 
A键  | B键 
LG键  | RG键  | LS键  | RS键  | LT键  | RT键 
X键  | Y键 
鸡腿  | 盔甲  | M币 
教育版 
朗读 
蓝T ​

  复制的话可以到 QQ 群里下载本书的 PDF 文档或你上电脑版开 F12,甚至你直接给浏览器装一个解除禁止复制的插件都行。注:这里可以直接选中复制。
  现在,你应该已经对这些特殊符号有一个大致的了解,但同时肯定还带有一些疑问。所以接下来,我们将会深入了解这些符号。

—————Part 2—————

  Mojang 为何会在 Minecraft 基岩版中搞出特殊符号这种东西?不难发现,这些特殊符号其实都是游戏中的一些图标,如方向键、饥饿值、手柄按键。之所以要使用特殊符号,本质上其实是为了方便在游戏中插入这些常用的图标。比如游戏自带的游戏指南、设置界面、手柄按键提示等等。所以这些图标本质上并不是给我们玩家用的,而是给官方以及第三方开发者所使用,以丰富游戏内容。
  那为什么这些图标在游戏外部显示不出来,只是显示一个方框或叉叉甚至啥也显示不出来?
  其实这些『特殊符号』在国外有一个较为正式的名称:Minecraft:Bedrock Edition Unicode Characters(我的世界基岩版 Unicode 字符)。什么是 Unicode?你可以把它当作是一个相当巨大的表格,表格内存储了许许多多的字符,每个字符都有一个对应的唯一的 ID。比如字母『M』的 ID 就是『U+004D』,其中的『004D』是十六进制数字,翻译成十进制数就是『77』,代表这个字符在 Unicode 表中的第 77 位。
  Unicode 表十分巨大,巨大到它足以同时装下拉丁字母、汉字、日文、韩文、阿拉伯文等等一堆文字,甚至还装下了许许多多的表情、数学符号。在这种情况下,它还能预留出一大堆的空间以装下更多的字符。这些预留空间的一部分可能永远也不会被 Unicode 官方定义,因为它们被划分为『Private Use Area』(私人使用区)以方便其他人在有限的范围内自己定义一些字符。Minecraft 基岩版的这些『特殊字符』,其实就是一系列 Mojang 自己在 Unicode 的『私人使用区』定义出来的字符,它们只在 Minecraft 中才能够被正确识别并赋予特殊的含义。而在 Minecraft 之外,由于其他的应用程序并不会关心 Minecraft 给 Unicode 的『私人使用区』私自定义了什么东西,所以当这些应用程序遇见这些 Minecraft 的『特殊字符』时,它们仅仅会把这些字符当作是『未知字符』而不会正确显示出来,除非应用程序自己也对它们进行了一番定义。
  像这种自己在有限范围内给 Unicode 表添加更多内容的情况其实并不少见。比如 Apple 设备上可以显示出的苹果徽标,在安卓、Windows 等其他系统上就显示不出来。又比如在鸿蒙系统上的一些特殊图标,在非鸿蒙系统上就显示不出来。从本质上来说,苹果的徽标、鸿蒙的特殊图标和 Minecraft 的特殊符号,其实都是一样的——它们都是个别组织私自定义的字符。
  回到正题。相信通过上面一番解释,你应该已经了解了这些『特殊符号』的本质。接下来,让我们继续回到指令的学习中,了解如何控制 Minecraft 中的时间。
 

第十九章 time-改变时间​

2020年1月6日 20:02 867字
  看标题你应该就知道了,指令 /time 可以对 Minecraft 内的时间做出修改。
  /time
  作用
:更改、加快游戏的时间
  需要权限等级:Java-2,基岩-1
  格式
  • /time add <增加或减少的游戏刻:Int整数>
  • /time query <要查询的游戏时间类别:字符串>
  • /time set <要设置成的游戏时间:Int整数|字符串>
  /time 指令有三种格式,分别是 addqueryset
  add,意为“增加”。所以,add 的作用是增加游戏的时间(如果配上重复执行的命令方块,一游戏日 1 秒钟也可以做到)。
  那么增加所用的时间单位是啥呢?
  其实不填,默认是游戏刻(t)。游戏刻是啥?游戏刻是 Minecraft 的一种游戏时间,支撑着 Minecraft 的自然运转。1 游戏刻(t)=1/20 现实秒(s)。具体关于 Minecraft 中的时间在第二十七章有详细的讲到。
  其实时间单位也支持现实秒(s)游戏日(d),单位怎么写呢?比如“2s”,不要空格。
  当你运行 add 一次,游戏时间会增加或减少你所填的时间。
  对了,这三种时间单位的换算是:
20t=1s 1200s(20分钟)=1d​
  下一个:query。
  query,中文意思为“疑问”或“查询”。很明显,这里不可能是前者。所以 query 的作用是:查询游戏时间。
  query 又有三种参数,分别是 daytime、gametime 和 day。daytime 指的是自当天(游戏日)日出后流逝的游戏刻数,也就是相当于今天已经过去多长时间了;gametime 指的是世界总共流逝的游戏刻数,相当于这个存档已经玩了多少游戏刻了;day 指的是已流逝的游戏天数,相当于这个存档中已经过了多少天(游戏日)了。query 可以查询这三种时间,并返回相应的结果。
  下一个:set。
  set,中文意为“设置”,在很多其他 Minecraft 指令也有出现。使用 set 可以设置游戏的时间。当一个世界被创建时,时间是从 0 游戏刻开始的。比如:
/time set 0
  就可以重返世界刚生成之时。
  你也可以使用一些特定的参数来跳到指定的时间:
  • day——日出[基岩为白日](1000)
  • noon——正午(6000)
  • sunrise[仅基岩]——日出(?)
  • sunset[仅基岩]——日落(12000)
  • night——晚上(13000)
  • midnight——午夜(18000)
  (单位:游戏刻)
  有趣的是,在 Java 版使用 set 更改时间是以游戏时间为基础的,但在基岩版使用 set 却是以游戏日时间为基础的。比如使用:
/time set 0
  在 Java 版会将时间改为 0,在基岩版却会将时间改为下一游戏日刚开始的时候
  所以在基岩版,唯一能将游戏时间拨回去的方法是 /time add 负数,来减少游戏时间。
 

第二十章 weather-控制天气​

2020年1月7日 18:48 1076字
  使用 /time 可以更改时间,那么天气如何更改?
  在 Minecraft 中,能改变天气的有两个指令,分别是 /weather/toggledownfall,但后者现为基岩版独有。
  为什么 /toggledownfall 在基岩版独有呢?那是因为 /toggledownfall 在 Java 版 1.13 的时候被删除了。
  /weather,其单词 weather 的中文意思为“天气”。这么直白的指令你立马就知道了吧。
  /weather
  作用
:更改天气。
  需要权限等级:Java-2,基岩-1
  格式
  • /weather <天气ID:字符串> [持续的时间:秒(仅Java)| 游戏刻(仅基岩)]
  • /weather query(仅基岩版)

  在 Minecraft 中,天气有很多种,有晴天、雨天、雪天、雨夹雪、雷雨天、暴风雪天以及雷雨夹雪。
  但实际上只有三种,分别是:晴天雨天雷雨天
  为何呢?其实雪天是雨天的变种,在雪原生物群系(就是满地都是雪,水结冰的地方)雨天就是雪天。那雨夹雪是怎么回事?其实雨夹雪也是雨天,只不过是在下雨的地方和下雪的地方交叉形成的。雷雨天同理。
  雷雨天就相当于晚上了,光线低导致会在地表刷新怪物(1.18预览版本除外,1.18目前的预览版本怪物需要在完全没有光线的情况下才会刷,白天的雷雨天还是有一些亮度的),当然,和晚上类似,你可以睡觉度过雷雨天,就算是白天也可以。
  三个天气的ID是
  • 晴天——clear
  • 雨天——rain
  • 雷雨天——thunder
  举个例子,更改为雷雨天就需要:

/weather thunder

  但这在 Java 版只会持续 5 分钟,在基岩版则会随机持续 5~15 分钟,因为没有填“持续的时间”参数。
  持续的时间如果不填写,在 Java 版默认是 5 分钟,在基岩版则默认是随机 300~900 秒。注意,『持续的时间』参数的单位在 Java 版是,基岩版则是游戏刻
  另外,在目前 Java 和基岩的最新版本中,『持续的时间』参数可以填写 0,但效果并不一样。在 Java 版中,这将会使得游戏的天气循环重新回到自然状态,即由游戏自己来控制天气;在基岩版的效果则和上面所提到的基岩版默认值一模一样(即随机 300~900 秒)。
  如果你此时在地下,需要取得现在的天气情况,你可以使用:
  /weather query 来查询。
  但目前 query 是基岩版独占,Java 版还没有。
  (有趣的是,如果现在是晴天,你还使用 /weather clear 更改天气为晴天,那么天气将会在五分钟后变成雨天或雷雨天,在雨天和雷雨天同理。
  这就是为什么超平坦时经常下雨的原因了,因为你肯定一下雨就尝试用 /weather clear,这就导致游戏在几分钟后必然会将天气切换到雨天或雷雨天。)


  现在来看看基岩版的独占指令:/toggledownfall。toggledownfall,是由 toggle(切换)和 downfall(衰落)组成的单词。而 downfall 又是由 down(向下)和 fall(落下)组成的单词,所以 toggledownfall 的意思是:切换成向下落下的(?所以这就是切换成雨天喽)。
  /toggledownfall
  作用
:更改天气为晴天或雨天。
  需要权限等级:JE-2 BE-1
  版本独占:基岩版(Java 于 1.13 版本将其移除)
  格式
  • /toggledownfall
  你的确没看错,格式就只有 /toggledownfall 而已。其实这个指令的作用简单得要死,它的作用是:如果为晴天,更改为雨天。如果为雨天或雷雨天,更改为晴天。
  这就是 /toggledownfall 的用处。
 
最后编辑:

第二十一章 一些短小但不容忽视的指令​

2020年1月7日 19:48 2066字
(观前提示,如果您主要游玩的版本是 Minecraft 1.19 及以上版本,推荐您在看完此章节后也去瞧瞧第六十七章)
  其实还有一些短小的指令,但却不能被忽视。本章整理了一些重要而短小的指令来讲。

  一. /seed

  作用:查看地图种子
  需要权限等级:单人游戏-0,多人游戏-2
  独占版本:Java 版(电脑版)
  需要作弊:否
  格式
  • /seed
  这条指令算上斜杠也才 5 个字符啊。
  但是它很重要,因为 Java 版是没有设置界面的,你只能通过它来查看你的地图种子。基岩版可以在设置——游戏界面查看种子。其实,种子在 minecraft 也算是一种隐私,比如基岩版,所有玩家都可以看到游戏地图种子,这就导致玩家可以通过种子作弊,特别是生存服。
  到底是怎么作弊的呢?
  作弊方法:
  1. 把种子抄下来。
  2. 新开一个私人创造存档,开启作弊,输入种子,进入游戏。
  3. 通过指令寻找要寻找的东西,找到后记下坐标,返回之前的游戏,来到记下的坐标,即可找到物品。
  并且,现在有些网站也支持你输入一个种子,然后直接给你返回许多结构的信息,比如村庄啊、钻石矿啊之类的。
  这样作弊是不是美滋滋?所以 java 版 /seed 种子只有 OP 才可以查看也就变成了合情合理的了。

历史
Java Beta
版本​
更新内容​
1.8.1​
调试屏幕现在显示世界种子了


Java
版本​
更新内容​
1.2.1​
服务端不再向客户端发送世界种子信息
1.3.1​
由于单人游戏和多人游戏实现方式统一,现在世界种子不再显示在调试界面上,而是添加了 /seed 命令用于查看世界种子信息。
1.13​
/seed 返回的信息现在可以复制到剪贴板里了

  二. /help/?

  作用:获取指令的帮助
  需要权限等级:0
  需要作弊:否
  格式
  • /help [页码:Int整数] —— Java 1.13 版本之前和基岩版
  • /help [要询问的指令:字符串]
  /help 指令,就是“获取帮助”指令,相当于 Minecraft 自带的指令手册。里面包含了指令的格式,还是中文的(只不过在 Java 1.13 之前并没有中文)。
  直接输入 /help 在高于 Java 1.12.2 的版本会显示玩家当前可使用的全部指令和其格式,在低于 Java 1.13 和基岩版会显示指令帮助手册的第一页。指令帮助手册的指令是按照字母表顺序排列的,可以在 /help 后写上数值跳转到对应的页码。
  也可以使用 /help 直接询问一个特定的指令(注意不用带斜杠),比如:

/help help(吃瓜群众:禁止套娃!)​

  这条指令的意思是询问 help 指令 help 有啥用(无聊人才会干的事),然后 /help 会在聊天栏显示这条指令的格式。
  /? 作为 /help 的简写指令也是相同的用法。

历史
Java
版本​
更新内容​
1.3.1​
加入了 /help
1.9​
在命令方块运行 help 会在上一个输出中出现一些有趣的东西
1.13​
在命令方块运行 help 不再出现一些有趣的东西,也不再拆分成独立的页面

携带版Alpha
版本​
更新内容​
0.16.0​
加入了 /help

  三. /locate

  作用:定位特殊的建筑(结构)。
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式

Java1.19版本前

/locate <结构名>

基岩1.19.10版本前

/locate <结构名>[仅在未生成的区块中查找:布尔值]

  使用 /locate,可以在所在维度快速定位到最靠近命令执行地点的指定结构,比如村庄(village)。在 Java 版(1.13 版本以及之后的版本),点击获取到的结构坐标还会在聊天框内自动生成 tp 指令。
  其中,基岩版可以开启『仅在未生成的区块中查找』的功能,也就是仅仅在游戏地图尚未生成的地方查找结构,以避免『你找到了结构,却发现你之前已经来过了』这类事件发生。
  注:该指令在 Java 1.19 版本和基岩 1.19.10 版本中迎来大更新,所以我们会在第六十七章重新讲解该指令(因为会涉及到一些新的知识)。
  需要注意的是,返回的坐标并没有包含该结构的 Y 轴,以及在 Java 版中,结构名对大小写敏感。

结构名大全
Java 版
  • Buried_Treasure——埋藏的宝藏
  • EndCity——末地城
  • Fortress——下界要塞
  • Mansion——林地府邸
  • Mineshaft——废弃矿井
  • Monument——海底遗迹
  • Ocean_Ruin——海底废墟
  • Shipwreck——沉船
  • Stronghold——要塞
  • Desert_Pyramid——沙漠神殿
  • Igloo——雪屋
  • Jungle_Pyramid——丛林神庙
  • Swamp_Hut——女巫小屋(沼泽小屋)
  • Village——村庄
  • Pillager_Outpost——掠夺者前哨站
  • Nether_Fossil——下界化石[该结构基岩版 /locate 不支持寻找]
  • bastion_remnant——堡垒遗迹
  • ruined_portal——废弃传送门
(注意,从 Java1.16 开始结构名全部使用小写)

基岩版

  • buriedtreasure——埋藏的宝藏
  • endcity——末地城
  • fortress——下界要塞
  • mansion——林地府邸
  • mineshaft——废弃矿井
  • monument——海底遗迹
  • ruins——海底废墟
  • shipwreck——沉船
  • stronghold——要塞
  • temple——沙漠神殿、丛林神庙、沼泽小屋、雪屋(基岩版把这几个包含起来了,Java 1.13 以下版本也是一样,只不过 Java 1.13 更新时拆了)
  • village——村庄
  • pillageroutpost——掠夺者前哨站
  • bastionremnant——堡垒遗迹
  • ruinedportal——废弃传送门
  结构可以定位,但生物群系怎么定位?
  Java 1.16 版本更新中,Mojang就解决了这个问题——他们加入了 /locatebiome 命令用于寻找生物群系。由于此指令加入得较晚,所以目前你需要到第六十七章学习(只不过现在又更新了......)。

历史
Java
版本​
更新内容​
1.11​
加入了 /locate,此时的 locate 是将沙漠神殿、丛林神庙、沼泽小屋、雪屋一同归类到 Temple中。
1.13​
拆分了 Temple。同时,点击结构坐标可以生成传送指令了。
1.14​
新增对 Pillager_Outpost(掠夺者前哨站)和 New_Village(新村庄结构,此时的 Minecraft 新村庄和老村庄结构都会生成)的支持。并在快照 19w02a 修复了 MC-140918 这个 BUG(玩家仍然能够使用 /locate 寻找老村庄,因为老村庄结构在 18w50a 被删除,导致使用 /locate Village 会出错),将 New_Village 改为 Village 替换原来的 Village。
(没错,在快照 18w48a 和 18w49a 中,新村庄 New_Village 和旧村庄 Village 同时生成,这应该算是一个很冷门的知识了)
1.16​
新增对 Nether_Fossil(下界化石)的支持,并在随后的更新中将结构名全部小写。
1.18​
结构 ID 开始支持标签,并开始使用命名空间 ID
1.19​
大更新

携带版和基岩版
版本​
更新内容​
1.0.0​
加入又移除又加入了 /locate,并且只能用于寻找要塞
1.1.0​
/locate 可以寻找其他结构了
1.17.30​
加入了『仅在未生成的区块中查找』的功能
1.19.10​
大更新
 

第二十二章 summon-生成实体​

2020年1月8日 13:43 1039字

  我们知道使用 /give 可以获取物品,那么如何获取实体呢?
  额,获取不了,倒是可以生成,这就需要 /summon 指令。
  /summon,其单词 summon 中文译为“召唤”,所以 /summon 指令的作用是:召唤一个实体。
  /summon
  作用
:召唤一个实体
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式
Java​
  • /summon <召唤的实体> [<实体生成的位置:坐标>] [实体数据标签:NBT]
基岩​

  • /summon <召唤的实体> [<实体生成的位置:坐标>] [生成事件:字符串] [实体名称:字符串]
  • /summon <召唤的实体> <实体名称:字符串> [<实体生成的位置:坐标>]
  召唤的实体可以是生物,也可以是一些载具,可以是弹射物,也可以是其他的一些实体。比如要召唤一只猪,你只需要:

/summon pig

  但这召唤出来的是成年猪啊,我要的是幼年猪,我该怎么办?
  在 Java 版,这需要将 NBT 内 Age 标签的值改为负数:

/summon minecraft:pig ~ ~ ~ {Age:-6000}

  而在基岩版,你需要一个实体生成事件

/summon pig ~ ~ ~ minecraft:entity_born

  这样子可以生成出来一只小猪。
  生成事件严格来说叫做生物事件,是基岩版独有的东西。生成事件用于自定义一个生物或实体其生成后的行为,且该生成事件是支持该实体的,不然无法生效。一个生成事件参数只能填写一个生成事件。关于生成事件基岩版有一个专门的指令:/event。
  由于生成事件比较难找(命令助手倒是有,就是为什么一定要用内置浏览器啊!),这儿就放几个比较常用的吧:
  • minecraft:entity_spawned——实体自然生成:作用于可以自然生成的实体
  • minecraft:entity_born——生成幼年实体:作用于有幼年状态的生物(非亡灵生物)
  • minecraft:ageable_grow_up——生成成年实体:作用于有成年状态的生物(非亡灵生物)
  • minecraft:on_tame——生成已驯服实体:作用于可驯服的生物(狼:为什么我变成红色了?)
  • minecraft:become_angry——生成被激怒的实体:作用于中立生物和蠹虫,不包括北极熊
  • minecraft:become_charged——生成具有闪电的实体:作用于苦力怕
  • minecraft:as_baby——生成幼年实体:作用于亡灵生物
  • minecraft:as_adult——生成成年实体:作用于亡灵生物
  现在我们生成了一只小猪,但如果要生成一只倒立的小猪,那该怎么办?
  正常情况下,你需要搞到命令牌并用铁砧将其重新命名为 Dinnerbone 或 Grumm,然后给这只小猪赋予名字才行。
  但如果要在服务器中自动化,这该怎么办?
  在 Java 版中,你只需要:

/summon minecraft:pig ~ ~ ~ {Age:-6000,CustomName: "{\"text\":\"Dinnerbone\"}"}

  在基岩版更简单,你只需要:

/summon pig ~ ~ ~ minecraft:entity_born Dinnerbone

  看,一只倒立的小猪就出来了!
  但大多数时候,我们并不需要一个倒立的小猪,我们只需要一只倒立的猪。在 Java 版,只需要将 Age 标签去掉即可,而在基岩版,我们就需要用到 /summon 的第二种格式:

/summon pig Dinnerbone ~ ~ ~

  这种格式去掉了生物事件,将自定义名称参数移到了坐标的前面。不愧是 Mojang,考虑得如此周到,不然我们还真的需要使用 minecraft:entity_spawned 生物事件了。
  现在,你知道如何生成实体了吧?

历史​

Java​

版本​
更新内容​
1.7.2​
加入了 /summon
1.8​
现在可以使用 /summon 来生成闪电
1.16​
现在可以使用 /summon 来生成火球

携带版Alpha​

版本​
更新内容​
0.16.0​
加入了 /summon

基岩版​

版本​
更新内容​
?​
更改了 /summon 的格式
 

第二十三章 setblock-放置方块​

2020年1月8日 19:53 716字
  前面说过可以使用 /fill 填充一个区域内的方块。但是如果只需要填充一个方块呢?那岂不是要把坐标输入两遍?Minecraft 给了我们一个简单的指令,可以放置一个方块,它就是:/setblock
  /setblock 指令,是由 set 和 block 组成的。set 前面讲过,是“设置”的意思,block 就是方块的意思。
  所以 setblock 的意思就是:设置方块,也就是放置方块。
  /setblock
  作用
:使用指定的方块替换一个方块
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式
Java1.13 以下和基岩版​
  • /setblock <坐标> <方块名> [方块数据值:Int整数] [被覆盖方块处理方式:destroy|keep|replace]
Java1.11 至 Java1.12.2​
  • /setblock <坐标> <方块名> [方块状态] [被覆盖方块处理方式:destroy|keep|replace]
Java1.12.2 以上​
  • /setblock <坐标> <方块名> [被覆盖方块处理方式:destroy|keep|replace]
  举个非常简单的例子。假设你需要在你自己脚下放置一个下界传送门方块,那么你只需要执行:

/setblock ~ ~-1 ~ nether_portal(Java 版)

/setblock ~ ~-1 ~ portal(基岩版)​

  然后你就进入了下界(我们需要再深入些)
  但如果我们在放置的时候同时也要让原本方块产生掉落物该怎么办?
  很简单。举个例子,假设我们需要在脚底放置钻石块同时破坏掉原本的方块,就可以:

/setblock ~ ~-1 ~ diamond_block 0 destroy(Java1.13 版本以下和基岩版)

/setblock ~ ~-1 ~ diamond_block destroy(Java1.12.2 版本以上)​

  看,你脚底下的草方块变成了钻石块,还多出了个泥土!
  /setblock 的 destroy 处理方式和 /fill 的 destroy 一样,都是会对原方块进行破坏并产生掉落物。
  另外两个处理方式:keep 和 replace,我们都已经在 /fill 指令见过了,那么它们是否也是和 /fill 一样呢?
  replace 肯定一样。但实际上又不完全一样——虽然 /setblock 默认使用的处理方式也是 replace,但是 /setblock 的 replace 并没有“原方块是特定的方块才进行替换”的功能。
  keep 的作用和 /fill 的 keep 不能说基本一样,只能说完全一样,只是因为 /setblock 只替换一个方块,导致说法要改一下:
  如果原方块是空气,即替换,否则不替换。

历史​

Java​

版本​
更新内容​
1.7.2​
加入了 /setblock。方块名参数支持数字和名称 ID。
1.8​
方块名参数不再接受数字 ID。
1.11​
加入了方块状态的支持。

携带版Alpha​

版本​
更新内容​
0.16.0​
加入 /setblock
 

第二十四章 xp-控制经验值​

2020年1月8日 21:24 1317字
  经验值,在游戏中,一般有 EX、EXP 和 XP 三种英文缩写,它的全称是:experience。经验值最早出现于RPG(角色扮演游戏)游戏的衡量角色能力的一种标准,每次经验值积累积达到上限时角色等级便会提升,并带来能力的相应提升。经验值作为最直接的经历评测标准已被广泛应用于诸多游戏中。
  那么在 Minecraft 中,经验值可以干啥?可以附魔,可以使用铁砧,仅此而已。
  但是在基岩版,还没有记分板(scoreboard)的时候,经验值在服务器,那也是算一种货币的,也是一种像是记分板一样的存在的。
  因为经验值就是一个变量。而我们这章所要知道的,就是如何去控制这个变量(经验值)。
  Minecraft 有专门可以控制经验值的指令,它就是:/xp
  /xp
  作用
:给予单个或多个玩家经验值。
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式
Java1.13以下和基岩版​
  • /xp <数量:Int整数> [玩家:目标选择器]
Java1.12.2以上版本​
  • /xp add <目标玩家:目标选择器> <数量:Int整数> [单位:levels|points]
  • /xp set <目标玩家:目标选择器> <数量:Int整数> [单位:levels|points]
  • /xp query <目标玩家:目标选择器> (单位:levels|points)
  在基岩版和 Java1.13 以下版本中,数量参数可以带单位,也可以不带单位。不带单位,就是增加经验点数。经验点数是啥?就是达到一定的程度就可以提升等级的那个绿色的小条条。如果带单位,单位只有“L”,也就是“等级”。比如下面两条指令:

/xp 33
/xp 33L

  前者指令只会让你获得 33 点经验值,后者会让你获得 33 级经验,差了不只是一个数量级(33 点经验值能干啥?)。
  (对,不填目标玩家默认是作用于命令执行者也就是你自己身上)
  需要注意的是,经验点数无法减少(Java1.13 更新后除外),经验等级可以减少(填个负数)。
  本来的这条指令很简单,直到 Java1.13 更新,添加了一个新的指令:

/experience

  /experience 指令实际上就是 /xp 的全称。由于该指令的添加,Mojang 也对这两条指令进行了重写,写成了像 /time 指令一样有三个功能:add(增加)、set(设置)和query(查询)
  add(增加),也就是可以给目标玩家增加或减少特定的经验。比如:

/xp add @a 1

  就是给全部玩家增加一点经验值(没错,不带单位默认还是经验值点数)。当然,是负数的话就会减少经验值,并且经验点数也可以减少了。
  而原本的单位,被移到了最后面。举个例子:

/xp add @a 1 levels

  这可以给全部玩家增加一级经验值。
  set(设置)的话也是差不多个用法。比如:

/xp set @s 25 levels

  就是设定自己的经验等级为 25 级
  这里唯一要说的是 query(查询)功能。
  query 一次只能查询一位玩家,也就是说,目标选择器选择 @a 之类的选择器会报错,不管你是否只有 1 名玩家。
  如果你有仔细看上面的格式,你就会发现上面的格式出现了一个你从未见过的格式符号:

(单位:levels|points)

  这种用普通括号包裹起来的格式,一般指的是执行指令时必须填的参数,可以不填,但游戏没有给其安排默认值,导致不填不会报错,也不会有结果注:这可能需要在其他指令进一步验证,但当时在游戏中实地测试时 /xp 指令确实有这个特性。
  比如使用:

/xp query @s

  就不会报错,也不会有结果
  你就必须使用:

/xp query @s levels 或是 /xp query @s points

  才会有结果返回。
  (这是特性,特性,懂不?)
  好了,那么本章以及本卷就到此为止了!

历史​

Java​

版本​
更新内容​
1.0.0​
加入了 /xp。格式为 /xp <玩家:目标选择器> <数量:Int整数>
1.3.1​
将玩家参数移到了后面,并且变更为可选参数。同时 /xp 可以在单人游戏中使用了。
1.4.2​
加入了 L(level)单位,并且等级可以减少,点数无法减少。同时更改了 /xp 数量参数上限从 5000 到 Int 整形上限。
1.13​
加入了 /experience 成为了 /xp 的全称,并重写了 /experience 和 /xp 指令,让点数和等级都支持负数值。

携带版Alpha​

版本​
更新内容​
0.16.0​
加入了 /xp

恭喜:真棒:,您已经完成了基本的指令入门部分,下面是一个阶段性测验,尝试一下吧!
测验使用问卷星制作,提交后会自动打分哦,还有详细的题目解析!
由于当时是第一次用问卷性制作测验,所以加了一个提供 QQ 号的框。这个框完全可以不填或随便填哦!


点击跳转 -> 《Minecraft 指令手册》第二卷小测试
 
写错了吧?
浏览附件119935
Java1.13以下那里
在wiki对过了,截图中两处写到“Java1.13以下”的地方,公式和描述都没什么问题 ,可能比较有问题的是经验点数的描述不够准确,应该是“填充‘绿色小条条’的绿色部分”,是玩家经验值的最小单位。So你觉得哪里有问题:吃彩瓜:直接说出来没关系
 
在wiki对过了,截图中两处写到“Java1.13以下”的地方,公式和描述都没什么问题 ,可能比较有问题的是经验点数的描述不够准确,应该是“填充‘绿色小条条’的绿色部分”,是玩家经验值的最小单位。So你觉得哪里有问题:吃彩瓜:直接说出来没关系
好像是我记错了
我还以为有1.12.3来着
太久不玩旧版本了awa
 
现在我不看题都能做出来了
(刷了五遍)
(zbldyyds,没座又是我,没座还是我,没座双是我,没座双又是我)
总算是在 没座双又是我 的那次的了100分
IMG_4302.webp
 

在线会员

  • 沐予
  • 可乐不加冰
  • 宥时雨
  • 诺诺noo
  • 1002
  • 请输入用户名91
  • 小叶
后退
顶部 底部