常用命令
对于许多命令系统而言,有些命令至关重要。 此列表将列出更为常用的命令,这些命令会以某种方式使用。
在本教程中,您将学习以下内容:
- 首先是一些更常用的命令。
要求
在开始本教程之前,建议完成以下内容。
/help
首先是 /help
命令。
/help <page: int>
在聊天中单独运行 /help
将列出所有可运行的命令。 但由于数量太多,这些命令将分页显示,每次只显示一页。 提供页码将更改要显示的命令页面。
如需某个命令的用法和所有语法,可以使用 /help
后跟该命令的名称。 这对大致了解某个命令很有帮助。
/help [command: CommandName]
/gamerule
/gamerule
命令改变特定的游戏玩法,并提供了有助于开发的选项。 游戏规则数量繁多,可以使用聊天的自动完成功能列出。
/gamerule <rule: BoolGameRule> [value: Boolean]
/gamerule <rule: IntGameRule> [value: int]
某些游戏规则只接受 true/false 作为规则的值(“BoolGameRule”),而另一些只接受整数(“IntGameRule”)。 对开发至关重要的主要游戏规则(都是布尔值)如下面列出的“commandblockoutput”、“sendcommandfeedback”和“commandblocksenabled”、“dodaylightcycle”和“doweathercycle”。
“commandblockoutput”
您可能已经注意到,前面的所有命令示例都在聊天中发送一个输出。 这可能会造成麻烦,尤其是对于每刻运行的命令。 “commandblockoutput”游戏规则,在设置为 false 时,将禁用该聊天输出。
/gamerule commandblockoutput false
“sendcommandfeedback”
禁用命令方块输出不会禁用所有反馈。 有些命令(如 /xp
)即使在命令方块输出被禁用时也会继续提供反馈。 “sendcommandfeedback”游戏规则也会禁用这些消息,从而实现完全静音的命令系统。
/gamerule sendcommandfeedback false
“commandblocksenabled”
要快速启用或禁用世界中的命令方块,可以打开和关闭“commandblocksenabled”。 如果重复命令方块重复向您传送,这会特别有用。
/gamerule commandblocksenabled false
“dodaylightcycle”
无论是出于开发还是出于游戏玩法方面的考虑,您都可以选择阻止日照时长出现变动。 这意味着无论您将游戏设置到什么时间(例如使用 /time
命令),它都会保持在该时间。
/gamerule dodaylightcycle false
“doweathercycle”
与“dodaylightcycle”一样,您可能还想控制天气更替。 如果您打算有一个快乐的设置,雷暴设置可能不会有最好的效果。 禁用“doweathercycle”时,天气将保持不变,即使使用 /weather
命令 进行了设置。
/gamerule doweathercycle false
/gamemode
在开发内容时,您通常会在创造模式下进行游戏。 但是,测试您的内容可能需要您进入生存或冒险模式。 /gamemode
命令允许您更改当前的游戏模式。
/gamemode <gameMode: GameMode> [player: target]
/gamemode <gameMode: int> [player: target]
您有多种游戏模式选项:全名、单个字符或数字表示。 可接受的值为“survival”(“s”或 0)、“creative”(“c”或 1)和“adventure”(“a”或 2)。 还有“default”(“d”),它将您的游戏模式设置为世界上的默认游戏模式。 以下内容在聊天中运行时会将您自己的游戏模式设置为创造模式。
/gamemode creative
您还可以使用目标选择器更改特定玩家的游戏模式,这在控制游戏玩法方面(例如无法在冒险模式中挖掘任何东西)时会很有帮助。 以下命令会将所有带“sometag”标签的玩家的游戏模式更改为冒险模式。
/gamemode adventure @a[tag=sometag]
/time set
改变游戏环境对于提供合适的氛围至关重要。 更改一天中的时间是其中一种实现方法。
/time set <amount: int>
/time set <time: TimeSpec>
您可以提供代表一天中精确时间的整数,也可以将“TimeSpec”设置为以下值之一以更轻松地选择一天中的常见时间:day”、“midnight”、“night”、“noon”、“sunrise”和“sunset”。 例如,快速设置玩家正上方的太阳将使用以下方法:
/time set noon
/weather
类似于 /time set
,/weather
命令可以用来改变环境。 如果您希望出现特定类型的天气,可使用此命令。
/weather <clear|rain|thunder> [duration: int]
可选的时长是所选天气将持续的游戏节拍数。 20 个游戏节拍是一秒,因此,可将天气需持续的秒数乘以 20。 下面将天气设置为打雷 30 秒,即 600 个节拍。
/weather thunder 600
如果您打算使用时长,请确保“doweathercycle”游戏规则为 false。 如果为 true,则不会出现天气更替,从而导致时长无用。
/setworldspawn
如果您有一个特定的位置,您想生成新的玩家或让死去的玩家重生,/setworldspawn
命令提供了这种能力。
/setworldspawn [spawnPoint: x y z]
请注意,在使用床设置生成时,死亡的玩家仍然会在他们的床上重生。
/tp 或 /teleport
有时,您可能想要提供一种简单的交通工具,或者需要一种控制玩家(甚至非玩家实体)所在位置的方式。 /tp
命令会将目标玩家传送到特定位置,甚至传送到其他实体。 /tp
的语法乍一看可能令人生畏,但请注意,许多分支涉及的是相同的选项。
/tp <victim: target> <destination: target> [checkForBlocks: Boolean]
/tp <victim: target> <destination: x y z> [checkForBlocks: Boolean]
/tp <victim: target> <destination: x y z> [yRot: value] [xRot: value] [checkForBlocks: Boolean]
/tp <victim: target> <destination: x y z> facing <lookAtEntity: target> [checkForBlocks: Boolean]
/tp <victim: target> <destination: x y z> facing <lookAtPosition: x y z> [checkForBlocks: Boolean]
最简单的一种,您可以将玩家传送到特定坐标位置。
/tp @p 100 50 100
您还可以将它们传送到另一个玩家或实体。 目标位置的目标必须解析为单个实体,因此您必须确保使用只能定位一个实体的目标选择器或确保预期目标没有重复项(例如使用 /tag
命令来确定目标)。
/tp Steve Alex
/tp @p @e[type=minecraft:armor_stand,c=1]
/tp @a @e[type=minecraft:creeper,tag=destination_1]
通用选项“checkForBlocks”默认为 false,但当它设置为 true 时,如果玩家最终进入的位置被方块占据,它将阻止传送玩家。
此命令将史蒂夫传送到坐标 [50, 63, 50] 并确保路上没有方块。
/tp Steve 50 63 50 true
/give、/clear、/replaceitem
这三个命令操纵玩家的物品栏,不过 /replaceitem
也可以修改非玩家实体物品栏和带有物品栏的方块。 /give
命令可以提供物品,/clear
命令可以移除物品,/replaceitem
命令可以将物品放置在物品栏中的特定位置。
/setblock、/fill、/clone
这些命令改变世界中的物理方块。 /setblock
命令可以设置单个方块,而 /fill
命令可以设置多个相同的方块。 另一方面,/clone
命令将从一个区域复制方块并将其粘贴到另一个区域。
/effect
通过 /effect
命令可实现添加和删除状态效果。 目标上的所有状态效果也可以被清除。
/summon
/summon
命令用于在世界中生成一个新实体,从牛、羊到您自己的自定义实体。
/tellraw、/titleraw
/say
、/tell
和 /title
命令在呈现信息时并不理想,因为它们不可翻译。 /tellraw
和 /titleraw
命令可通过 JSON 输入对消息进行翻译。 /tellraw
命令的意图也更清晰,因为该消息不带“whisper”声明。
/tellraw @a {"rawtext":[{"translate":"commands.testfor.success","with":["PlayerName"]}]}
/tellraw @a {"rawtext":[{"text":"Hello World"}]}
/scoreboard
/scoreboard
命令是一种强大的方法,可以在每个实体的基础上跟踪数值,以及使用命令执行数学运算。 第一步是创建一个目标并(可选)将其显示在侧边栏上。
/scoreboard objectives add objectiveA dummy
/scoreboard objectives setdisplay sidebar objectiveA
如果玩家完成某项任务,最简单的做法就是奖励他们一分。
/scoreboard players add @p objectiveA 1
之后,可以使用目标选择器来选择达到一定分数的玩家。
@a[scores={objectiveA=10..}]
/tag
与 /scoreboard
类似,/tag
命令允许您对单个实体跟踪字符串值。 标签用于不需要数值的情况,例如“true/false”。 例如,您可以将实体标记为“boss”,然后根据该标签定位相同的实体。
/tag @e[type=sheep] add boss
/tag @e[type=minecart] add boss
/say Bosses: @e[tag=boss]
/testfor、/testforblock、/testforblocks
这些命令测试实体、方块和方块结构的副本是否存在。 虽然这些命令可以与“有条件”命令方块一起使用,但它们在函数中用处不大,因为函数中没有等效的条件设置。
通常可以忽略 /testfor
和 /testforblock
命令,选择 /execute
,它支持基于实体的存在情况运行命令以及根据方块的存在情况运行命令。
/execute
/execute
命令的主要功能是修改嵌套命令的执行者和执行原点。 但是,它的语法允许执行一些函数缺失的“有条件”命令。
/execute <origin: target> <position: x y z> <command: command>
/execute <origin: target> <position: x y z> detect <detectPos: x y z> <block: Block> <data: int> <command: command>
例如,要检测玩家下方是否有特定方块并相应地运行命令,可以使用“detect”参数代替嵌套的 /testforblock
命令。
/execute @a ~ ~ ~ detect ~ ~-1 ~ grass 0 say Player is standing on top of grass.
下一步内容?
在了解了命令和目标选择器、命令方块和各种有用的命令之后,我们现在可以将它们放在一起并以完成纪念碑系统的形式创建一个小项目。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈