• 欢迎加入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 张三”。这些内容你会在后面的章节中详细地了解到。如果你成功理解了上面对指令的描述,接下来几十章的内容你应该也能够成功理解。
  注:如果你直接跳过了前面的内容,直接就看到了序言这,还请先往前翻看看『作品相关』内的『阅读本书需注意事项』一章)
 
内容版权许可
作者保留一切权利,禁止转载

第一章 作弊与输入指令

2020年1月3日 21:24 2779字
(2022年7月5日有修改,此章节写作时作者使用的Minecraft为基岩1.17.0正式版[非网易版]和Java1.12.2)

  新建世界的时候,JAVA版点击“更多世界的选项...”,基岩版点击“编辑设置”-“游戏”并向下滑,你会发现前者会有一个默认为“关”的“开启作弊”选项,后者会有一栏“作弊”,里面也有一个“激活作弊”选项。
  这个“作弊”是什么回事?难道Mojang还制作了官方外挂?
  很明显,这并不是什么『官方外挂』,而是一个能让你拥有更高权限的选项(毕竟是『我的世界』嘛)
  说白了,这个“作弊”选项,正如Java版对于这个选项的描述一样(像/gamemode、/xp的命令),开启后可以让你在游戏中使用类似作弊一样的指令。
  既然你要学习指令,那么这个选项必须开启,因为不开你就用不了!
  额.....实际上.......能用,但只能用一点点(发送全服消息和发送私人消息)。
  开启这个选项后,创建世界,你就可以开始输入指令了。
  新手:“哎呀,不知道在哪输入指令啊。”
  大佬:“你这消息咋发的?”
  新手:“聊天栏发的啊,地球人都知道。”
  指令最开始是从聊天栏开始。所以为了学习指令,首先就是要学习“如何正确使用聊天栏”。

第一步:打开聊天栏

  聊天栏在哪呢?如果你使用的是基岩版,看到上面那个消息图标的按钮没?就是那个,点进去,这就是聊天栏。
  如果你使用的是Java版,按下“T”键就可以呼出聊天栏。

第二步:研究聊天栏

  基岩版的聊天栏有三个部分:
  • 顶栏——显示这窗口名叫“聊天和命令”,点击左边的“<退出”可以退出界面。
  • 信息栏——显示聊天的信息,最多可以保存100条。
  • 输入栏——输入并发送信息、执行指令。左边是一个键盘图标,点击可以打开键盘;左边第二个是一个“/”的图标的按键,点击可以快速执行特定的指令,是个人都懂得用;左边第三个按键是齿轮图标,打开可以设置信息栏显示的字样;中间的就是输入框,输入消息(指令)的地方;最右边是发送(执行)按钮,即发送(执行)信息(指令)
  Java版的聊天栏就比基岩版的简单多了:
  • 左下角——信息栏,光标放在上面转动滑轮可以上下滑动。和基岩版一样可以存100条消息。
  • 下方——输入框,输入信息(指令),按Enter发送消息(执行指令)。
  • 当然,这本书作为一个指令教程书,肯定不会去研究消息到底该怎么发,而是去研究“如何打出指令”。

第三步:打出指令

  为了打出指令,请尝试在空白的输入框中打出一个“/”,不要告诉我你找不到这符号。这个斜杠是指令的前缀符号,它让游戏知道你要输入的是指令,而不是一条普通的聊天消息。
  如果你使用的是基岩版,此时你就会发现,上面的聊天消息消失了,取而代之的是一堆依照开头字母排列的“白色/+灰色英文单词”,同时还有功能的介绍;如果你使用的是JAVA版海洋更新(1.13)及以后的版本,那么你也会发现,上面出现了许多“/+单词”选项。
  这些选项,每个都是指令。
  但如果你使用的是Java1.13以下版本,那么你就会发现,啥也没有发生,聊天栏仍然是聊天栏,主世界仍还是那个主世界,你也仍还是那个你,唯一变的就只有你聊天栏上的“/“和四处闲逛的动物了。
  在基岩版和Java1.13及以上版本,你每按下一个字母,上面显示的单词信息就会更新。游戏会自动排除掉那些不符合你输入内容的指令,留下那些你可能要用的指令。同时,你打的指令进度也会显示在上面那些待选指令中,呈现黄色(Java)或白色(基岩)。
  而在Java1.13以下版本,该怎么办呢?
  很简单,输入完“/”后,按一下Tab键,然后就会.......
代码:
/?,/advancement,/blockdata,/clear,/clone,/debug,/defaultgamemode,/difficulty /effect,/enchant,/entitydata,/execute,/fill,/function,/gamemode,/gamerule,/give,/help,/kill,/locate,/me,/msg,/particle,/playsound,/publish,/recipe,/reload,/replaceitem,/say,/scoreboard,/seed,/setblock,/setworldspawn /spawnpoint,/spreadplayers,/stats,/stopsound,/summon,/teleport,/tell,/tellraw /testfor,/testforblock,/testforblocks,/time,/title,/toggledounfall,/tp,/trigger,/w,/weather,/worldborder,/xp,/reloadShaders,/reloadChunks
  继续按Tab还会按照顺序切换。
  (唉作者,为什么我是Java 1.13及以上版本但打出“/”时没变化呢?)
  (哦,那是因为指令提示默认需要按Tab开启。聊天栏打出“/”后,再按一次Tab就会出现,且在你退出游戏前都会保持开启“指令提示”的状态。但如果你觉得这东西很烦,你还可以在聊天框只有一个“/”时再次按Tab,指令提示就关闭了!)

  现在,你可以随便选择一个指令,照着它的提示打。
  如果你正在使用基岩版打指令,并且照着上面那样做成功打完了你人生中第一条指令的开头单词,那么你的屏幕下面就会出现白色的带有<>和[]以及{}里面写满了各种你看不懂的英文字符串,这就是这条指令的格式,更确切的说是语法。只不过没有汉化是一大痛处。比如/clear就是:

/clear [player:target] [itemName:Item] [data:int] [maxCount:int]

  如果你正在使用JAVA1.13及以上版本打指令,并且照着上面那样做成功打完了你人生中第一条指令的开头单词,那么将不会出现什么新的东西——除非你点一下空格键,可能会出现接下来的格式提示,但也可能啥也没有。(当然,你可以尝试一下/help指令,这个指令相当于是一个Minecraft内置的指令手册,只不过对于新手来说可能有点难看懂)
  而如果你使用的是Java 1.13以下版本,那当你成功打完你人生中第一条指令的开头单词时,那也将不会出现什么新的东西——点一下空格键也还是如此。这时候,你就需要点一下空格然后再点一下Tab,才可能会出现格式提示。
  温馨提示:打指令最好还是使用Java版或基岩版的Windows10版本,原因有三。一是因为电脑打字快且方便,二是因为使用键鼠时,你可以使用上文提到的TAB键来一键输入,这种一键输入不光是输入指令,还可以快速输入坐标、玩家名等参数,如果有多个参数还可以一直点Tab来切换(Java1.13及以上版本还可以使用小键盘的↑↓←→+Tab来快速选择并输入)。三是因为使用键鼠时,唤醒聊天栏的方式并不只有按“T”键,你还可以直接按右Shift左边的“/?”键快速打开聊天栏并输入“/”。
  (偷偷告诉你,如果你在Java版打错指令格式,游戏还会亲切的提示你这条指令的正确语法,还是中文的那种!只不过有些第一个参数就是输入玩家名的那种就没法了,只会提示你“无法找到玩家xxx”。而基岩版就只是——语法错误:意外的“xxx”出现在“/xxx xxx”)

  “不!我不想创建一个新的世界!我要使用我已经玩了多年的存档!”
  “但你这存档没开作弊啊”
  “那该怎么办?”
  “你是Java版的,得进入游戏后在菜单里打开“对局域网开放”,然后将“允许作弊”改为开再确定即可,只不过这是暂时性的。要永久还得在“选择世界”界面选中该存档,然后点击重建,进入重建界面后点击“更多世界的选项...”,再打开作弊即可。如果你是基岩版就好了,直接在设置界面打开“激活作弊”按钮就可以了。”
  “啊?听起来好麻烦.....”
  “我告诉你,如果你不想创建副本还想永久开启这个存档的作弊,那更麻烦。具体过程如下:
  1. 在选择世界界面选中该世界,然后选择“编辑”。在界面中点击“打开文件夹”打开存档文件夹。
  2. 找到level.dat文件,将后缀名从.dat改为.nbt。
  3. 找到一个Minecraft 1.13版本及以上版本的服务端.jar文件
  4. 按照第一百四十章“真正深入了解NBT-6”中的教程将该level.nbt文件转为.snbt文件。
  5. 找到转化完成的.snbt文件,使用记事本打开,将allowCommands的参数从0b改为1b,并保存。
  6. 按照第一百四十章“真正深入了解NBT-6”中的教程将该level.snbt文件转为.nbt文件。
  7. 将level.nbt的后缀改回.dat,并覆盖原文件。
  照着上面这样做才行”
  “???”
 

第二章 命令方块​

2020年1月3日 21:25 4341字
(本章写作时作者使用的是基岩版1.17.0版本和Java1.17.1版本)
(本章内容有可能有些难,推荐在游玩Minecraft的情况下阅读本章)
(本章于2022年7月10日进行大规模修改)
  在你不知道指令的时候,你是否在玩地图的时候看到过一个五彩斑斓的方块?当你因好奇尝试去撸它的时候,你却发现:这根本撸不动!
  没错,这就是我们的命令方块,英文名 Command Block,命名空间 ID 为 command_block,在 MC 指令圈中常常被简写成 CB 。你可以通过 /give 指令来获得它,比如:
/give @s command_block
  目前你不需要去了解这个指令到底是啥,怎么用,看下去就完事了。
  如果你在输入了以上指令以后都没有获得,那么你最好去检查一下你的Minecraft游戏版本。你可以尝试使用命令方块的数字id:137。(/give 你的玩家名 137)
  如果还是不行,请你看一下你的Minecraft版本是否低于JAVA1.4.2或者是携带版1.0.5。低于这两个版本的Minecraft是没有命令方块的。
  命令方块有三种颜色,六种方向,具体为:
  • 颜色:橙得一批青得一批紫得一批
  • 方向:东西南北上下
  命令方块的硬度和基岩是一样的,都是-1。
  爆炸抗性也一模一样,都是3600000。
  命令方块的三种颜色,各代表着3种不同的种类:
  橙得一批的那个是脉冲,作用是你叫它动一下(接入红石信号),它就动一下(执行一次命令),并会向其指向的链命令方块发出执行信号。
  紫得一批的那个是重复,作用是你叫它动一下(接入红石信号),它就没完没了地动(每一游戏刻执行一次命令,一般1游戏刻=1/20秒),并且每动一下都会向其指向的链命令方块发出执行信号。
  青得一批的那个是(又叫做连锁),作用是你叫它动一下(接入红石信号),它不会动。它只会在收到执行信号时,将该执行信号立马传递给下一个它指向的链命令方块,然后再根据当前条件判断是否要执行。听起来似乎有点复杂?举个例子:
A→B→C→D→​
  其中,A是未被激活的脉冲命令块,BCD三个命令方块都是已被激活且无条件限制的链命令块。当A激活时,ABCD将会同时执行指令,因为A激活时向B发出了执行信号,B收到后也向C发出了信号,C也向D发出了信号,三个链命令方块也都没有条件限制。(关于无条件是个什么东西,下面会讲到)
  关于链命令方块还是比较复杂的,具体内容请到『第九十九章 初识模块-简单的注册/登录系统 下』了解。
  而方向的话,有什么用呢?
  上面我们讲连锁命令方块时已经遇到过一次了:当你将一个未被激活的脉冲或循环命令方块(A)指向另一个已被激活的连锁命令方块(B),那么当A被激活时,就会向B发出执行信号。(注意,B以及之后的CDE等一般都是连锁,作为开头的A一般是脉冲或循环命令方块)
  就像下面这样(箭头即该命令方块的朝向,符号☼代表此命令方块被激活,符号✪代表此命令方块收到执行信号):
  1. A→B☼→
  2. A☼→B☼→
  3. A☼→B☼✪→
  但B并不一定会执行,还得看这个B是有条件(条件制约)还是无条件(不受制约)的。
  另外,只要这一串命令方块一直延伸下去,且除了第一个之外后面全都是链命令方块,那么不管这些链命令方块有没有被激活、是否会真的执行指令、指令有无错误,信号仍然会一直传递下去,直到默认指定的最大值。
  我们会在以后讨论更加复杂的情况,也就是在第九十九章进行讨论。在此之前,你可以自己做做实验,猜猜规律。
  需要注意,虽然通常情况下像这样一个接着一个的命令方块链是摆成一条直线的样子,但你也可以像下面这样摆成蛇形:
B←A​
↓​
C→D→​
  这也是没有问题的。
  甚至你对着放,也是没有问题的:
B→←A​
  总的来说,命令方块的方向决定了执行信号传递的方向。一串方向正确且能够正常传递执行信号的命令方块,就是一个命令方块链。命令方块链是命令方块知识点中最难的一部分,搞懂这个,你基本上也就入门了。还是那句话,我们会在第九十九章详细讨论这东西,也就是命令方块链和连锁型命令方块。
  现在我们来打开命令方块。
  右键(键鼠模式)、按下RT(手柄模式)或点击(触屏模式)命令方块以打开。打开命令方块要满足一定条件,Java版的条件是:处于创造模式,并且玩家权限等级至少为2(正常单人游戏都能打得开);基岩版是需要操作员权限(或者说玩家权限等级至少为1)。如果条件不满足,是无法打开的。
  至于玩家权限是什么东西。放心,我们会在第六章了解到玩家权限的相关内容。
  打开命令方块后,Java版的界面顶上是输入框,框下面是一个“O”的按钮,按了可以打开一个框,并且按钮变成了“X”,这个框用途就是“显示上次执行、检查指令的结果”。
  为什么还要多出一个检查呢?检查跟执行是不一样的。当你修改完后退出界面,命令方块会自己检查一下,如果有错会显示一些信息,如果都正确那就什么也没有发生。执行的话就不一样了,执行就算正确也会显示消息。这个框在Java版默认不显示,在基岩版默认显示,据说关掉可以让游戏更流畅一点。
  再下面是三个选项,分别显示:
脉冲|不受制约|红石控制
  这三个选项具体的用途是:
  1. 第一个显示脉冲的选项——选择命令方块种类,可以选择『脉冲、连锁和循环』,即上面介绍过的三种类型。
  2. 第二个显示不受制约的选项——这可以选择『不受制约』和『条件制约』(基岩版中是『无条件』和『有条件的』)。默认是选择『不受制约』。下面我们会详细了解这选项。
  3. 第三个显示红石控制的选项——这可以选择『红石控制』和『保持开启』(基岩版中是『需要红石』和『始终活动』)。默认是选择『红石控制』,即命令方块必须要收到红石信号后才能被激活。如果改成『保持开启』,那么命令方块将会始终处于激活状态。
  『不受制约』和『条件制约』分别有什么作用呢?
  我们知道,命令方块可以执行指令,而执行指令无非就两种结果:指令执行成功和失败。
  命令方块其实会保留其最后一次执行指令的结果,这个保留下来的结果并不是只能被我们也就是玩家所看见,它还有三个作用:
  1. 被其他指令探测,将结果信息输出到计分板中。
  2. 被红石比较器探测,将指令执行成功的次数转化为红石信号强度等级。
  3. 屁股对着这个命令方块的其他命令方块可以检测该命令方块的指令是否执行成功,并根据该条件判断自身是否需要执行指令。
  前两个作用我们会在以后了解到具体用法,第三个作用其实就对应着上面的『不受制约』那个选项。
  命令方块在执行前,如果这个命令方块是『条件制约』的,那么它就会检查一下它屁股对着的那个命令方块最后一次执行指令是否执行成功,如果成功才会执行。比如下面的例子:
←B←A
A:循环,不受制约,始终活动
B:循环,条件制约,始终活动​
  A不管如何,除非游戏停止运行,它都会一直运行指令,每秒最高可以运行20次。
  B不管如何,也会一直尝试运行指令。只不过由于它是『条件制约』的,所以它在尝试执行指令之前,会先检查一遍A命令方块是否运行成功,如果成功才会运行指令。
  那么这有什么用呢?
  假设A里面写着一条指令,可以检测半径30m范围内是否有怪物出现,而B里面写着一条能够发送警告消息的指令。如果半径30m内一直没有怪物出现,那么A的指令就会一直执行失败,虽然B也在尝试执行,但由于A一直失败,B也就不会真正执行指令,也就是不会发出警报。但如果A突然执行成功了,也就是发现怪物,那么B就会真正执行指令,发出警报。
  当然,像这种由两个循环型命令方块构成的命令方块链十分少见,因为如果把B换成连锁型,也可以达成一样的效果,还可以降低一点CPU消耗,岂不美哉?
  总而言之,条件制约的命令方块在运行前会检测其屁股后面的命令方块最后一次运行指令是否成功执行,如果那个命令方块最后一次成功运行了指令,这个命令方块也会运行,反之则不会运行。对于不受制约的命令方块来说,则并不会进行上述检查,而是直接运行指令。
  懂了吧?如果不懂,多多实践即可。
  基岩版的命令方块界面和Java版大不相同——其界面有两列,左侧主要是对命令方块本身状态的一个设置,右侧主要是用于填写命令。
  右侧不用多说,这里需要讲的是左侧相比Java版多出来的内容。
  左侧最上面有一个“悬停说明”,旧版本是“悬浮文本”。这儿是修改命令方块名字的地方,并且修改后的名字会直接作用在一些指令中,比如/say。而且,正如其言,这个名字还会悬浮在命令方块上面,只不过用这个是无法做出浮空字的,因为这个浮空字仅仅会在玩家指向该命令方块时才会出现。你也可以使用铁砧重新命名命令方块,并且这个方法Java版同样适用。
  命令方块的默认名字在基岩版1.8.0及之后的版本是“!”,在Java版和基岩版1.8.0以下版本默认是“@”。
  在“需要红石|始终活动”选项的下面,还有一个“执行第一个已选项”的按钮和一个“已选项中的延迟”框。这两个东西的作用如下:
  • 执行第一个已选项——命令方块类型为循环时可用,默认开启。开启将会让命令块在激活后立即执行指令,关闭则会先延迟“已选项中的延迟”设定的时间,再执行。即:
    • 开启——激活命令方块→执行→等待x游戏刻→执行→等待x游戏刻→执行......
    • 关闭——激活命令方块→等待x游戏刻→执行→等待x游戏刻→执行→等待x游戏刻→执行......
      (x值为“已选项中的延迟”的值,1游戏刻=1/20秒)
  • 已选项中的延迟‌‌——所有命令方块类型均可用,默认为0,单位为游戏刻。
    • 对于脉冲和链命令块来说,就是指定激活命令块到执行指令的延迟。比如设定为5,那么:
激活→等待5游戏刻→执行
  • 对于循环的命令块来说,就是设定每次执行指令执行的间隔时间。比如设定为6,且关闭执行第一个已选项,那么:
激活命令方块→执行→等待6游戏刻→执行→等待6游戏刻→执行.....
  循环型命令方块不管延迟是0还是1,结果都是延迟1游戏刻。而脉冲和链型命令方块则不同,延迟是0即按下就立马执行,1的话还是会延迟1游戏刻。
  现在,让我们尝试在输入框中输入点东西。注意,命令方块中输入指令,“/”前缀是可以省略的,因为不必和普通聊天消息作区分。在Java版1.13及以上版本中,命令方块中输入指令也会有像聊天栏中输入指令一样的提示;1.13以下的版本虽然没有提示,但也可以通过Tab键补全。
  接下来你就自行研究吧,还是那句话,第九十九章我们会重新来研究命令方块链。
  要不然最后我们留点作业吧?
  还是算了,毕竟现在你也不会写些指令。
  (一天,张三把一个命令方块放到了一个矿车,然后.......)

附表:命令方块历史​

Java​

版本​
更新内容​
1.4.2加入命令方块
1.5红石比较器会输出命令方块成功运行的信号,命令方块可用铁砧重命名
1.6.1命令方块现在无法在生存模式中和爆炸中破坏
(冷知识,在Java旧版本,生存模式也可以打开命令方块,并且可以破坏)
1.7.2加入了“显示上一个输出”框,并将命令方块字符上限重256增加到了16369,用修改器最大可达32767
1.8发射器会放置命令方块,命令方块内字符上限达到了32767
1.8.6发射器不再放置命令方块
1.9加入了连锁、循环型命令方块和方块朝向、条件制约模式、保持开启和红石控制模式。操作权限等级小于2的玩家无法放置命令方块
1.12命令方块链中的链命令方块现在在同一游戏刻中执行,并加入了maxCommandChainLength规则以规定命令块链的最大长度

携带版/基岩版​

版本​
更新内容​
1.0.5加入命令方块
1.8.0更改命令方块默认名称重@到!
1.12.0加入了已选项中的延迟和执行第一个已选项
 

第三章 §​

2020年1月3日 22:10 1205字
搬运注:文中的 and 符号即为 &;文中字体颜色参考自
zh.minecraft.wiki/w/格式化代码,实际颜色请以游戏内为准;基岩版现已有更多颜色代码,请以游戏内具体情况为准。
(2021-2-2有大幅度修改)
  在Minecraft中,有这么一个神奇的符号:
§
  这个符号叫做“分节符”,在现实中常见于上公开课时,老师会在黑板上写:
§(内容)
  在现实中§是这样用的。那在Minecraft中呢?
  先不要急着用,因为我们还不知道:
  如何打出§
  打出§的方块有两种
  • 大部分输入法可以打出§:
    • 百度输入法Windows:→工具箱→符号大全→搜索“分节符”
    • 百度输入法Android:→符→#+=→长按and符号(由于起点特性,该符号会显示乱码)
    • 百度输入法华为版:→?123→更多→长按and符号
    • 搜狗输入法Windows:→工具箱→符号大全→搜索“小节”
    • 搜狗输入法Android:→符→12.特殊→找一下就有了
    • 苹果iPad OS系统自带输入法:→.?123→长按and符号
    • 苹果iPhone OS系统自带输入法:→123→#+=→长按and符号
    • Win10自带微软拼音输入法:Win键+V打开剪贴簿→“符号”→常规标点第一项
    • QQ输入法Windows:→工具箱→符号→特殊符号→第二阵第六行从左往右第十列
    • QQ输入法Android:→符→特殊→找一下就有了
    • 讯飞输入法Windows:→设置→特殊符号→特殊符号→第二阵第四行从左往右第七列
  • 可以使用系统快捷键来打出§:
    • Windows:按住Alt,然后依次点击小键盘的0167,再放开Alt
      (注意,直接在网页输入该符号可能会引起浏览器跳到主页,甚至有些浏览器打不出来)
    • Mac OS:按住Option,然后按下6,最后放开Option
    • Linux:Compose+S+O
  你可以去按照上面的方法试一试。
  现在我们就可以研究§在Minecraft中的用法了。
  §在Minecraft中更专业的叫法是“格式化代码”、“颜色代码”。
  在Minecraft中,输入§,在它后面加上一个特定的符号,再写上一些内容在后面,你就会发现这些内容的颜色或者是格式被改变了。具体如下:
颜色代码
§0 黑
§1 深蓝
§2 深绿
§3 湖蓝
§4 深红
§5 紫
§6 金
§7 灰
§8 深灰
§9 蓝
§a 绿
§b 天蓝
§c 红
§d 粉红
§e 黄白
§f 白
§g 硬币金[仅基岩版]

格式代码
§k 乱码
§l 加粗
§m 删除线[仅Java]
§n 下划线[仅Java]
§o 斜体
§r 重置文字样式(包括颜色)
  举个例子,比如你在手机上玩网易租贷服,看到了这么一段话(后面括号内容为此段话的格式):
  公告(深红,斜体,加粗)
  一.禁止开G(黄白,加粗)
  二.请遵守小游戏规则(黄白,加粗)
  三.举报请找管理员,管理员24小时在线(绿)
  四.服务器q.q.q.u.n:1145141919810(金,加粗)
  那么这段话其编辑时很有可能是这个样子:
  §4 §o §l公告§r
  §e §l一.禁止开G
  二.请遵守小游戏规则§r
  §a三.举报请找管理员,管理员24小时在线§r
  §6 §l四.服务器q.q.q.u.n:1145141919810

  (注意,格式代码必须用在颜色代码之后,不然颜色代码会覆盖格式代码)
  现在我们知道了如何打出§和§在Minecraft的用法。但如果你是个Java版玩家,你可能会发现一点:
  在聊天框打不出§啊!
  这是为什么呢?因为在JAVA版里,§是个非法字符,打不出来,甚至在服务器打§还有可能会被踢出去。
  那JAVA版哪里可以用§呢?
  写书时(指书与笔)、创建世界填写名称时、填写一些外部配置文件时、开发模组时等少数情况会用到(大部分情况下需要将§转换为\u00A7,不然会出错)。
  在书与笔中,你可以打出§,只不过并不会显示。这时候你就可以在后面添加特定字符来实现一些文字效果
  但基本上§在JAVA版就这个用(更多内容可以到第一百二十四章-JSON的格式元素里了解)。
 

第四章 目标选择器​

2020年1月4日 12:35 999字
(本章写作时作者使用的是Java1.12.2、1.17.1和基岩1.17.0)
  这里有一只牛。
  我们要用指令锁定这头牛。
  但怎么锁定呢?
  你在命令方块界面可能见到过这段话:
用“@p”来代表最近的玩家
用“@r”来代表随机玩家
用“@a”来代表全部玩家
用“@e”来代表全部实体
用“@s”来代表执行实体
  (这段话在Java新版本被移除了)
  这段话中所讲的东西,就是指令中常见的一个参数类型:目标选择器
  目标选择器,顾名思义就是选择目标,而目标就是Minecraft中的“实体”。不懂实体是什么?Minecraft Wiki对实体的定义是:『包括在Minecraft中所有动态的、移动中的对象』。简单且不严谨地来说,实体指的是非方块的东西,比如玩家、生物等都是,还有例如掉落的方块、点燃的TNT也是实体。
  目标选择器的本质就是通过一系列的参数指定筛选的条件,然后游戏根据给出的条件对所有实体进行筛选,进而得到指令执行的作用目标。通过目标选择器,我们可以指定指令执行时所产生的效果会在哪些实体上奏效。比如我们一开始就提到的/kill指令,这条指令就可以使用目标选择器来选择哪些实体会被杀死。
  实际上我们也可以不用目标选择器指定目标,反而使用玩家名称实体 UUID(UUID是一串很长且随机生成的字符串,每个Minecraft实体都有一个唯一的UUID以便游戏区分)。但这两个东西,一方面效率低下,另一方面不能自动化。下面就是一个例子:
  假设此时有一名玩家,其名称叫做“JIE灬挥刀乱砍”(如有同名,纯属巧合),玩家UUID是“5409be4a-6333-4912-ab5b-58265ccbfe3c“。如果他想要用指令给自己一个钻石块,还不用目标选择器指定,就要这么写:
/give JIE灬挥刀乱砍 command_block
  或者是这样写:
/give 5409be4a-6333-4912-ab5b-58265ccbfe3c command_block
  使用目标选择器,只需要:
/give @s command_block
  其中,@s就代指了执行该指令的实体。
  命令方块中的介绍有点过于简单,还是得具体介绍一下:
  • @p——代指距离执行地点最近的玩家,包括死亡玩家,如果没有执行地点,默认是主世界坐标(0,0,0)的地方,一般来说这种情况只会在服务器控制台执行指令时出现。关于坐标会在下一章讲到。
  • @s——代指执行指令者,不管执行指令者是否已经死亡。如果执行指令者不是个实体,比如是个命令方块,那么将会什么也不会发生。
  • @a——代指所有玩家,包括已经死亡的玩家
  • @r——随机选择一位玩家,包括已经死亡的玩家
  • @e——代指所有实体,不包括已死亡实体
  • @c——代指自己的吉祥物[仅教育版]
  • @v——代指所有吉祥物[仅教育版]
  • @initiator——代指正在与该NPC交互的玩家[仅基岩版],不管这名玩家是否在交互时被杀死
  最后一个@initiator是一个比较新奇的东西,它无法用在除基岩版NPC以外的地方,关于基岩版的NPC以后的章节会讲到。
 

第五章 坐标​

2020年1月4日 13:53 2398字
  你创建了你人生第一个生存存档,打算一直玩下去。进入游戏,你发现你出生在了一个大草原,太阳刚刚从地平线升起,阳光照进远处炊烟袅袅的村庄里,村民们都开门前去上班。
  很快,你撸了一棵树,用泥土搭建了一个房子。但时间过得很快,10分钟的白天很快就过去。当太阳的最后一抹光消失在天边,你突然意识到——我的泥土房子呢?
  此时你已经跑到了一个积雪的桦树林里,周围看起来没有一丝人烟。左手边有一座大雪山,雪山山腰上有一个矿洞。往前走是一个悬崖,从悬崖上眺望,只能看到无边无际的树林和缓缓升起的圆月。
  你往回跑,但僵尸骷髅已经开始生成。它们在你背后穷追不舍,你加速奔跑,但很快饥饿值只剩三个鸡腿——你跑不动了。
  空中缓缓飘落下点点雪花,你此时已经走投无路。望着正朝你缓缓走来的僵尸和在不远处正拉弓的骷髅,你突然心生一计——你朝着脚底挖了3格,然后把头上用泥土填掉,这太完美了!
  时间不知道过了多久。当你挖开泥土的时候,清晨的第一缕阳光照进了洞中。你刚想欢呼,但随即而来的箭清零了你最后一滴血。死前你看到了这只箭的主人——一个躲在桦树下的骷髅。
  现在我们来研究一下你为什么会这样。答案其实非常的简单——你迷路了。
  为什么你迷路了呢?因为你没有记录你房子所在的位置。
  那么该怎么确定你房子的位置呢?

  我们知道,现实世界中,主观的确定位置方式是“上下左右前后”,客观的确定位置方式是“东南西北”。在地理课上,你还会学到目前为止最常用的确定位置的方式——经度和纬度。
  经度和纬度为什么可以确定位置呢?其实,经度和纬度的本质其实是球面坐标系
  我们平常接触到的坐标系是平面直角坐标系。但不管是平面直角坐标系还是球面坐标系,它们都是在一个面上的坐标系,即二维坐标系。二维坐标系中只有两个数轴:x轴和y轴,它们互相垂直,且共用一个原点。平面坐标系的两个数轴一同使用可以表示平面上任何一个点。
  这就是一种确认位置的方式。
  现在我们可以尝试使用平面直角坐标系来确定你在MC中的位置。我们先设定一个原点,比如原点就在你房子,然后设定一个单位长度就是一个方块的边长,X和Y轴互相垂直且平行于每个方块的边缘,整个坐标系所处的平面平行于Minecraft大陆。此时你就会发现,你死的地方的坐标是:
(716,-27)​
  这太令人震惊了。如果你早一点知道的话,或许就不会跑那么远,也不会找不到回去的路了。
  但或许我们并不需要这么麻烦去自建一个坐标系。因为MC本身就自带一个坐标系。这个坐标系有三个轴。一般来说,有三个轴的坐标系,是三维坐标系(专业说法为空间坐标系)。在三维坐标系中,三个轴分别是X、Y和Z。Minecraft坐标采用的是三维坐标系中的“空间直角坐标系。空间直角坐标系通俗的来说就是在平面直角坐标系上加入了一个垂直于平面的Z轴,用于确定点所在的高度(或宽度)。比如,在经度和纬度已经确定的情况下,再加上一个海拔高度,就可以确定你是在天上坐飞机还是在地下采矿了。
  MC自带坐标的三个轴表示的分别是:
  • X坐标——东(+)西(-)方向
  • Y坐标——海拔高度
  • Z坐标——南(+)北(-)方向
  需要注意的是,在真正的空间直角坐标系中,高度可能是Y轴,也可能是Z轴。
  似乎我们一般用X和Z轴就可以了。确定高度的Y轴,除了确定是在天上地下,还有啥用呢?
  你如果到处跑来跑去,会发现主世界的海平面都是在Y=64的地方(JAVA早期版本是Y=63);翻翻论坛,你会发现大家都在说钻石矿在Y=12层挖钻石最好挖;挖矿时掉进岩浆,你会发现Y=11层及以下的矿洞都被岩浆填满。(听说1.17最新快照版本世界最下面已经到了Y=-64的地方了)
  每个方块、实体都可以用坐标精准定位。而且,Minecraft的坐标可以精确到小数点后面很多位。
  说了这么多,那么如何查看坐标呢?Java版需要按下F3(或Fn+F3)打开调试面板,基岩版可以在设置界面找到“显示坐标”,打开即可,只不过基岩版需要管理员权限,Java版所有玩家都可以。
  然后你就会发现你的泥土房子的坐标是:
(62,68,21)
  但坐标就只有这一个用途吗?其实不然。
  在指令方面,坐标可以确定指令执行的位置、放置方块的地点、传送的地点、生成实体的位置等等
  MC自带的坐标我们已经了解得差不多了。但如果我们在此坐标的基础上,继续使用刚才我们以房子为原点的坐标并将其改善为类似于MC的空间坐标系会怎么样?
  其实不会怎么样,只是会上这本书。
  但如果你不以房子为原点,而是以你自己为原点会怎么样?
  你会发现,由于你会移动,导致以你为原点的三个坐标轴也会移动,最后导致以这个坐标标记的房子,其坐标的三个数值也会变化。
  但你有没有发现,不管你怎么移动,你客观上的南面十米还是南面十米,并不会因为你朝南面走十米就变成南面零米了。
  在MC中,这种坐标有一个特殊的名字,叫做“相对坐标”。
  在相对坐标中,虽然东南西北仍然是固定的,但原点却不是固定的。就比如上面的“南面十米”,你朝南面走十米,你南面十米的方块也就变化了。
  那如何表示“南面十米”呢?
  ~ ~ ~10 就可以了。
  表示相对坐标,需要在我们刚才了解的MC自带坐标的基础上,再在数字前面加上“~”,如果数字为0直接把0省略。比如往东6米,再往下1米,最后往北12米,就可以表示为:
~6 ~-1 ~-12
  注意了,顺序不能乱排,目前的这两个坐标都是按照XYZ的顺序排的。而且,XYZ三个值要用空格分开(基岩版没那么严格,JAVA版不用空格分开会报错)。
  相对坐标是这样的。但既然这个坐标叫相对坐标,那么之前我们了解得那个坐标叫啥呢?
  绝对坐标
  相对坐标和绝对坐标通常情况下是可以配合使用的
,因为不管你怎么动,XYZ三个轴还是能跟绝对坐标的XYZ对上的。举个例子:
  37 ~15 ~-2 —— X=37的地点,再以你的绝对Y坐标往上15格,然后再以你的绝对Z坐标往北2格的方块。
  如你所见,配合的时候,实际上就是将玩家的绝对坐标 XYZ 值提取出来,再加上波浪号后面的数字。直观的表现为我们把你的绝对XYZ坐标值分别设定为x、y和z,然后代入:
(37,y+15,z-2)​
  就是这么个东西。
  (注:相对坐标的原点实际是因指令而异的,在大部分情况下原点即是指令执行的位置,但也有特殊的情况,如Java1.13版本之前的/tp指令。)
 

第六章 玩家类别与权限等级

2020年1月4日 14:25 1760字
  在之前一直有提到“管理员”“成员”等玩家类别名称,其实玩家在基岩版一共分为三种。基岩版的玩家权限组从高到低分别是“管理员”、“成员”、“游客”。
  • 管理员——可以使用指令,拥有一切成员的权限,可以更改其他人的权限。可以通过/op和/deop来给予和消除其他人的管理员权限(Java版同样适用)。在菜单栏中直接更改某人的玩家类别到管理员是暂时性的,这个人退出再重进就会重置这个人的玩家类别。使用/op指令直接给予才是永久性的。
  • 成员——可以使用一些指令,目标选择器只能使用@s和指定玩家名。可以破坏、放置方块,使用方块,攻击生物以及攻击玩家,能捡起物品。一般的玩家刚进入游戏是成员,管理员可以在游戏菜单栏中更改默认玩家类别。
  • 游客——这个就惨了,只能到处观光,不能放置、破坏方块,不能攻击玩家和生物,不能使用方块,不能捡起物品,况且!基岩版的游客玩家仍然是个玩家,有基础的血量和饥饿值,但是别的玩家可以攻击他,他不能攻击别的玩家(好惨),一个木门加一个泥土墙就可以把它关起来(更惨),遇见怪物不能攻击,活活被打死(哎呀这太惨了),就算什么东西也不会找上门,迟早也会被饿死(我滴妈呀这已经不能用“惨”字来形容了)。
  成员和游客可以使用一部分的指令,这一部分的指令是啥呢?它分别是 /help、/?、/tell、/me、/w、/msg和 /list,这些指令以后会慢慢的讲。当然,成员是可以使用“§”的,所以还是可以更改消息颜色的。
  刚才有提到管理员可以使用/op和/deop来给予和撤销其他人的管理权限,但有一点要注意的是这两个指令是不可以使用命令方块执行的。
  基岩版的玩家类别是可以在暂停界面查看、修改甚至可以自定义的,但是要注意一点,就是这个面板还有一个作用,这个后面会讲到。
  那么 JAVA 版的权限跟基岩版是一样的吗?
  JAVA 服务器的根目录有一个叫做:
server.properties​
  的配置文件,使用笔记本打开可以更改服务器的配置。
  而在里面就有一栏参数:
op-permission-level​
  其默认等级是 4,可以更改数字。
  如果你把这栏参数用生草机翻译一下,那么你就会知道它的作用就是:
设置op的默认操作权限等级
  而这个数字,就是操作权限等级,实际上,在 JAVA 版,严格点来说,有五类操作权限等级:
  • 0——不可放置命令方块,玩家默认进入服务器就是这类权限。
  • 1——可以无视出生点保护,破坏出生点周围方块,但无法使用命令方块。
  • 2——可以使用所有单人游戏作弊指令(除了一些不能在服务器上运行的指令),可以使用命令方块。
  • 3——可以使用大部分指令,包括op、ban这些指令。
  • 4——可以使用全部指令。
  为什么 JAVA 版要单独分出这么多等级呢?
  实际上在基岩版也是一样,因为这儿是权限等级,而刚刚介绍的那个基岩版权限是玩家类别(更准确的来说是玩家权限组)。玩家类别不等于权限等级,而权限等级也不只是玩家才拥有
  Minecraft中的所有指令、玩家,以及一小部分特殊实体和方块,都有自己的权限等级。权限等级如上所述,是从0到4一共五个等级。权限等级有如下的基本特性
  1. 权限低的东西无法使用权限高的东西
  2. 权限等级的数值越大,权限就越高
  上面说过/op和/deop指令无法被命令方块执行,这是因为/op和/deop的权限等级为3,而命令方块和命令方块矿车的权限等级在Java版是2,在基岩版是1。
  下面列出了一些东西的默认操作权限级别:
  • Java 服务器控制台——4
  • Java 服务器玩家默认权限——0
  • Java 服务器默认op权限——4
  • Java 命令方块和命令方块矿车权限级别——2
  • Java 大多数实体、方块权限级别——2
  • Java 大多数指令权限级别——2
  • /op、/deop 权限级别——3
  • 函数默认权限级别——2
  • /execute 子命令权限级别——2
  • 单人、局域网游戏房主权限——4
  • 局域网游戏在开启作弊情况下所有玩家权限——4
  在基岩版中,由于并没有出生点保护的存在,所以其权限等级和 Java 版有一些差别:
  • 0——与 Java 版一样。玩家权限菜单中未打开“操作员命令”时玩家所有的权限。
  • 1——相当于 Java 版的2级权限。
  • 2——相当于 Java 版的3级权限。
  • 3——相当于 Java 版的4级权限。玩家权限菜单中打开“操作员命令”时玩家所有的权限。
  • 4——服务器控制台权限。
  下面列出了基岩版一些东西的操作权限级别:
  • 基岩版服务器控制台——4
  • 基岩版命令方块和命令方块矿车——1
  • /op、/deop——3
  • 函数默认权限级别——1
  • 游客、成员——0
  • 操作员(管理员)——3
  • /execute 子命令——1
  • 大部分实体、方块、指令——1
  现在你是否觉得玩家类别和权限等级有些复杂?对于初学者来说这确实有点复杂,但在服务器上这只是最基础的权限管理方法。当你想要开一个更大的服务器的时候,你就会发现这点权限根本就不够用。
  如果可能,在以后我会讲到一个更复杂也更好的玩家权限管理办法,即:用户组与权限节点
  LuckPerms:?)
 
最后编辑:

第七章 指令的格式与指令执行的三要素​

2020年1月4日 14:38 2098字
(本章的指令并不是原版真实存在的指令,而是作者瞎编的。)
  在学习指令之前,你还得了解一下指令格式的语法,不然到时候看不懂格式别怪我。
  Minecraft 官方的指令格式有六种术语、三种括号(基岩版是两种)。一种是 <>(安卓客户端会乱码,建议用网页版或IOS客户端,不然接下来你怎么看指令格式啊?),另一种是 [],还有一种是 ()。注:这是唯独阅文集团旗下应用,如起点读书、QQ 阅读等会出现的问题,在 MineBBS 上阅读本书不会遇到该问题。
  具体的内容如下:
  • 纯文本-照着写即可(如 /server info 中的 info 参数)
  • <参数描述> - 必填,根据括号内对参数的描述填写(如 /name <玩家>中的“玩家”参数)
  • <参数描述|参数描述> - 必填,选择括号内其中一项填写,符号“|”在这里表示“或”的意思(如 /drop <物品ID|方块ID>中的“物品ID或方块ID”参数)
  • (第一项|第二项) - 必填,选择括号内其中一项参数填写(如 /learn (math|physics)中的“math或physics”参数)
  • [参数描述] - 选填,根据括号内对参数的描述填写(如 /set [坐标]中的“坐标”参数)
  • [第一项|第二项] - 选填,选择括号内其中一项填写(如 /find [item|entity]中的“item或entity”参数)
  在基岩版中,并没有“(第一项|第二项)”这样的指令格式,而是“<第一项|第二项>”。并且,基岩版的参数描述也有特定的格式:“描述内容:值类型”。如“方块坐标:Int”,在这边Int就是参数填的是整数数值的意思(实际上 Int 这个值类型并不完全是这样的,具体的内容会在以后NBT的教学中讲到)
  需要注意:本书中文指令格式较为混乱,且并没有完全按照 Minecraft 本身的指令格式,因此建议真的要查指令格式还是到 Minecraft Wiki。至于为什么不完全按照 Minecraft 本身的指令格式,因为刚开始写本书的时候没怎么注意:hua_嘿嘿:
  目前我已经在改善本书的指令格式,现在的情况已经好很多了。
  本书采用的指令格式大体是这样的:
  • 纯文本-同官方
  • <参数描述> - 同官方,但部分旧章节会采用一些奇奇怪怪的括号,如“《》”和“〈〉”。
  • (第一项|第二项) - 大部分章节还是采用类似基岩版的尖括号包裹。
  • <参数描述|参数描述> - 同官方
  • [参数描述] - 同官方
  • [第一项|第二项] - 同官方
  • [参数描述|参数描述] - 选填,根据括号内其中一项对参数的描述填写。
  • [<参数描述|参数描述>] - 同『[参数描述|参数描述]』
  • [<第一项|第二项>] - 同『[第一项|第二项]』
  • 参数描述- Java 版和基岩版混用
  除了指令格式的语法外,你还得了解一下指令执行时的三要素:执行位置、执行者、参数
  • 执行位置——简单来说就是指令执行的位置,你可以通过一个问句来理解它:这条指令在哪里运行?
  • 执行者——就是执行指令的东西,你也可以通过一个问句来理解它:执行这条指令的人是谁?
  • 参数——就是你给指令提供的参数,你还是可以通过一个问句来理解它:执行这条指令的人要对什么东西干什么事情?
  (注:指令本质上并无对这三个东西有三要素之称,这里只是为了方便大家理解给它们套了个头衔)
  这三要素有什么用呢?
  如果你用过 MCreator 这个软件来创建指令,你会发现创建指令后 MCreator 要求你写一个指令运行时的流程(也就是游戏解析并运行指令的过程),同时游戏将给这个流程提供以下信息:
  • Entity - 执行指令的实体(对应“执行者”)
  • xyz - 执行指令的 X、Y、Z 坐标(对应“执行位置”)
  • World - 执行指令的维度(还是对应“执行位置”)
  • Cmdparams - 提供的参数(对应“参数”)
  也就是说,一条指令执行的时候,肯定会被提供以上信息。
  其中『参数』我们得稍微讲一下。
  我们在序言中讲解参数时是通过举例的方式,并没有给其下一个明确的定义,所以其实我们还是不知道参数究竟是什么。
  所以参数究竟是什么呢?
  参数(Parameter),又称元素(Elements),是指一条指令中除指令开头的单词和前缀外,提供的其他信息。
  比如在指令 /tp @s ~ ~ ~ ~20 0 true 中,前缀『/』和指令单词 tp(有些指令教程也叫做指令头,反正怎么叫都可以,没有一个固定称谓)之外的『@s』目标选择器,相对坐标『~ ~ ~』,旋转角度『~20 0』和安全检查模式『true』均为参数。
  参数按照其作用,可以笼统地分为六类:
  • 子命令——有些指令,比如 scoreboard 会有很多的作用,此时就需要子命令来将不同的作用区分开来。(为什么不叫子指令呢?)
  • 位置(坐标)——指令执行的地点,也就是上面的三要素之一,一般是一个坐标
  • 目标——指令所操作的对象。如果对象是实体,一般用的是 UUID、玩家名或目标选择器;如果对象是方块,一般用的是坐标;如果对象是其他的一些东西,一般就会用一些特殊的 ID。
    (注:本书中,默认将 UUID、玩家名和目标选择器合并起来。所以后面如果你看到一个参数可以填写目标选择器,那就大概率也能填写玩家名和 UUID)
  • ——这东西无法很好的定义,因为在不同的指令中,值类型的参数的作用不一致,但大多数情况下的作用都是具体化对目标的操作。比如在『将玩家传送至一个地点』的指令中,这个地点的坐标就是一个值类型的参数。当然你其实并不需要现在就将它理解得十分透彻,后面学习的过程中你慢慢就会懂了。
  • 模式——对目标进行操作时,所采取的模式。比如传送玩家的时候,你可以选择是默认模式,还是开启安全传送模式。
  • NBT、JSON——一般位于指令的末尾,对目标进行更具体的选择或进行一些更高级的操作。
  一条指令大多数情况下可以填写多个参数。参数与指令开头的单词还有其他参数之间在大多数情况下要有一个空格予以区分。例外情况是基岩版的相对坐标和目标选择器,参数内一般不会包含空格。
  所以空格在指令中十分重要,千万要记住了!
  这就是本章的全部内容。接下来我们将会步入正式的指令学习阶段。
 

MC新手要学习的基础—1—红石信号​

2020年4月8日 10:50 703字
此章节未在第一次大修过程中被修缮

(此章节的内容我不是很满意,不推荐你阅读此章节)
  最近我想了一下,发现不对第一卷补点基础那是不行的,估计有读者是玩MC的新手,所以这边就得向这些新手科普一下。
  那么今天直接切入正题——什么是红石信号(知道的请跳过)
  红石信号,从某种意义上来讲,它类似于现实中的电能。
  至于为什么是类似,是因为:红石能会把爱因斯坦气死。
  为什么会把爱因斯坦气死呢?
  首先,请你打开MC。
  然后,在创造模式的背包里找到拉杆(也可以使用“搜索一下,你就得到”之物品栏搜索)。
  接着,找到红石粉(具体方法见上一段——如何找到拉杆)
  最后,把拉杆放在地上(不是按Q丢出去),然后在相邻的方块上铺上红石粉。
  那么现在,请你花费一点点的时间,拉下拉杆。然后你就看到最神奇的一幕:
  红石粉亮了。
  这是什么原理呢?
  拉杆拉下,产生了15级红石信号,被红石粉(红石能的载体)吸收,红石粉就充满了能量。
  只不过你不用担心会被红石能红石死,Mojang没加入这个死亡方式。
  你也不用担心红石线路会短路,拉杆可不是电池。
  为什么拉杆不是电池却可以产生红石信号呢?
  答案很简单:MC有能量无限定律(气死那位正在吐舌头卖萌的科学家)
  这就是红石信号。
  其实红石信号也是有等级的,级数越高能量越大,红石粉就越亮。
  每级红石信号每随着红石粉传播一格,能量就要-1级。
  当然有个附加条件——只要这个红石信号大于0级。
  但其实红石信号的等级并没有关系到要用红石能的机器,不管是1还是15级,只要被红石连上,只要有红石能,就可以运行。
  比如第二章的命令方块。
  当然,红石信号的等级一般来说也有一个上限:15级。
  注意!上一句话只是一般,到后面八九十章的时候会讲到红石信号的等级上限不止15级。
  当然,那是以后的事了。
  OK这一章到这里就结束了。
 

MC新手要学习的基础—2—Minecraft版本的区分​

2021年7月16日 22:52 3306字
(本章节偏题比较严重[doge])

  在前面的章节中,你会发现作者一口一个 Java 版基岩版的。可能你不懂 Java 版和基岩版到底是什么东西,它们的区别是什么,它们可以在哪些设备上运行。如果你知道了,直接跳过也没关系。如果你不知道,那你就得好好了解一下了。
  说到 Minecraft 的版本,就不得不提一下 Minecraft 的历史发展过程。
  2009年4月29日,Barth 发布了一款名叫无尽矿工(Infiniminer的游戏。这款游戏一开始很受欢迎,但因为源代码泄露,仅不到一个月,无尽矿工就停止了更新。
  就在这短短的一个月内,有一个叫 Markus Persson 的人发现了这款游戏。这款游戏给了他灵感。很快,他就以之前被放弃的 RubyDung 为基础,结合《无尽矿工》的代码与他的灵感,搞出了一款游戏:Cave Game
  这个人对你来说非常陌生,但他的 Minecraft 用户名你不可能不知道。
  他的 Minecraft 用户名叫做 Notch,这款 Cave Game 就是 Minecraft 最初的版本。
  从2009年5月10日 Cave Game 开始开发到2011年5月25日出现 Minecraft 携带版的消息为止,期间所有的 Minecraft 版本都是基于 JAVA7 和 8 开发的,这种基于 JAVA 语言的 Minecraft 版本就是 Java版
  Java 版被视为最经典的 Minecraft 版本,也是第二容易入正的 Minecraft 版本(注册 Mojang 账号时那个验证码要挂梯子)。由于 Java 版是 Minecraft 年龄最老的版本,所以 Minecraft Java 版的更新在绝大多数的时候都会比基岩版要快一些,游戏内容(特别是指令)和 mod、资源包、材质包、光影资源也比基岩版多了不知道多少倍。注:如今 Java 版和 Win10 基岩版已经是捆绑售卖,也不再需要 Mojang 账号。
  需要注意的是,现在我们说的 Minecraft Java 版在 1.12.2 更新之前,其实叫做 Minecraft PC版,1.12.2 及之后的版本由于基岩版的出现才被重命名为 Minecraft: Java。
  Java 版的玩家可以一直停留在一个特定的 Java 版本(如 Java 1.12.2),也可以一直玩最新版本,前者情况的玩家会比较多。Java 版本身游戏并没有正盗版之分,只有账号和服务器进入条件有分正版和盗版(有些 Java 服务器会开启正版验证,如 Hypixel 和 2B2T)。

  2011年8月16日,Mojang 在 Xperia PLAY 平台首次发布了 Minecraft 携带版 Alpha 0.1.0。此后,Android(2011年10月7日)、IOS(2011年11月17日)、Fire OS(2012年9月13日)、Windows10(2015年7月29日)、Gear VR(2016年4月27日)、Apple TV和Fire TV(2016年12月19日)也轮流发布了 Minecraft 携带版。
  你估计没有听说过 Minecraft 携带版,就算听说过你估计也搞不懂 Minecraft 携带版与 Minecraft 基岩版是什么关系。别担心,很快你就能搞懂了。
  Minecraft 携带版简单来说就是 Minecraft 在手机系统上的版本,它基于 C++ 开发,并且最终售出的份数比同时期的Java版还要多。唉,为何要说“最终”呢?因为 Minecraft 携带版在2018年6月21日正式停止支持。
  虽然它活了将近 7 年,但正式版(携带版 1.0 末影更新)的发布已经是 2016年12月19日了。Minecraft 携带版的内容最初相比 Java 版来说很少,但正式版发布后携带版的内容总算是赶上了 Java 版的主要内容,指令什么的就不用说了,结构方块都有了,并且可以游玩服务器、登录账号、购买材质包皮肤等。
  唉,如果你了解过携带版,你可能就会发现,作者说的携带版和你认知中的携带版有那么亿点不同。实际上,现在网上所能找到的携带版,基本上都是携带版的 Alpha 版本,还是及其早的 Alpha 版本,这就导致许多 Minecraft 玩家认为携带版及其简陋,甚至连地狱、指令都没有。真实的携带版,在正式版出来过后,已经极其完善了。
  如果你玩过现在的基岩版,你可能也会疑惑——这携带版怎么和基岩版听起来差不多呢?这就要说到携带版与基岩版的关系。
  携带版 1.1 探索更新之后的 1.2 版本,即独乐不如众乐更新,将标题永久的更改为了 Minecraft。同时,游戏也被重命名为了 Minecraft: 基岩版
  惊不惊喜?都知道 Minecraft 基岩版是基于 Minecraft 携带版开发的,但没想到一个版本更新,携带版改一下名字,就成了基岩版了!携带版虽然停止支持了,但没有完全停止支持,而是换了一种方式去支持。
  但为什么 Minecraft 携带版要改为基岩版呢?因为 Mojang 想要用 Minecraft 基岩版将各平台打通,此时“携带版”这个名字就不合适了,所以改了个名字。
  由于 Minecraft:基岩版的出现,有另外一个 Minecraft 版本被影响到并最后和携带版一样被基岩版替代。

  2012年5月9日,Minecraft TU1 版本发布在了 Xbox 360 主机上。这个 Minecraft TU1 版本,就是Minecraft 原主机版的开端。
  Minecraft 原主机板的定位和它的名字一样,是属于游戏主机上的 Minecraft。继 Xbox 360 之后,Minecraft 原主机版还发布在了 PS3(2013年12月17日)、PS4(2014年9月4日)、Xbox One(2014年9月5日)、PSVita(2014年10月14日)、Wii U(2015年12月17日)、Nintendo Switch(2017年5月11日)
  原主机版的游戏内容更像是 Minecraft Java 版,但它有许多奇特的特性:
  1. 具有分屏功能
  2. 内容相比同期的 Java 版要少一些
  3. 自动合成
  4. 具有教学模式
  5. 世界大小有限
  6. 下界:主世界为 1:3(Nintendo Switch 版为1:6)
  7. 皮肤不可自定义
  8. 创造模式飞行没有惯性
  9. 超平坦世界中,下界也是平坦的
  10. 统计数据被排行榜代替(除 Wii U 版和 Nintendo Switch 版)
  在 Minecraft: 基岩版出来之前,Java 版、携带版和原主机版是 Minecraft 的三个大版本。在这三个大版本之外,还有许多小版本,这些小版本受支持的时间并不长,并且也比较冷门,这里就不展开讲了:
  • Minecraft 4k:2009年12月2日~2014年11月(Web端、Java)[Java]
  • MinecraftEdu:2011年~2016年1月19日(Windows、Mac OS、Linux)[Java]
  • Minecraft:树莓派版:2013年2月11日(Linux[仅ARM]、树莓派)[C++]
  • New Nintendo 3DS版:2017年9月13日~2019年1月15日(New Nintendo 3DS)[C++]
  2014年9月15日,Mojang 被 Microsoft 以25亿美元收购,同年11月5日,Markus Persson 离开了Mojang。
  上面所列的4个冷门Minecraft版本中,MinecraftEdu 是如今 Minecraft 教育版的前身。Minecraft 教育版基于携带版制作,定位是帮助学校展开编程教育。其于 2016年11月1日发布于 Windows 和 Mac OS 平台,2018年9月6日发布于 App Store(支持 iPad OS),2020年8月7日发布于 Chrome OS。
  2019年3月27日的时候,微软宣布 Minecraft 教育版在中国将会由京东代理。说到代理,就不得不提一下你肯定知道的:
Minecraft:中国版(又称Minecraft:网易版

  2016年5月20日,微软、Mojang 和网易联合宣布,Mojang 将 Minecraft 基岩版中国大陆地区的运营权授予网易旗下子公司,为期五年(后来 Java 版也授予了)。然后就是大家所熟知的水立方发布会(2017年4月7日)。Hypixel 服务器也借着这波热潮,于 2017年5月21日宣布开放 Hypixel 中国区,一直到 2020年6月30日关闭服务器。
  中国版具体有什么就不用说了,是个中国玩家都玩过,特别是手机端,熟悉得不能再熟悉。只不过现在的中国版是个啥情况,懂得都懂。
  2017年9月15日,中国版手机端在 App Store 上线。五天后的 20 日,携带版/基岩版 1.2 独乐不如众乐更新在除 Nintendo Switch 版外(延迟到 2018年6月21日)的全平台发布。但这并不是基岩版的首次发布,它最早于19日发布于 Xbox One,替代了原来的 Xbox One Minecraft 原主机版。
  基岩版替换掉了携带版之后,原主机版也渐渐被基岩版替代。2018年6月21日,基岩版登陆 Nintendo Switch;2019年12月10日,基岩版登陆 PlayStation 4。到目前为止,基岩版的 Windows10、Android、IOS、iPad OS、Fire OS、PS4、Nintendo Switch 版本仍在接受更新,XBOX One 还在运营,剩下的 Samsung Galaxy APPs、Windows Phone、Apple TV、Gear VR、Windows10 Mobile、Fire TV 版本全都停止支持。你现在玩的 Minecraft,只要是在手机上的,肯定就是基岩版。
  Mojang 用了基岩版打通了多平台的 Minecraft,但由于平台太多,导致基岩版在每个平台都有些不一样。基岩版在村庄更新前一直比 Java 慢一拍,村庄更新后,基岩版和Java版更新实现了同步,甚至有些超越(比如 1.17更新时山羊是基岩版先出的),版本号也统一了。
  基岩版由于平台太多,导致既是最容易入正的 Minecraft 版本(Windows10 版,Microsoft Store 直接可以买),也是最不容易入正的现阶段还在支持的 Minecraft 版本。如果你要入正基岩版,可以参考一下 MCBBS(我的世界中文论坛)的入正教程注:MCBBS 似拉!:快哭了:下面是 MineBBS 上的相关教程,但都很简略:

附表1:Minecraft基岩版/携带版大更新名称

版本名称​
更新名称/主要更新内容​
更新日期​
携带版Alpha0.14​
主世界更新​
2016年2月18日​
携带版Alpha0.15​
友好更新​
2016年6月10日​
携带版Alpha0.16​
Boss更新​
2016年10月21日​
携带版1.0.0​
末影更新​
2016年12月19日​
携带版1.1.0​
探索更新​
2017年6月1日​
基岩版1.2.0​
独乐不如众乐更新​
2017年9月20日
(Switch为2018年6月21日)​
基岩版1.4.0​
水域更新第一阶段​
2018年5月16日​
基岩版1.5.0​
水域更新第二阶段​
2018年7月10日​
基岩版1.6.0​
幻翼、缓降​
2018年8月28日​
基岩版1.7.0​
/scoreboard​
2018年10月15日~16日​
基岩版1.8.0​
熊猫​
2018年12月11日​
基岩版1.9.0​
掠夺者​
2019年2月6日​
基岩版1.10.0​
篝火​
2019年3月19日​
基岩版1.11.0​
村庄与掠夺​
2019年4月23日​
基岩版1.12.0​
相机​
2019年7月9日
(Android为2019年7月10日)​
基岩版1.13.0​
狐狸​
2019年10月29日​
基岩版1.14.0​
嗡嗡蜂群​
2019年12月10~11日​
基岩版1.16.0​
下界更新​
2020年6月23日​
基岩版1.17.0​
洞穴与山崖​
2021年6月8日​

附表2:Minecraft:Java大更新

版本名称​
更新名称/主要更新内容​
更新日期​
1.0.0​
冒险更新​
2011年11月18日​
1.1​
刷怪蛋、超平坦、多语言​
2012年1月12日​
1.2.1​
丛林​
2012年3月1日​
1.3.1​
村民交易、冒险​
2012年8月1日​
1.4.2​
骇人更新​
2012年10月25日​
1.5​
红石更新​
2013年3月13日​
1.6.1​
马匹更新​
2013年7月1日​
1.7.2​
改变世界的更新​
2013年10月25日​
1.8​
缤纷更新​
2014年9月2日​
1.9​
战斗更新​
2016年2月29日​
1.10​
霜炙更新​
2016年6月8日​
1.11​
探险更新​
2016年11月14日​
1.12​
多彩世界更新​
2017年6月7日​
1.13​
水域更新​
2018年7月18日​
1.14​
村庄与掠夺​
2019年4月23日​
1.15​
嗡嗡蜂群​
2019年12月10日​
1.16​
下界更新​
2020年6月23日​
1.17​
洞穴与山崖第一部分​
2021年6月8日​
1.18​
洞穴与山崖第二部分​
预计2021年年末​
 
最后编辑:

第二卷 常用基础指令

这些指令都是必懂的,想不知道都难。

第八章 /give的用法

2020年1月4日 15:04 1532字
  现在我们来学习第一个指令:/give
  /give 指令可以说是极其基础的指令,很多 Minecraft 玩家都用过它,因为通过 /give 指令可以获取到一些创造模式中无法获取的方块物品,比如大名鼎鼎的命令方块。
  下面来介绍一下:
  /give
  作用
:可以给予一名或多名玩家物品。
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式
Java1.13 以下
/give <玩家:目标选择器> <物品id:字符串> [<物品数量:整数>] [<物品数据值:整数>] [NBT标签]

JAVA1.13 及1.13 以上
/give <玩家:目标选择器> <物品英文id:字符串> [<物品数量:整数>]

基岩版​

/give <玩家:目标选择器> <物品id:字符串> [物品数量:整数] [物品数据值:整数] [附加标签:json]

  好的,现在来逐一介绍一下。
  玩家——也就是一个选择玩家作为目标的目标选择器。
  物品id——什么是物品ID呢?ID(Identity document),中文翻译“身份标识号”,相当于物品的“身份证”(专业说法是“命名空间ID”)。每个物品都有自己独一无二的ID。
  ID 有数字形式(数字ID)和字符串形式(英文ID)。在 Java1.8 版本以前,Minecraft 中的大多数事物都采用数字 id,其中就包括物品和方块。Java1.8 版本更新后,虽然数字 ID 仍然存在,但很多地方都被更加先进也更好记的英文 ID 替换掉。比如钻石在 Java 版的数字 ID 是 264,很不好记,更新后的英文 ID 是 “minecraft:diamond”,其中的 “diamond” 就是钻石的英文,对于会英文的玩家来说就极其方便了(特别是由于添加了命名空间前缀,大大降低了模组物品 ID 重名的可能性)。
  在基岩版,数字 ID 和英文 ID 两者在大多数指令中都是通用的。比如后面会讲到 /effect(状态效果),其中的状态效果ID就可以使用数字 ID 或和英文 ID。但需注意,物品 ID 和方块 ID 仍然只认英文 ID。也就是说,这里的 “物品ID” 参数,除非你在使用 Java1.8 之前的版本,你就必须得填入物品的英文 ID。
  Java1.13 更新后的 Java 版本,完全抛弃了“数字 ID”,全面使用英文 ID。因此,你现在在 Minecraft Wiki 上只能找到基岩版的数字 ID,而不能找到 Java 版的。要找到 Java 版的,就需要打开页面历史记录,找到 1.13 版本尚未更新时的页面,才能找到 Java 版的数字 ID。
  物品数量——这个不用说了吧,哪个中国人不会看中文的?
  物品数据值——这个就有意思了,MOJANG 为了“偷懒”,将同类物品集合到数据值中,比如说羊毛,不输入或输入 -1 默认是白色,即相当于输入 0,如果要获得其他颜色就需要输入其他值。
  数据值为 -1 相当于数据值为 0,因为数据值默认就是 0,而 -1 的意思是“不考虑数据值”,所以数据值填 -1 同等于不填。注:这段话表述有误,在某些情况下,数据值 -1 和 0 是有差别的,前者代表“不考虑数据值”,后者代表“数据值为 0 的物品/方块”。但在这里的确相当于填 0,因为你不可能获取到一个数据值为 -1 的物品。后面就会遇到作用有差异的情况。
  在 Java 版 1.13 版本更新中,数据值被删除(但没有完全被删除,讲 NBT 时会讲到),每个物品也就有了自己对应的英文 ID。比如红色羊毛在 1.13 版本之前其ID是:wool 14。之后就变成了 red_wool。
  附加标签——这东西类似于 NBT 标签(实际上是 JSON),以后会讲到。
  OK,说了这么多,来举个栗子:

/give @a diamond_block 1

  这个的指令意思是给予所有玩家一个钻石块(diamond_block)。
  现在来献上一些不能在创造模式的背包中获取的物品吧!
  • command_block——命令方块(脉冲型)
  • barrier——屏障方块,又称空气墙
  • air——空气方块,也没啥用,就算输入成功也获得不了(空气嘛,你能抓住吗?)
    (本书的QQ群入群问题就是 /give @s air 有什么用,因为 air 获取不了,所以这条指令啥用也没有)
  • structure_blocks——结构方块,一个神秘的方块,以后会有几个章节专门讲这个东西。
  • structure_void——结构空位,基岩版新版本有了,结构方块的配套方块。

/give的历史​

Java版(Alpha)

版本​
更新内容​
v1.0.15​
加入了 /give。但只能使用数字 ID,且只能获得单个物品。格式(可能):
/give <玩家名> <物品>
?​
加入了数量参数。格式(可能):
/give <玩家名> <物品> [数量]

Java版

版本​
快照​
更新内容​
1.0.0​
Beta 1.9-pre4​
加入了损害值(数据值)参数
1.3.1​
12w16a​
能在单人游戏中使用了。
1.7.2​
13w36a​
加入了 NBT 标签参数。
1.7.2​
13w37a​
现在可以使用物品英文 ID 了。
1.8​
14w03b​
现在不支持物品数字 ID 了。
1.8​
14w32b​
现在无法突破物品堆叠上限。
1.12​
   当目标选择器是玩家自己时,实际上会使用 @s 选择器。
1.13​
17w45a​
移除了数据值和 NBT 标签参数。
1.17​
21w10a​
加入了数量限制。

携带版(Alpha)

版本​
快照​
更新内容​
0.16.0​
build 1​
加入了 /give。
 
最后编辑:

第九章 tp-传送指令​

2020年1月4日 17:15 2073字
(此章最后一次大修改于2022年7月9日)

  我相信在看这本书的你一定去玩过私人服务器,里面最经常使用的指令就是 tp(传送)。
  Minecraft固有的传送指令是 /tp,其全称实际上是 teleport。由于这条指令深究起来很复杂,加上目前还是学习初期,我们就先了解个皮毛就好。
  /tp
  作用
:将一个实体传送到另一个实体或者是坐标。
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式

/tp [传送目标:目标选择器] <目的地实体:目标选择器>

  这可以将选定的目标传送到另一个实体的位置,比如把张三传送到李四的位置。注意,目的地实体不能为多个,即你并不能将张三传送到李四和王五的位置(就算张三不止一个也不能这样干)。如果将传送目标省略,那么将会传送执行者自己(一般是你自己)。

/tp [传送目标:目标选择器] <一个地点:坐标> [<水平旋转角度> <垂直旋转角度>]

  这可以将选定的目标传送到一个指定的地点。

  那什么是水平旋转角度和垂直旋转角度呢?
  水平旋转角度(yRot),又叫做 Y 轴旋转角度,指的是实体以 Y 轴为中心,俯视时顺时针的角度。听不懂?没关系,你只需要打开你手机,然后找到一个应用叫做指南针(一般手机有自带)。没有?也没关系,百度地图高德地图之类的总该有吧?或者你现场下一个指南针,甚至自己用磁铁做一个,只要有标上角度就行。
  打开指南针,你就会发现在这个指南针的外侧有一圈度数,以正北(0°)开始,顺时针绕一圈 360° 再回到正北。
  这个度数叫做什么呢?叫做真北方位角。相应的,以正南(0°)开始,也是顺时针绕一圈 360° 再回到正南的,就是真南方位角
  由于我们位于北半球,所以常见的是以正北为 0°,也就是采用真北方位角的指南针。但这又和我们水平旋转角度有何关系?
  其实,我们的水平旋转角度就是 Minecraft 版的真南方位角——以实体为中心,以正南(z 轴正方向)为 0°,顺时针下来,实体朝向和正南方向的夹角(也或者说实体在真南方位角体系中朝向的角度),就是该实体的水平旋转角度。
  比如你看向正北,你的朝向按照真南方位角来看,就是朝向 180°,你的水平旋转角度就是 180°;朝向东北,就是朝向 225°,你的水平旋转角度就是 225°;朝向西南,就是朝向 45°,你的水平旋转角度就是 45°.......
  懂了吧?如果还没懂......网上随便去找一个以正南为 0° 的指南针的图片,把 Minecraft 的坐标怼上去就清楚了(以后再考虑为这个教程弄点图片)。
  另外的垂直旋转角度(xRot),又叫做 X 轴旋转角度,指的是实体与水平面之间的倾斜角。这个可比水平旋转角度好理解多了,相信你应该能够看懂上面的这句话。只不过需要注意一点,对于有头或有眼睛的实体来说(比如玩家),这东西指的是头的朝向(也就是目光的朝向)与水平面之间的夹角,而不是整个身体(这就是为什么你能够看到一个头倾斜着的玩家,但你绝不可能看到一个身子倾斜着的玩家)
  (有没有一种可能,其实 Minecraft 中的玩家朝正下方或正上方看的时候,实际上是平行与地面的,只是 Mojang 懒得做出这样的效果而已)
  (唉,这样子就能解释为什么在游戏中,第一人称的玩家看不到自己的下半身了!)

  需要注意的是,这个垂直旋转角度虽然以水平面朝向为 0°,但和上面的水平旋转角度不一样的是,这东西引入了负值:朝上为负,朝下为正。比如你头朝上 45° 看天空,那么你的垂直旋转角度就是 -45°;你头朝下 45° 看地板,那么你的垂直旋转角度就是 45°。而且,垂直旋转角度肯定不能超过 +90° 或低于 -90°。
  懂了吧?在 tp 中引入垂直旋转角度和水平旋转角度,就可以指定传送目标在传送完成后的朝向(如果未指定,将会不改变朝向,虽然可能没多大作用,但在一些 RPG 地图或服务器,能够让玩家一传过来就看到重要的告示牌或其他的一些东西,那岂不美哉?)
  比如下面的指令:

/tp @p ~ ~ ~ 90 0

  这将会使最近的玩家朝向正西而不改变其位置。
  很简单吧?对了,既然坐标有『绝对坐标』和『相对坐标』,那么旋转角度有没有『绝对旋转角度』和『相对旋转角度』呢?
  答案是肯定的。
  和相对坐标一样,相对旋转角度也是使用符号~代表传送实体本身的朝向,以正数和负数代表角度的增加和减少。比如下面这条指令:

/tp @p ~ ~ ~ ~-30 ~1

  假设这 @p 选中的还是上面那位被迫朝向正西的玩家,那么这条指令将会使他朝向南偏西 60°,头微微朝下 1°。
  简单吧?本章也就到这里了,对于初学者来说这些内容就已经足够了。
  上面所述的 tp 指令适用于基岩版和 Java 版。在 Java 版 1.13 版本更新之前,tp 的指令用法就这么多。而关于 1.13 版本到底对 tp 进行了怎样的更新,这些内容以及一些更加复杂的东西会在第六十四章具体讲到。

/tp历史​

Java版

Classic Server
版本​
更新内容​
1.7​
加入 /tp

Indev
版本​
更新内容​
0.31​
移除了所有命令

Alpha
版本​
更新内容​
v1.0.16_01​
重新加入了 /tp。

正式版
版本​
更新内容​
1.3.1​
现在允许玩家传送到指定坐标
1.8​
加入了朝向参数。
1.9.3​
/tp 不能在能将玩家传送到 Y=-512 到 512 以外的地方。
1.10​
Y 轴限制现在增加到 -4096 到 4096。
1.13​
将 /tp 和 /teleport 同化,/tp 也正式成为 /teleport 的别称(缩写)。

携带版(Alpha)

版本​
更新内容​
0.16.0​
加入了 /tp。​
  你有没有发现,这个tp指令的旋转角度参数的格式是这样的:

[<水平旋转角度> <垂直旋转角度>]

  这是什么意思呢?
  这个的意思就是,这两个参数都是选填的,但如果你填写了其中的一个,另外一个也就必须填写,即你并不能只填写水平旋转角度或只填写垂直旋转角度,而把另外一个空着。
  知道了吧?那么本章到这里就完全结束了。
 

第十章 kill-熊孩子最喜欢的指令​

2020年1月4日 17:45 670字
  我的世界网易服务器,最不缺的是什么?是石头?是泥土?是空气?答案是熊孩子!
  一进入网易的生存私人服务器,宛如进入了中国版 2B2T 一样,地图遍地狼藉,房子七零八落,偶尔还能看到流淌的岩浆。
  幸亏熊孩子们还只会用 TNT,如果它们知道了指令,那么或许这将会是它们最喜欢的指令:
  /kill
  (额,其实就算知道了也没权限)
  相信大家对这个指令都不陌生。就算你不知道,这种死亡信息你总见过吧:

XXX 掉出了这个世界(基岩版为 XXX 失败了

  今天,我们就来看看这个指令,也就是/kill。
  /kill
  作用
:清除一个或多个实体。
  权限等级:Java-2,基岩-1
  格式
/kill [实体:目标选择器]

  好的,现在来解读一下。
  如果你不写要 kill 的实体,就执行 /kill,会发生啥?
  很明显,你死了。
  执行 /kill 不填目标选择器 = 自杀,也就是默认选择执行者自己作为指令执行的目标。很多指令都有这样的特征,不写目标相当于选取执行者自己作为执行目标。
  什么?你并没有死?
  哦,那你一定玩的是基岩版的新版本,因为基岩版中处于创造模式的玩家被 /kill 是死不了的。
  但是加上目标选择器就不一样了,你想杀谁就杀谁。
  但事实上在 Minecraft 中,/kill 本意是“清除某个实体”,所以使用 /kill 后,你会发现其消息栏中有一个“已清除 XXX”,并不是死亡。

/kill历史​

Java 版(Alpha)​

版本​
更新内容​
v1.2.6​
加入了 /kill 命令。

Java 版​

版本​
更新内容​
1.6.1​
/kill 命令对实体造成的伤害从 1000 增加至 3.4×10 的 38 次方。
1.8​
为 /kill 命令加入了玩家和实体参数,同时能被命令方块执行了。
1.8​
为修复编号为 MC-44371 的 BUG,/kill 命令现在直接清除非生物实体,不再对其造成 3.4×10 的 38 次方虚空伤害。
1.13​
目标选择器参数不再是可选。
1.15​
目标选择器参数再次可供选择。

携带版(Alpha)​

版本​
更新内容​
0.16.0​
加入了 /kill 命令。
 

第一章 作弊与输入指令

2020年1月3日 21:24 2779字
(2022年7月5日有修改,此章节写作时作者使用的Minecraft为基岩1.17.0正式版[非网易版]和Java1.12.2)

  新建世界的时候,JAVA版点击“更多世界的选项...”,基岩版点击“编辑设置”-“游戏”并向下滑,你会发现前者会有一个默认为“关”的“开启作弊”选项,后者会有一栏“作弊”,里面也有一个“激活作弊”选项。
  这个“作弊”是什么回事?难道Mojang还制作了官方外挂?
  很明显,这并不是什么『官方外挂』,而是一个能让你拥有更高权限的选项(毕竟是『我的世界』嘛)
  说白了,这个“作弊”选项,正如Java版对于这个选项的描述一样(像/gamemode、/xp的命令),开启后可以让你在游戏中使用类似作弊一样的指令。
  既然你要学习指令,那么这个选项必须开启,因为不开你就用不了!
  额.....实际上.......能用,但只能用一点点(发送全服消息和发送私人消息)。
  开启这个选项后,创建世界,你就可以开始输入指令了。
  新手:“哎呀,不知道在哪输入指令啊。”
  大佬:“你这消息咋发的?”
  新手:“聊天栏发的啊,地球人都知道。”
  指令最开始是从聊天栏开始。所以为了学习指令,首先就是要学习“如何正确使用聊天栏”。

第一步:打开聊天栏

  聊天栏在哪呢?如果你使用的是基岩版,看到上面那个消息图标的按钮没?就是那个,点进去,这就是聊天栏。
  如果你使用的是Java版,按下“T”键就可以呼出聊天栏。

第二步:研究聊天栏

  基岩版的聊天栏有三个部分:
  • 顶栏——显示这窗口名叫“聊天和命令”,点击左边的“<退出”可以退出界面。
  • 信息栏——显示聊天的信息,最多可以保存100条。
  • 输入栏——输入并发送信息、执行指令。左边是一个键盘图标,点击可以打开键盘;左边第二个是一个“/”的图标的按键,点击可以快速执行特定的指令,是个人都懂得用;左边第三个按键是齿轮图标,打开可以设置信息栏显示的字样;中间的就是输入框,输入消息(指令)的地方;最右边是发送(执行)按钮,即发送(执行)信息(指令)
  Java版的聊天栏就比基岩版的简单多了:
  • 左下角——信息栏,光标放在上面转动滑轮可以上下滑动。和基岩版一样可以存100条消息。
  • 下方——输入框,输入信息(指令),按Enter发送消息(执行指令)。
  • 当然,这本书作为一个指令教程书,肯定不会去研究消息到底该怎么发,而是去研究“如何打出指令”。

第三步:打出指令

  为了打出指令,请尝试在空白的输入框中打出一个“/”,不要告诉我你找不到这符号。这个斜杠是指令的前缀符号,它让游戏知道你要输入的是指令,而不是一条普通的聊天消息。
  如果你使用的是基岩版,此时你就会发现,上面的聊天消息消失了,取而代之的是一堆依照开头字母排列的“白色/+灰色英文单词”,同时还有功能的介绍;如果你使用的是JAVA版海洋更新(1.13)及以后的版本,那么你也会发现,上面出现了许多“/+单词”选项。
  这些选项,每个都是指令。
  但如果你使用的是Java1.13以下版本,那么你就会发现,啥也没有发生,聊天栏仍然是聊天栏,主世界仍还是那个主世界,你也仍还是那个你,唯一变的就只有你聊天栏上的“/“和四处闲逛的动物了。
  在基岩版和Java1.13及以上版本,你每按下一个字母,上面显示的单词信息就会更新。游戏会自动排除掉那些不符合你输入内容的指令,留下那些你可能要用的指令。同时,你打的指令进度也会显示在上面那些待选指令中,呈现黄色(Java)或白色(基岩)。
  而在Java1.13以下版本,该怎么办呢?
  很简单,输入完“/”后,按一下Tab键,然后就会.......
代码:
/?,/advancement,/blockdata,/clear,/clone,/debug,/defaultgamemode,/difficulty /effect,/enchant,/entitydata,/execute,/fill,/function,/gamemode,/gamerule,/give,/help,/kill,/locate,/me,/msg,/particle,/playsound,/publish,/recipe,/reload,/replaceitem,/say,/scoreboard,/seed,/setblock,/setworldspawn /spawnpoint,/spreadplayers,/stats,/stopsound,/summon,/teleport,/tell,/tellraw /testfor,/testforblock,/testforblocks,/time,/title,/toggledounfall,/tp,/trigger,/w,/weather,/worldborder,/xp,/reloadShaders,/reloadChunks
  继续按Tab还会按照顺序切换。
  (唉作者,为什么我是Java 1.13及以上版本但打出“/”时没变化呢?)
  (哦,那是因为指令提示默认需要按Tab开启。聊天栏打出“/”后,再按一次Tab就会出现,且在你退出游戏前都会保持开启“指令提示”的状态。但如果你觉得这东西很烦,你还可以在聊天框只有一个“/”时再次按Tab,指令提示就关闭了!)

  现在,你可以随便选择一个指令,照着它的提示打。
  如果你正在使用基岩版打指令,并且照着上面那样做成功打完了你人生中第一条指令的开头单词,那么你的屏幕下面就会出现白色的带有<>和[]以及{}里面写满了各种你看不懂的英文字符串,这就是这条指令的格式,更确切的说是语法。只不过没有汉化是一大痛处。比如/clear就是:

/clear [player:target] [itemName:Item] [data:int] [maxCount:int]

  如果你正在使用JAVA1.13及以上版本打指令,并且照着上面那样做成功打完了你人生中第一条指令的开头单词,那么将不会出现什么新的东西——除非你点一下空格键,可能会出现接下来的格式提示,但也可能啥也没有。(当然,你可以尝试一下/help指令,这个指令相当于是一个Minecraft内置的指令手册,只不过对于新手来说可能有点难看懂)
  而如果你使用的是Java 1.13以下版本,那当你成功打完你人生中第一条指令的开头单词时,那也将不会出现什么新的东西——点一下空格键也还是如此。这时候,你就需要点一下空格然后再点一下Tab,才可能会出现格式提示。
  温馨提示:打指令最好还是使用Java版或基岩版的Windows10版本,原因有三。一是因为电脑打字快且方便,二是因为使用键鼠时,你可以使用上文提到的TAB键来一键输入,这种一键输入不光是输入指令,还可以快速输入坐标、玩家名等参数,如果有多个参数还可以一直点Tab来切换(Java1.13及以上版本还可以使用小键盘的↑↓←→+Tab来快速选择并输入)。三是因为使用键鼠时,唤醒聊天栏的方式并不只有按“T”键,你还可以直接按右Shift左边的“/?”键快速打开聊天栏并输入“/”。
  (偷偷告诉你,如果你在Java版打错指令格式,游戏还会亲切的提示你这条指令的正确语法,还是中文的那种!只不过有些第一个参数就是输入玩家名的那种就没法了,只会提示你“无法找到玩家xxx”。而基岩版就只是——语法错误:意外的“xxx”出现在“/xxx xxx”)

  “不!我不想创建一个新的世界!我要使用我已经玩了多年的存档!”
  “但你这存档没开作弊啊”
  “那该怎么办?”
  “你是Java版的,得进入游戏后在菜单里打开“对局域网开放”,然后将“允许作弊”改为开再确定即可,只不过这是暂时性的。要永久还得在“选择世界”界面选中该存档,然后点击重建,进入重建界面后点击“更多世界的选项...”,再打开作弊即可。如果你是基岩版就好了,直接在设置界面打开“激活作弊”按钮就可以了。”
  “啊?听起来好麻烦.....”
  “我告诉你,如果你不想创建副本还想永久开启这个存档的作弊,那更麻烦。具体过程如下:
  1. 在选择世界界面选中该世界,然后选择“编辑”。在界面中点击“打开文件夹”打开存档文件夹。
  2. 找到level.dat文件,将后缀名从.dat改为.nbt。
  3. 找到一个Minecraft 1.13版本及以上版本的服务端.jar文件
  4. 按照第一百四十章“真正深入了解NBT-6”中的教程将该level.nbt文件转为.snbt文件。
  5. 找到转化完成的.snbt文件,使用记事本打开,将allowCommands的参数从0b改为1b,并保存。
  6. 按照第一百四十章“真正深入了解NBT-6”中的教程将该level.snbt文件转为.nbt文件。
  7. 将level.nbt的后缀改回.dat,并覆盖原文件。
  照着上面这样做才行”
  “???”
(加了各种挂按.也能打开聊天界面awa
 

第十一章 gamemode-更改游戏模式​

2020年1月4日 18:17 1004字
  我相信玩过 Minecraft 的 Java 版的玩家,一定很熟悉这个指令,它就是 /gamemode
  /gamemode,单词是 gamemode,由 game 和 mode 两个单词组成。game 意思是“游戏”,mode 意思是“模式”,拼起来就是游戏模式(gamemode)
  /gamemode
  作用
:更改单个或多个玩家的游戏模式
  需要权限等级:Java-2,基岩-1
  需要作弊:是
  格式
高于 Java1.12.2 版本​

  /gamemode <游戏模式ID:字符串> [玩家:目标选择器]

低于 Java1.13 版本和基岩版​

  /gamemode <游戏模式ID:字符串|字符|值> [玩家:目标选择器]

  要注意的一点是,Java 版从 1.13 版本快照 17w45a 开始就不支持英文缩写以及数字 id 了。
  游戏模式大致分为四种,其中一种为 Java 版独有。这四种分别是生存(survival)、创造(creative)、冒险(adventure)以及旁观者(spectator)注:基岩版 1.19.50.20 更新后,正式加入了旁观者模式。
  • 生存模式,英文:survival,缩写:s,数字 id 为:0。
  • 创造模式,英文:creative,缩写:c,数字 id 为:1。
  • 冒险模式,英文:adventure,缩写:a,数字 id 为:2。
  • 旁观者模式,英文:spectator,数字 id 为:3。
  在新版本的基岩版中,还有一个特殊的模式:
  • 世界默认游戏模式,英文:default,缩写:d,数字id为:5
  旁观者模式——它不等于基岩版的游客类型玩家,这种模式的玩家可以穿过障碍,不受伤害,没有实体,可以像创造一样飞,并且可以附身于各种生物身上。但处于这种模式玩家是无法进行交互的。
  生存模式——不用讲了吧。
  创造模式——也不用讲了吧。
  冒险模式——在 Java 版中,需要使用特定的工具才能破坏方块(如剪刀剪树叶)。而在基岩版中,什么都无法破坏,这点也被用于基岩版的“服务器保护”中。
  如果写的时候不填目标选择器时,会发生啥?
  答案是你修改了自己的游戏模式。
  没错,就是这么简单。
  下面举个栗子:

/gamemode adventure @a

  什么意思呢?意思是将所有玩家的游戏模式都切换成冒险模式。

/gamemode 历史​

Java版(Beta)​

版本​
更新内容​
1.8​
加入了 /gamemode <玩家:目标选择器> <模式>

Java版​

版本​
更新内容​
1.3.1​
/gamemode 现在能在单人游戏中使用,同时语法更改为 /gamemode <模式> [玩家:目标选择器],模式可以是数字和 survival、creative、s 或 c。/gamemode 3 更改为 /gamemode 0(生存模式)
1.8​
加入了 spectator(旁观者模式)。
1.9​
现在 /gamemode 会在聊天栏中显示玩家更改为的游戏模式。
1.13​
现在 /gamemode 不再支持简写。

携带版(Alpha)​

版本​
更新内容​
0.16.0​
加入了 /gamemode 命令,但只能使用创造和生存模式。

携带版/基岩版​

版本​
更新内容​
1.1.0​
加入了冒险模式。
1.17.30​
现在能够切换到世界默认模式了
1.18.30​
为旁观者模式加入了数字ID:6注:1.19.30.20 版本后,该数字 ID 被删除。
1.18.31​
为旁观者模式加入了 spectator 全称
  (知道吗,Java 版还有两个游戏模式:极限模式和调试模式。这两类模式因为都是直接作用于世界的,所以无法使用 /gamemode 更改到这两种游戏模式)
  (好消息好消息,基岩版的旁观模式在测试啦!)
 
最后编辑:
补充一下:个人切换模式的话可以F3+F4切换,比较方便
 

第十二章 gamerule-自定游戏规则​

2020年1月5日 12:19 2391字
搬运注:根据
中文 Minecraft Wiki ,在即将到来(本章搬运至 MineBBS 时间为 2025年11月20日)的 Java 1.21.11 群骑纷争正式版中,所有游戏规则的命名均从驼峰式(tuoFengShi)改为下划线式(xia_hua_xian_shi),例如 keepInventory 变成了 keep_inventory,并且部分规则已被进一步重命名。

Mojang:我们进行了一项大更新!重命名了所有游戏规则!
玩家:??!
开发者:%$!*@^%@*%!%

  每个游戏都有游戏规则,Minecraft 也不例外。
  在基岩版,管理员可以在“设置”界面更改游戏规则,但那些游戏规则显然是不够的。
  所以,如果真的要更改游戏规则,那还得用一条专门的指令。
  这条指令就是:/gamerule
  /gamerule,和上一章讲过的 /gamemode 是差不多的,都是由两个英文单词组成的指令。game 是游戏的意思,rule 是规则的意思,合并就是游戏规则(gamerule)
  /gamerule
  作用
:更改游戏规则
  需要权限等级:Java-2,基岩-1
  格式
  /gamerule <游戏规则ID:字符串> [布尔值]
  /gamerule <游戏规则ID:字符串> [值]

  游戏规则有很多个,在章尾我会列出来所有游戏规则以及默认是开启还是关闭。
  布尔值知道吧?不知道的话我在这里科普一下。布尔值指的是“真”、“假”,常用于代码中。在 Minecraft 中有的地方使用的是英文,即是 true(真)false(假),也可以使用二进制的 1(真)0(假)。在 /gamerule 和大多数指令中,使用的都是英文。
  大部分游戏规则都是布尔值类型的,即 true 开启,false 关闭。但也有些游戏规则是一个数值。
  布尔值和数值参数省略的话,即只填游戏规则,就可以获取该游戏规则当前的状态,比如:

/gamerule commandBlockOutput

  返回就是:游戏规则 commandBlockOutput 目前为:true
  现在我列出一些常用的游戏规则:

(布尔值游戏规则)

  • commandBlocksEnabled(默认:true)——命令方块在游戏中是否启用(基岩版设置界面为“启用命令方块”)[仅基岩版]
  • commandBlockOutput(默认:true)——命令方块是否在聊天框中向管理员显示执行的结果
  • disableElytraMovementCheck(默认true)——是否禁止服务器检查玩家使用鞘翅的移动速度[仅Java]
  • doDaylightCycle(默认:true)——是否开启时间的流动(基岩版设置界面有,为“开启昼夜更替”)
  • doEntityDrops(默认:true)——不是生物的实体是否会掉落物品(基岩版设置界面有,为“实体掉落战利品”)
  • doFireTick(默认:true)——火是否会蔓延和自然熄灭(基岩版设置界面有,为“火焰蔓延”)
  • doInsomnia(默认:true)——幻翼是否自然生成
  • doImmediateRespawn(默认:false)——玩家死亡时是否直接跳过死亡界面(基岩版为immediateRespawn)(基岩版设置界面为“立即重生”)
  • doMobLoot(默认:true)——生物死亡是否掉落(基岩版设置界面有,为“生物战利品”)
  • doMobSpawning(默认:true)——生物是否自然生成(不影响刷怪笼)(基岩版设置界面为“生物生成”)
  • doTileDrops(默认:true)——方块破坏是否掉落物品(基岩版设置界面为“区块掉落”)
  • doWeatherCycle(默认:true)——天气是否变化(基岩版设置界面为“天气更替”)
  • keepInventory(默认:false)——玩家死亡时是否保留数据(死亡不掉落)(基岩版设置界面有,为“保留物品栏”)
  • logAdminCommands(默认:true)——是否在服务器日志中记录管理员使用过的命令,适合服务器被捣乱时查看[仅Java]
  • mobGriefing——生物是否可以破坏、放置、修改方块、捡起掉落物以及(唤魔者是否可以)把蓝色的羊变为红色。该规则不影响非生物实体,不能阻止TNT和末影水晶的爆炸。(基岩版设置界面为“生物破坏”)
  • naturalRegeneration(默认:true)——玩家在饥饿值足够的情况下是否可以自然回血(基岩版设置界面为“自然生命恢复”)
  • pvp(默认:true)——玩家之间是否能造成伤害[仅基岩版](基岩版设置界面有,为“玩家间伤害”)
  • respawnblocksexplode(默认:true)——玩家在非主世界维度使用床和在非下界维度使用重生锚时是否爆炸[仅基岩版][BE 1.17.20 更新,现在还在测试]
  • sendCommandFeedback(默认true)——玩家执行命令的返回消息是否显示在聊天栏
  • showcoordinates(默认:true)——是否在聊天框区域持续显示玩家所在的坐标[仅基岩版](基岩版设置界面有,为“显示坐标”)
  • tntexplodes(默认:true)——TNT是否爆炸。注意,这并不会影响到 TNT 矿车和末影水晶。[仅基岩版](基岩版设置界面有,为“TNT爆炸”)
(数字游戏规则)

  • randomTickSpeed(默认值:1 [基岩] 或 3 [JAVA])——每二十分之一秒(一游戏刻)每个区块中发生的方块事件的频率,简单来说就是值越大,方块变化速率越快。(基岩版设置界面有,为“随机刻速度”)
      下面我说一下,随机刻的最高值是 4096,也就是 2 的 12 次方。随机刻不要改太高,不然——你会被卡得够呛的。但如果你的设备撑得住,那么你将会看到万物疯狂生长、生机勃勃的景象。
  • spawnRadius(默认值:10 [Java]或 5 [基岩])——新进入服务器玩家和没有自己重生点玩家重生时距离世界出生点的最大距离,调成0可以让玩家准确生成在世界出生点
  还有一点,我说一下一个小知识,Minecraft Java 版对于大小写的要求十分严格,而基岩版较为宽松。

/gamerule历史​


Java版
版本​
更新内容​
1.4.2[12w32a]​
加入了 /gamerule,同时加入了 doFireTick(火焰蔓延)、mobGriefing(生物破坏)、keepInventory(保留物品栏)、doMobSpawning(生物生成)、doMobLoot(生物掉落)、 doTileDrops(方块掉落)、commandBlockOutput(命令方块输出)规则。
1.6.1​
加入了 naturalRegeneration(生命恢复)、doDaylightCycle(时间流逝)规则。
1.8​
加入了 logAdminCommands(记录指令日志文件)、showDeathMessages(显示死亡信息)、randomTickSpeed(随机刻)、sendCommandFeedback(保存命令方块输出)规则。加入了创建虚拟规则的能力。
1.8.1​
加入了 doEntityDrops(实体掉落)规则,同时,doTileDrops 不再影响实体。
1.9​
加入了 spectatorsGenerateChunks(旁观者区块加载)、spawnRadius(重生半径)、disableElytraMovementCheck(检查鞘翅飞行)、doWeatherCycle(天气变化)和 maxEntityCramming(实体推动伤害)规则。
1.12​
加入了 doLimitedCrafting(配方解锁)、maxCommandChainLength(命令链链上限)、announceAdvancements(显示进度)、gameLoopFunction(高频执行函数)规则。
1.13​
不再接受未知值(自定义游戏规则)。现在会对值进行类型检查。移除了 gameLoopFunction 规则。
1.14.3​
加入了 disableRaids(玩家攻击)、reducedDebugInfo(简化调试界面)规则。
1.15​
加入了 doInsomnia(幻翼生成)、doImmediateRespawn(立即重生)、drowningDamage(窒息伤害)、fallDamage(跌落伤害)和 fireDamage(火焰伤害)规则。
1.15.2​
加入了 doPatrolSpawning(控制灾厄巡逻队生成)和 doTraderSpawning 规则(控制流浪商人生成)。
1.16​
现在创造世界时可以编辑游戏规则。加入了 forgiveDeadPlayers(激怒的中立生物的目标玩家死亡时,该生物是否恢复中立状态)和 universalAnger(激怒中立生物是否攻击任何玩家)规则。
1.17​
加入了 freezeDamage(是否承受冰冻伤害)、playersSleepingPercentage(跳过夜晚所需玩家睡觉百分比)规则。

携带版​

版本​
更新内容​
1.0.5​
加入了 /gamerule。同时加入了 drowningDamagefallDamagefireDamagepvp(玩家间攻击)规则。
1.1.0​
加入了 doDaylightCycledoEntityDropsdoFireTickdoMobSpawningdoMobLootdoTileDropsdoWeatherCyclekeepInventorymobGriefing 规则。

基岩版​

版本​
更新内容​
1.6.0​
加入了 doInsomnia 规则。
1.7.0​
加入了 commandBlocksEnabled 规则。
1.8.0​
加入了 randomTickSpeed 规则。
1.9.0​
加入了 showDeathMessages immediateRespawn 规则。
1.12.0​
加入了 spawnRadiussendCommandBlockFeedbackcommandBlockOutputmaxCommandChainLengthnaturalRegenerationsendCommandFeedbackshowCoordinates(显示坐标)和 tntExplodes(TNT爆炸)。
1.14.0​
加入了 showtags(展示物品可破坏、放置方块列表)规则。不再接受自定游戏规则。
1.16.210​
加入了 freezeDamage 规则。
1.17.20​
加入了 respawnblocksexplode(床、重生锚是否爆炸)规则。
 

第十三章 clear-清除物品的指令​

2020年1月5日 13:09 1917字
(该章节最后大修于2025年11月22日)
  我们第一个学习的指令是 /give,作用是给予玩家一样物品。有正必有负,Minecraft 还有一条指令,和 /give完全相反,这条指令就是 /clear
  clear 在英文中有三种意思,分别是:
  1. 清楚地;明白的。
  2. 清除;不再受阻。
  3. 离开;不靠近。
  显然,在上面的意思中,只有“清除”是“获取”的反义词。所以,/clear 的作用是:清除玩家的物品。
  /clear
  作用:清除玩家的单个或所有物品。
  需要权限等级:Java-2,基岩-1
  格式
Java1.12.2 之后​
  /clear [目标选择器:玩家] [物品ID:字符串] [清除的最大数量:Int整数]

基岩版和 Java1.13 之前​
  /clear [目标选择器:玩家] [物品ID:字符串] [要清除物品的数据值:Int整数] [清除的最大数量:Int整数]
  目标选择器——这个必须填玩家。不填默认为命令执行者,即清除命令执行者(自己)的所有物品。
  物品名——可以填需要清除的指定物品其 ID,不填默认清除指定玩家的所有物品。
  要清除物品的数据值——这个如果不填,即同时不填数量(接下来这个参数)和这个参数,或只填写-1,将会只清除所有指定玩家具有指定物品ID的物品,而不会检查其数据值。
  清除的最大数量——默认是全部清除(相当于填 -1),填的话可以指定一次清除最大清除多少物品。注意是最大!也就是说,就算背包里的指定物品没有达到最大数量,还是一样会被清除。
  在之前的 /give,我们遇到的数据值参数填 -1 和 0 并没有区别。但在这里,若数据值填写 -1 和 0 就有区别了!
  例如(以下故事和人物纯属虚构,如有雷同,可能不是巧合),玩基岩版或 Java1.12.2 的你,此时假设你现在在背包中拥有一些橡木和云杉木。你花了整整 1 个小时的时间采集了这些木头,以扩张你的农庄。但是,此时一位邪恶的腐竹盯上了你,由于你砍伐了大量的树木而没有践行可持续发展的理念,这位腐竹决定给你一点教训。
  跨过山和大海,穿过人山人海,你终于到达了你的农庄。而此时,这位腐竹已经通过插件看透了你的背包,并准备了以下指令:

/clear @a[name="lbwnb"] log 0

  激动万分的时刻到了!你颤抖地打开了工作台,开启农庄扩建的第一步。但就在你正要将橡木放进工作台的时候,突然之间,全部橡木消失了!

  <[生存 1 区]lbwnb>?
  <[生存 1 区]lbwnb>为啥我一大堆橡木突然不见了?(
  <[生存 2 区]YYT>???
  <[生存 1 区]lbwnb>但云杉木还在啊?


  也许是这个土豆服务器刚好吃掉了你的橡木。运气问题?这么想着,你又花了亿点时间收集了足够多的橡木。以防万一,过程中每过几分钟你都会检查一遍背包里,然而一切正常。但是在暗处,有一个隐形的人一直在背后跟踪着你,ta 已经准备好了第二条指令:

/clear @a[name="lbwnb"] log -1

  <[生存 1 区]lbwnb>xdm我要打开工作台了,祝天下再无土豆服务器!
  <[生存 2 区]YYT>awa
  <[生存 1 区]lbwnb>???
  <[生存 1 区]lbwnb>好了,这下所有原木都不见了(


  你刚想抨击一下这个土豆服务器,突然之间,一道金光闪瞎了你的 24K 钛合金狗眼!

  <工作台之神>年轻的 lbwnb 哟!刚才服务器吞掉的是这些金块还是这些钻石块?
  
  你一脸懵逼,回答说:“不是,是一堆木头(”
  
  <工作台之神>诚实的好孩子,这是你的木头。为了奖励你的诚实,既然你这么需要木头,那么老夫再送你一些树苗~

  你还来不及感到失望,然后就见到了混杂在一堆树苗中的点券......
  注意到了吗?第一个指令中,腐竹使用了 0 作为数据值,清除了你的全部橡木。而第二条指令使用了 -1 作为数据值,却清除了你的全部原木!这是为什么?
  如果你在 Minecraft Wiki 上做一番调查,就会发现橡木和云杉木其实共用了同一个物品(方块) ID,也就是 minecraft:log。为了区分这两种木头,橡木使用了 0 作为数据值,而云杉木和其他木头使用了更大的值作为数据值。因此,当指定数据值为 0 时,其实就相当于指定了需要清除的木头种类,即橡木原木。但数据值一定是一个非负整数,而 -1 是一个负数,这意味着 -1 不可能代表一个特定的木头种类。那么 -1 代表什么呢?
  匹配当前物品 ID 下的所有物品种类!

  下面举个栗子:

/clear @a diamond 0 1

  这个是以基岩版的格式为基础的,Java 版 1.12.2 之后版本需去掉那个 0。意思是清除所有玩家物品栏里的数据值是 0 的钻石,并且只清除 1 颗。
  需要注意,clear这条指令及其特殊,它的数据值参数是在数量参数前面的,而不是填完数量参数再填数据值参数!
  清除的最大数量可以填0。但是填0又有什么用呢,这又不会清除任何物品?
  实际上,这个操作及其有用,因为我们可以通过填0来探测一个玩家背包里是否有指定物品!比如:

/clear @p minecraft:diamond_sword -1 0 {display:{Name:"天空之脊"}}

  就可以在 Java1.13 以下版本中检测该玩家是否持有一把叫做“天空之脊”的钻石剑。若要在Java1.13及以上版本使用,则需要改为:

/clear @p minecraft:diamond_sword{display:{Name:"\"天空之脊\""}} 0

  (没错,后面那串就是 NBT,这串自定义名字的具体操作会在第一百零四章:物品的显示属性讲到)
  如果该玩家并没有持有天空之脊,那么将会返回:

  无法清除 XXX 的物品栏,没有可清除的物品

  如果该玩家持有一把,那么将会返回:

  XXX 有1个符合条件的物品

  可惜的是,到底有多少物品只会显示,却不会通过红石比较器转换为红石信号。
 
最后编辑:

第十四章 fill-填充指令​

2020年1月5日 16:38 1449字
  相信用过电脑画图的都知道,画图软件都有一个功能,它就是:颜色填充。
  Minecraft 也有填充功能,但是它要用到一个指令,就是 /fill
  /fill,在英文里意为“填满;充满;装满;注满......”反正都是满。所以,/fill 的用处是:填满指定范围的空间。
  /fill
  用处
:用特定的方块填充或替换一个区域内的方块。
  需要权限等级:Java-2,基岩-1
  是否可使用命令方块执行:是
  格式
Java1.12.2之后​

/fill <起点方块坐标> <终点方块坐标> <填充方块:字符串> [<填充模式:destroy|hollow|keep|outline|replace>]

\\使用replace填充模式时\\

/fill ...... replace [被填充方块:字符串]

Java1.13之前和基岩版​

/fill <起点方块坐标> <终点方块坐标> <填充方块:字符串> [<方块数据值:Int整数>|<方块状态>] [<填充模式:destroy|hollow|keep|outline|replace>]

\\使用replace填充模式时\\

/fill ...... replace [被填充方块:字符串] [被填充方块数据值:Int整数]

  由于 /fill 这个指令比较复杂,导致我们必须要用比较长的篇幅介绍完。
  首先,/fill 的填充范围是一个长方体,起点方块坐标和终点方块坐标是两个点,从这两个点衍伸出来的 X、Y、Z 轴会形成一个长方体,这个长方体就是填充的范围。填充的范围包括的方块量不能超过 32767 块,不然无法执行。
  需要指定填充的方块,填充模式默认是 replace。比如一个最基本的:

/fill ~1 ~-1 ~1 ~-1 ~-1 ~-1 diamond_block

  这将会在命令执行者(一般是你自己)脚下生成一个3×3×3的钻石块平台。
  填充模式一共有五种——destroy、hollow、keep、outline、replace。

一、destroy

  destroy 中文意思是“破坏”。所以它的作用跟破坏比较相似,是什么破坏呢?
  你玩过生存模式吧,在这个模式,你每破坏一个方块,一般都会获得一些东西。比如破坏木头获得木头;破坏树叶有几率获得树苗;破坏石头会获得圆石......
  没错,destroy 的作用是用指定方块替换填充区域内的所有方块,而被替换的所有方块都被视为被无魔咒的钻石锹或镐采掘而掉落成对应的实体形式,但是只能被剪刀采集的方块,如藤蔓就不会掉落,流体方块更不可能掉落,你见过拿着水方块的玩家吗?如果你玩过1.8之前的版本,可以无视上一句话。

二、hollow

  hollow 的中文意思是“中空的;空心的;凹陷的”,其作用是仅替换填充区域外层的方块,内部方块被替换为空气。所以用这个可以快速的建造出一个中空的地方,非常适合用于建筑党和创作地图党。

三、keep

  keep,中文意思是“保持”。所以它的作用也是类似于“保持”的。但它保持的是什么?
  填充区域内的所有非空气方块。
  keep 的作用是仅用指定方块替换填充区域内的空气方块,如果全都是空气方块当然是全都替换啦。这个非常适合于坑坑洼洼的地方填充东西而不破坏地形。

四、outline

  outline 的中文意思是“概述;略述;显示…的轮廓;勾勒…的外形”。这么多意思,到底是啥呢?很明显,肯定不是“概述”,所以前面两个,去掉。
  所以,这里的 outline 的意思是“显示…的轮廓;勾勒…的外形”。有轮廓、勾勒两个词,你想到什么?
  这说明它的效果跟 hollow 是很像的,但是有一点不一样,就是——它不是中空的。
  outline 的作用是仅用指定方块替换填充区域外层的方块,内部方块不受影响。这个非常适用于将地图的一部分包起来而不破坏地形。

五、replace

  replace 是默认的填充方式,中文意思是“代替”。
  replace 有更多的参数,所以上面特别列出了一个“使用replace填充模式时”的格式。
  replace 多余出来的参数可以指定要替换的方块,保证其他方块不受影响。这个功能很好用,特别是配上 execute 指令,但那也是后话了。
  下面来举个例子,当然是 replace 的栗子:

/fill 0 45 0 55 70 55 diamond_ore 0 replace stone 0

  什么意思呢?这条指令的意思是:
  将在 (0,45,0) 到 (55,70,55) 的所有石头(stone)替换成数据值为 0 的钻石矿(diamond_ore)。

/fill历史​

Java​

版本​
更新内容​
1.8​
加入了/fill。
1.11​
加入了对方块状态的支持。

携带版Alpha​

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

(唉作者,什么是方块状态?)
(方块状态简单来说,就是这个方块的状态。)
(?)
(比如方块的朝向之类的)
 

第十五章 发送消息​

2020年1月5日 19:54 1032字
  在 Minecraft,如何与玩家交流,那肯定是在聊天框打字了。
  但是如果得像服务器里“自动化”,那么命令方块肯定就派上用场了。
  之前说过命令方块有三种文本输出形式。第一种是聊天栏显示运行结果;第二种是命令方块界面显示运行结果;第三种是给命令方块取名。
  但前两种都是只能管理员查看,第三种又太短,且不美观。这时候我们就需要可以发送消息的指令。在 Minecraft 中,可以发送消息的指令有很多种,但功能都差不多,接下来就来一一讲一下,这里先全部列出来:
  • /say <消息>
  • /tell
  • /tellraw
  • /w
  • /me
  • /msg
  • /teammsg
  • /tm(?)
  首先第一个是 /say。say 可以发送广播消息。发送消息的格式长这样:

[XXX]XXXXXXXX

  我们再来拿用聊天栏发出的信息的话来对比一下:

<XXX>XXXXXXX

  可以发现,除了名字的显示形式是不一样之外,其他都一样。
  /say
  作用
:广播
  需要权限等级:Java-2,基岩-1
  格式
/say <消息内容>
  显示信息格式
[发出人的昵称]“内容”

  /say 这个指令很简单,但又有些那么不简单。
  /say 的消息内容不止可以写消息,还可以包括目标选择器和玩家名!
  比如:
/say @p
  就可以广播最靠近命令执行地点的玩家。
  这功能的适用性非常广,你可以在你的 RPG 地图里使用 /say 目标选择器来让 NPC 说出玩家名,也可以在服务器中检测持有违禁品的玩家并将其用户名广播。
  普通玩家无法使用 /say,但这些玩家干嘛要用 /say,好好的在聊天栏内发送消息不好吗?
  但 Mojang 就这么神奇,也向普通玩家添加了一条广播指令,它就是 /me。
  /me
  作用
:广播(实际上 Mojang 官方本意是显示一条关于自己正在做什么的信息)
  需要权限等级:0
  格式
/me [消息内容(动作)]
  显示信息格式
* 玩家名 消息内容

  和 say 一样,me 也可以在消息中参杂目标选择器和玩家名,只不过这功能暂且只有基岩版有,Java 版还未添加。me 如果不填消息只会限速玩家昵称。
  广播的指令暂且只有这么多。但一个游戏只有世界聊天室那肯定是不行的,所以 Mojang 还添加了一堆用于私信的指令:
  • /tell
  • /w
  • /msg
  作用:告诉一个或多个玩家消息。
  需要权限等级:0(目标选择器只能使用 @s 和玩家名,其他类型选择器需要 2 级 [Java] 或 1 级[基岩]权限)
  格式
  • /tell <收信者:目标选择器> <内容>
  • /w <收信者:目标选择器> <内容>
  • /msg <收信者:目标选择器> <内容>
  这些指令都很简单,也没有什么好讲的,只是需要注意权限等级不够目标选择器不能使用除 @s 以外选择器。
  /msg 有个变种,这个变种是在 Java1.14 版本加入的,仅 Java 版有:/teammsg
  /teammsg 即在队伍频道发送消息,可以简写为/tm(?)、
  /teammsg、/tm
  作用
:队伍频道发送消息
  需要权限等级:0
  格式
  • /teammsg <消息>
  • /tm <消息>
  显示信息格式

->[队伍名]<玩家名>消息内容

  关于队伍是个什么东西,讲记分板时会讲到。
 

在线会员

  • longsheng
  • 鸽子黎明
  • qwe131
  • Allen_Linong
  • 方漓猫
  • 气态一氧化二氢
  • 相遇
  • 小叶
  • hhhr
  • 麟麟七
  • Little_100
  • iceFen_
  • zhangqianyi
  • 天边的星野
  • Cyan0205
  • Klinsky6
  • 光辉JQ
  • 苍空和龙
  • 龙泽宇
  • YKChengZi
...和 8 更多。
后退
顶部 底部