Minecraft-目标选择器/bossbar/scoreboard/team/trigger-基础用法-1
该教程仅限Java版
使用版本:Minecraft1.20.1 参考资料:MCwiki: https://minecraft.fandom.com/zh/wiki/

目标选择器
1.目标选择器变量
@a:所有玩家
@p:最近的玩家,如果在服务器控制台中输入,默认基准点为世界出生点。若有多个最近的玩家,与基准点距离完全相同,会选择其中最晚进入服务器的玩家。type
参数不适用于@p
。
@r:随机玩家,type
参数不适用于@r
。(可以用@e[sort=random,limit=1,type=...]来代替)
@e:所有实体
@s:该命令的执行者,若命令执行者为命令方块或服务器控制台执行命令,则此选择器不会选中任何东西。
注:Java的玩家选择包括死亡玩家
2.目标选择器参数
在使用目标选择器之后,可以用参数限定所要选择的群组。当使用
@a
或@e
时,待选目标从全体筛选成特定的少数。当使用@p
或@r
时,参数将从完整的待选列表缩小到被筛选后的待选列表。当使用@s
时,命令执行者只有在所有参数都满足时才会被选择,否则命令将执行失败。在目标选择器变量之后附加键值对构成的逗号分隔,并包含在方括号中
来自 Minecraft Wiki
下面是一些参数
参数 选择标准 参数 选择标准
x
, y
, z= 坐标 distance= 距离
dx
,dy
,dz=
区域 scores={...=} 计分板分数
tag= 标签标签 team= 队伍名称
name= 实体名称 type= 实体类型
predicate 谓词 x/y_rotation= 垂直/水平旋转角度
nbt={} 实体的NBT标签 level= 经验等级
gamemode= 游戏模式 advancements= 进度
limit= 数量 sort= 排序

sort= 的用法
sort=nearest:将目标由近到远排序。
sort=furthest:将目标由远到近排序。
sort=random:将目标随机排序。
sort=arbitrary:将目标按生成时间由远到近排序。(@a
和@e
的默认排序方式)
使用:
排序过后,可以用 limit= 进行选择 1 就是排序的第一个 2 就是第二个 以此类推
如: execute as @a at @s at @e[sort=nearest,limit=1,type=!player,type=!#minecraft:arrows,type=!minecraft:arrow,type=!minecraft:trident,type=!minecraft:potion,type=!minecraft:item,type=!minecraft:experience_orb,type=!minecraft:experience_bottle,distance=0..12] run particle minecraft:flame ~ ~ ~ 0.5 0 0.5 0.09 7 force @s
该指令的效果在这期视频

这个指令的效果是选择最近的生物并生成粒子,其中“sort=nearest,limit=1”就是选择最近的实体。
除此之外,还可以实现随机实体的效果
@e[sort=random,limit=1]

/bossbar
add 添加bossbar
remove 移除bossbar
get 返回请求的指定设置
(max/players/value/visible)
list 显示现存的bossbar列表
set 设置bossbar
(color|max|name|players|style|value|visible)
Color bossbar的颜色
Max bossbar的最大值
Players bossbar对谁显示
Style bossbar的段数
(progress|notched_6|notched_10|notched_12|notched_20)
看上去是这样的(... notched_6)

progress是不分段
Value bossbar的当前值
visible bossbar是否显示

/team
add 添加队伍
remove 移除队伍
list 列出所有队伍,同时列出显示名称与包含的实体。
empty 将所有队伍内的实体移出
join 加入队伍,若未指定实体,则将执行者加入该队伍。
leave 离开队伍
modify 修改队伍,如下
displayName
:设置队伍被显示时的名称。
color
:决定队伍与玩家在聊天栏、头顶、Tab菜单、侧边栏的颜色,以及实体带有发光效果时的描边颜色。
friendlyFire
:启用/禁用同队伍玩家互伤。不对队伍中的非玩家实体生效。
seeFriendlyInvisibles
:决定玩家观察同队伍的隐身玩家时,显示为半透明还是完全不可见。
nametagVisibility
:决定头上的名称标签是否可见。
deathMessageVisibility
:控制玩家死亡消息的可见性。
collisionRule
:控制队伍中实体的碰撞方式。
prefix
:修改玩家名称前缀。
suffix
:修改玩家名称后缀。来自 Minecraft Wiki
nametagVisibility
never - 玩家头上的名称不被任何玩家看见。
hideForOtherTeams
- 玩家头上的名称只被同队伍的玩家看见。hideForOwnTeam
- 玩家头上的名称只被不同队伍的玩家看见。always
- (默认)玩家头上的名称能被任意玩家看见。collisionRule
never
- 对所有玩家隐藏死亡消息。hideForOtherTeams
- 对不同队伍的玩家隐藏死亡消息。hideForOwnTeam
- 对同队伍的玩家隐藏死亡消息。always
- (默认)死亡消息对所有玩家可见。prefix
:修改玩家名称前缀。suffix
:修改玩家名称后缀。需用原始JSON文本
原始JSON文本-基本
{"text":"文本内容","color":"颜色"} "bold":false/true"italic":false/true,"underlined":false/true,"strikethrough":false/true,"obfuscated":false/true}
bold(粗体)、 italic(斜体)、 underlined(下划线)、 strikethrough(中划线)、obfuscated(乱码)
详见https://minecraft.fandom.com/zh/wiki/教程/原始JSON文本
/scoreboard
objectives (add/list/modify/remove/setdisplay)
add 记分项 准则 显示名称(原始JSON文本) 创建积分榜
list 列出所有存在的记分项、显示名称与准则。
modify
modify 准则 displayname 显示名称
更改记分板的显示名称。被指定的准则必须存在。名称必须是JSON文本组件
modify 记分项 rendertype (hearts/integer)
在列表将记分项记分项的数值以爱心或数字显示。
remove 删除积分项
setdisplay 设置积分项显示区域
players(add/enable/get/list/operation/remove/reset/set)
add <目标> <记分项> <分数>
往实体目标在记分项记分项上的分数增加数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。
目标所指定的实体不必存在,可以使用自定义的名称,下同。
enable <目标> <触发器>
使实体目标可以对指定触发型记分项触发器使用命令
/trigger
。在此操作完成前,实体目标对记分项使用/trigger
时将会失败。一旦实体对记分项使用了/trigger
,记分项将再次变得不可操作,需要再次使用此命令。*可用以代表所有正在被记分板追踪的实体。
get <目标> <记分项>
显示该实体在记分项上的分数。仅可指定一个实体,且不能为
*
。
list [<目标>]
显示所有被记分板系统追踪的实体。可选的实体名称参数项可用以显示指定实体的所有分数,留空目标会显示所有正被记分板跟踪的实体。由于MC-136858,往目标填写
*
无法追踪到任何实体。
operation <目标> <目标记分项> <操作> <来源> <来源记分项>
使用记分项实体来源在记分项名为来源记分项上的分数作为输入,进行运算操作后把结果作为记分项实体目标在记分项名为目标记分项上的分数。若来源的来源记分项未被赋值,则它会自动被设为0。 运算操作<操作> 可以是:
+= 求和:把选择器的分数加到 目标名称的分数上。
-= 求差:在目标名称的分数上减去选择器的分数。
*= 求积:将目标名称的分数设为目标名称的分数与选择器分数的乘积。
/= 求商:将目标名称的分数设为被选择器的分数除后的结果。
%= 求余:将目标名称的分数设为被选择器的分数除后得到的余数。
= 赋值:把目标名称的分数设为选择器的分数。
< 取较小值:如果选择器的分数比目标名称的分数小,则把目标名称的分数设为选择器的分数。
> 取较大值:如果选择器的分数比目标名称的分数大,则把目标名称的分数设为选择器的分数。
>< 交换选择器与目标名称的分数。 除><外,选择器在记分项上的分数会保持不变。*可填在目标名称或选择器(但不能同时)用以代表所有正在被记分板追踪的实体。
remove <目标> <记分项> <分数>
从实体目标在记分项记分项上的分数扣除数量分。如果没有分数则当作0分修改。*可用以代表所有正在被记分板追踪的实体。
reset <目标> [<记分项>]
清空实体目标的一项或所有分数。如果指定了记分项记分项,只清空对应记分项的分数;否则删除实体所有记分项上的分数。需要注意这不仅仅是设分数为0:实体将会整个从记分板上被移除(或从给定的记分项)。星号(*)可用以代表所有正在被记分板追踪的实体。
set <目标> <记分项> <分数>
将实体目标在记分项记分项上的分数设为数量分。*可用以代表所有正在被记分板追踪的实体。
选自Minecraft Wiki 有改动
注意,operation的运算不改变"选择器的分数"
其中,trigger可以实现无op的指令操作,或者是解密。
/trigger
(太简单了,直接放语法)
trigger <objective>
trigger <objective> (add|set) <value>
objective:计分项
value:值
(必须用 /scoreboard plaayers enable 目标 计分项 才可以用)