属性工作流
属性工作流通过 PropertyAccessor 机制,提供对游戏对象的统一读写访问。你可以用一致的方式读取或修改实体、方块、物品、世界等对象的属性,无需关心底层实现差异。
访问模式
属性访问的基本模式是:目标对象 + 属性键。
- 读取:从目标对象获取指定属性的值
- 写入:向目标对象设置指定属性的值
并非所有属性都支持写入,下方表格中标注了每个属性的读写能力。
通用属性
Location 属性
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
world | 所在世界 | R | - |
x | X 坐标 | R | W |
y | Y 坐标 | R | W |
z | Z 坐标 | R | W |
yaw | 水平旋转角 | R | W |
pitch | 垂直旋转角 | R | W |
block | 所在方块 | R | - |
chunk | 所在区块 | R | - |
direction | 朝向向量 | R | - |
Vector 属性
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
x | X 分量 | R | W |
y | Y 分量 | R | W |
z | Z 分量 | R | W |
length | 向量长度 | R | - |
isZero | 是否为零向量 | R | - |
normalized | 归一化向量 | R | - |
World 属性
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
name | 世界名称 | R | - |
players | 在线玩家列表 | R | - |
entities | 实体列表 | R | - |
time | 当前时间(tick) | R | W |
fullTime | 完整时间(tick) | R | W |
seed | 世界种子 | R | - |
weather | 天气状态 | R | - |
difficulty | 难度 | R | - |
ItemStack 属性
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
type | 物品类型 | R | W |
amount | 数量 | R | W |
meta | 物品元数据 | R | - |
durability | 耐久度 | R | - |
enchantments | 附魔列表 | R | - |
Block 属性
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
type | 方块类型 | R | W |
location | 方块位置 | R | - |
lightLevel | 光照等级 | R | - |
biome | 生物群系 | R | - |
isEmpty | 是否为空气 | R | - |
isLiquid | 是否为液体 | R | - |
实体属性
Entity 属性
适用于所有实体类型。
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
uuid | 实体 UUID | R | - |
type | 实体类型 | R | - |
location | 当前位置 | R | - |
velocity | 速度向量 | R | W |
glowing | 是否发光 | R | W |
silent | 是否静音 | R | W |
customName | 自定义名称 | R | W |
LivingEntity 属性
适用于所有生物实体(继承 Entity 属性)。
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
health | 当前生命值 | R | W |
maxHealth | 最大生命值 | R | W |
equipment | 装备栏 | R | - |
potionEffects | 药水效果列表 | R | - |
hasAI | 是否启用 AI | R | W |
Player 属性
适用于玩家(继承 LivingEntity 属性)。
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
name | 玩家名称 | R | - |
gameMode | 游戏模式 | R | W |
foodLevel | 饥饿值 | R | W |
exp | 经验值 | R | W |
level | 等级 | R | W |
inventory | 背包 | R | - |
walkSpeed | 行走速度 | R | W |
flySpeed | 飞行速度 | R | W |
事件属性
事件对象也可以通过属性工作流访问。不同事件类型提供不同的可读写字段。
PlayerJoinEvent
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
player | 加入的玩家 | R | - |
joinMessage | 加入消息 | R | W |
PlayerMoveEvent
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
player | 移动的玩家 | R | - |
from | 起始位置 | R | - |
to | 目标位置 | R | W |
EntityDamageEvent
| 属性键 | 说明 | 读 | 写 |
|---|---|---|---|
entity | 受伤实体 | R | - |
damage | 伤害值 | R | W |
cause | 伤害原因 | R | - |
提示
事件属性的可写字段允许你在工作流中直接修改事件行为,例如修改伤害值或取消加入消息。