/ability 玩家能力
设置或查询玩家的特殊能力,如世界建造者、飞行与禁言,为基岩版独有命令
/ability 用于设置或查询玩家的特殊能力,包括世界建造者、飞行与禁言三种。该命令是基岩版与教育版独有,Java 版中不存在。它最早加入于携带版 Alpha 0.16.0,1.5.0 起新增了查询能力值的用法。
原理
/ability 直接读写玩家实体数据中的「能力标志」(ability flag)。基岩版中每个玩家都携带一组按索引排列的布尔标志,用来表示该玩家当前具备的各类权限,例如「允许飞行」「已静音」「世界建造者」等。/ability 命令本质上就是对这些标志做读取或写入,不涉及物品、方块或计分板等其它系统,因此执行是即时的,也不需要改动世界状态。
三个能力各自对应不同的游戏子系统。worldbuilder 写入「世界建造者」标志,它绕过冒险模式的方块交互限制,使玩家即使在冒险模式下也能放置和破坏方块,这套权限源于教育版的「世界建造者」体系。mayfly 写入「允许飞行」权限标志,它与「当前正在飞行」的状态标志相互独立——后者描述玩家此刻是否在空中,前者描述玩家是否有资格起飞。mute 写入「已静音」标志,聊天系统在把消息广播给其他玩家之前会检查该标志,一旦为真就拦截这条消息,使其他人既看不到也听不到。
能力标志与游戏模式存在耦合。游戏模式会为玩家设定一组默认能力基线:例如创造模式默认开启飞行与建造,生存模式默认关闭。/ability 则是绕过游戏模式、单独覆盖某个标志,因此可以用 /ability @p mayfly true 让生存模式玩家获得飞行能力,而不改变其游戏模式。反过来,切换游戏模式会按新模式的默认值重新计算部分能力,可能覆盖此前用 /ability 设置的结果。
不带布尔值的写法是查询操作:只读取标志并返回当前值;连能力名都省略时,则返回该玩家的能力概况。使用 @a 等多目标选择器时,命令会对每个被选中的在线玩家分别执行,设置形式的成功计数为 1,查询形式的输出则为被选中玩家的数量。由于这些标志保存在玩家的会话数据中,玩家退出游戏后所有能力都会被撤销。
语法
设置能力:
/ability <玩家> <能力> true|false
查询单个能力:
/ability <玩家> <能力>
查询全部能力:
/ability <玩家>
参数
<玩家>— 目标选择器(CommandSelector<Player>)。指定要设置、撤销或查询能力的目标玩家,必须为玩家名或玩家类型选择器(如@p、@a、@s),不能选择非玩家实体。<能力>— 枚举类型。指定要操作的能力名称,可选值见下方「能力一览」。true|false— 布尔值。true为启用该能力,false为撤销该能力;省略时进入查询模式,返回该能力的当前值。
能力一览
| 能力 | 说明 |
|---|---|
worldbuilder | 世界建造者。授予后玩家即使在冒险模式下也能放置和破坏方块,绕过冒险模式的方块交互限制。 |
mayfly | 飞行。授予玩家飞行的权限,使其像在创造模式一样飞行,无需切换游戏模式。 |
mute | 禁言。开启后该玩家的聊天消息对其他玩家不可见,也无法被其他玩家听见。 |
示例
给最近玩家开启飞行:
/ability @p mayfly true
距离执行者最近的玩家获得飞行权限,即使处于生存模式也能像创造模式一样飞行。
撤销指定玩家的世界建造者能力:
/ability Steve worldbuilder false
玩家 Steve 被撤销世界建造者能力,之后无法再绕过冒险模式的方块交互限制。
禁言所有在线玩家:
/ability @a mute true
所有在线玩家的聊天消息都会被拦截,其他玩家看不到也听不到这些消息。
查询某玩家的禁言状态:
/ability Steve mute
查询并返回 Steve 的禁言能力当前值,若为 true 表示其正处于禁言状态。
查询某玩家的全部能力:
/ability Steve
返回 Steve 当前拥有的全部能力概况,方便你一次确认该玩家的能力状态。
基岩版注意
- 需要 OP 等级 1,且世界需开启作弊(cheats)才能使用。
- 该命令为基岩版独有,Java 版中不存在
/ability命令,也没有等价的禁言命令。 /ability最早加入于携带版 Alpha 0.16.0;1.5.0 起才支持查询用法(省略布尔值或能力名),早期版本仅支持设置用法。- 玩家退出游戏后,所有能力均会被撤销,重新加入世界后需要再次执行命令授予。
worldbuilder能力源于教育版的世界建造者权限体系,但在普通基岩版世界中同样可用,前提是已开启作弊。
常见问题
为什么执行 /ability 提示没有权限?
/ability 需要 OP 等级 1,并且世界必须开启作弊。若是单人世界,需在世界设置中开启「激活作弊」;在服务器中,则需要先通过服务器控制台授予自己 OP。
玩家退出重进后能力还在吗
不在了。能力保存在玩家的会话数据中,退出游戏后即被撤销,重新加入世界后需要重新执行命令授予。
生存模式玩家获得飞行后为什么还是飞不起来?
mayfly 只授予「允许飞行」的资格,不改变玩家当前的飞行状态,玩家需要在空中再次按下跳跃键才能实际起飞。此外,切换游戏模式会按新模式的默认值重新计算飞行等能力,可能覆盖之前用 /ability 设置的结果。
worldbuilder 和创造模式有什么区别
worldbuilder 只放开「放置与破坏方块」这一项权限,不影响生命值、物品栏或无敌状态;而创造模式则同时附带飞行、无敌、无限资源等一整套能力。它主要用于冒险模式地图中,只允许特定玩家编辑世界而不改变其余玩家的体验。