Cat_Anchor 发表于 2024-8-12 19:27:49

基岩技术教程:1.命令模式

本帖最后由 Cat_Anchor 于 2024-8-17 07:33 编辑

目录 | Contents
第期 第零期
[*]第一期 命令模式
[*]第二期 目标选择器
[*]第三期 原始 JSON 文本
[*]第四期 自定义超平坦层
[*]第五期 嵌套方块







前言


本系列名为“基岩技术教程”,顾名思义,这个系列将讲解关于基岩版的、与附加包无关或关系不大的技术性内容。
本系列原名为“基础命令教程”,是“附加包教程”的子系列,已经写了一点,目的就是基础地讲解命令——不会讲组合命令,例如“雪球菜单”“地皮系统”等。但这个系列有炒冷饭的嫌疑,因此已被缩减为两期,即这期和下期。
命令是Minecraft的重要组成部分之一,虽然基岩版命令处处受限,但还是可以用它开发很多玩法。命令也是基岩版附加包的基础之一,如果没有基本的命令知识,制作附加包时可能会出现一些问题。
命令会在各种地方出现,也可以通过各种方式运行命令,如:聊天栏、命令方块、函数、queue_command 实体事件方法、脚本、开发控制台、WebSocket 服务器、控制台等等。
也有人把命令称为“指令”,但我在这期教程中统一使用“命令”。



https://klpbbs.com/static/image/hrline/line5.png


基本结构


一条命令就是一个字符串。每个命令都有一个名字,有些命令还有别名,所有命令都以这个名字开始。名字后面是一个或多个参数,每个参数之间用空格分割,这里的空格可以有多个(甚至在某些情况下可以没有空格)。有些被称为“消息”的含空格的参数无需引号,例如/say命令;然而更多情况下,输入带空格或特殊符号的参数需要用半角引号""。命令前方的斜杠在大多数情况下都是不必要的,它仅在聊天栏使用,代表“这是一条命令”。也可以在命令方块中使用斜杠,然而这不是必要的,我不推荐这样做。
以下是一个例子:
loot insert ~ ~ ~ loot "chests/bastion_treasure" minecraft:air
这条命令中,loot是命令名称,其他的都是参数。因为其中一个战利品表路径的参数用到了斜杠,它需要用引号:"chests/bastion_treasure"。



https://klpbbs.com/static/image/hrline/line2.png


语法模式


原版有一个/help命令(又称/?),作用是输出命令的详细语法。这个语法遵循一定的模式,而模式代表着参数的类型,如下。
第一种是必需参数。这种参数用<>三角括号包围起来,意思是必须输入这个参数,否则命令会运行失败。括号里是a:b的形式,a是这个参数的名称,b是需要输入的类型。
第二种是可选参数。这种参数用[]方括号包围起来,意思是可以输入这个参数,也可以不输入。如果不输入,命令就会使用默认参数执行。括号里是a:b的形式,与必需参数的含义相同。
第三种是文字参数。这种参数就是一个字符串,输入命令时只需要把它本身输入就好了,也就是照抄下来。如果没有括号,那么这里的文字参数是必需的,如果不输入,命令会执行失败。有时必须选择多个文字参数,这时它们被<>三角括号包围,每个选项之间用 | 分隔符分隔。有时可以选择多个文字参数,也可以不选择,那么它们被[]方括号包围,每个选项之间也用|分隔符分隔。

有些命令的参数很简单,而有些参数非常复杂,比如/give命令最后的那个参数,需要输入JSON。有些命令可以有很多参数,比如/execute命令,可以接非常多个子命令。



https://klpbbs.com/static/image/hrline/line1.png


后记


这一期是对命令模式的基础介绍。其实命令的功能十分有限,想法稍微天马行空一下就要用好多好多条命令。比如说,要实现一个“骑末影龙”的效果,命令方块就要好多条:给猪上鞍,把末影龙和猪传送到一起,给猪隐形,调整位置,用hasitem做上下移动效果……而在附加包中,一个组件就搞定了。
所以说,命令其实没什么。命令看似很神奇,实际上主要是创意的作用。只不过现在的一些“创意”在原版只能用低效的方法实现,比如tag和盔甲架;而利用附加包和脚本,就能很方便地实现了。
其实我写所有教程系列的根本目的就是给不知道怎么回事的开发者一个指引,告诉他们确实有这样的人尝试过写教程,即使这些教程有很多疏漏与不足,即使后来没有时间继续维护。当然,如果你感兴趣就看看吧,我感觉这些文字拿来在闲暇时读不错,拿来当睡前故事听也不错。
总之,下期就开始讲目标选择器和它们的额外参数,这个内容又多又杂,还有一些不为人知的小特性。比如,你知道全版本的基础目标选择器(如 @a、@p)共有 9 种吗?





第零期 第一期 第二期

星空晶体 发表于 2024-8-12 19:34:25

支持一下,望继续更新[贴吧_爱心]
页: [1]
查看完整版本: 基岩技术教程:1.命令模式