我的世界attribute指令

此特性为Java版独有。
attribute
需要的权限等级 2
限制条件

用于更改或读取属性。


语法

attribute <target> <attribute> [base] get [<scale>]
attribute <target> <attribute> base set <value>
attribute <target> <attribute> modifier add <uuid> <name> <value> (add|multiply|multiply_base)
attribute <target> <attribute> modifier remove <uuid>
attribute <target> <attribute> modifier value get <uuid> [<scale>]

具体用法

attribute <target> <attribute> ...

... get [<scale>]

返回指定属性的总值。
... base get [<scale>]

返回指定属性的基值。
... base set <value>

用给定值覆盖指定属性的基值。
... modifier (add|remove|value get)

... add <uuid> <name> <value> (add|multiply|multiply_base)

如果已不存在具有相同UUID的修饰符,则添加具有指定属性的属性修饰符。
... remove <uuid>

删除具有指定UUID的属性修饰符。
... value get <uuid> [<scale>]

返回具有指定UUID的修饰符的值。

参数

<target>:entity

应用属性的实体。只有玩家、生物和盔甲架有属性。
必须为玩家名、目标选择器或UUID。且目标选择器只允许1个实体。

<attribute>:resource_location

指定属性的命名空间ID。
必须为命名空间ID。

<scale>:double

用于/execute store result命令,将获取的值与该值相乘的数字作为返回值(小数会向下取整)。
必须为双精度浮点数。

<uuid>:uuid

以字符串格式指定修饰符的UUID。具有相同UUID的修饰符不堆叠。
必须为带连字符的十六进制UUID。接受下列字符:

  • -
  • AF
  • af
  • 09

<name>:string

指定该属性修饰器的名称。
必须为字符串。且必须为带引号词组(单个词或者引号括起的字符串,允许的字符包括:+-._AZaz09)。

<value>:double

指定使用的值。
必须为双精度浮点数。

结果

 

命令 触发条件 Java版
任意 不正确的参数 无法解析
<target> 无法解析为单个玩家、盔甲架、生物(指定的玩家必须在线 执行失败
... modifier add ... 属性不存在(例如玩家没有minecraft:horse.jump_strength属性)
... modifier add ... 修饰符已存在
... modifier remove ... modifier value get ... 修饰符不存在
任意 执行成功时 更改或返回属性值。

输出

 

命令 版本 条件 成功次数 /execute store success ... /execute store result ...
任意 Java版 执行失败 0 0 0
... get [<scale>] 执行成功 1 1 指定属性的值 (乘以 <倍率>),小数会向下取整。)
... base get [<scale>] 执行成功 1 1 指定属性的基值 (乘以 <倍率>),小数会向下取整。)
... modifier value get <uuid> [<scale>] 执行成功 1 1 指定属性修饰符的值 (乘以 <倍率>),小数会向下取整。)
... base set ...
... modifier add ...
... modifier remove ...
执行成功 1 1 1

示例

将自己的基础盔甲值设定为5:

  • /attribute @s minecraft:generic.armor base set 5

将所有玩家的最大生命值设置为2(经典极限生存):

  • /execute as @a run attribute @s minecraft:generic.max_health base set 2
已有 0 条评论