InteractionProxyManager:交互代理管理器
命中盒代理(交互代理)管理器 API
InteractionProxyManager
- 交互代理(命中盒代理)管理器,用于为一个实体创建独立的「代理实体」,为其提供可自定义尺寸的命中盒、骑乘、座位、受伤处理等能力。
- 通过
ArcartXAPI.getInteractionProxyManager()获取。
下文中的 CustomEntity 为 ArcartX 内部实体封装类型(priv.seventeen.artist.asteroid.entity.CustomEntity),通常你只需持有它以做进一步操作,或直接使用返回的 Bukkit Entity。
createProxy(owner, width, height)
- 为指定实体创建一个交互代理实体。若该实体已存在代理,会先移除旧代理再创建新代理。
- 参数:
owner: Entity — 代理所属的实体;width: double — 命中盒宽度;height: double — 命中盒高度 - 返回值:
Entity— 新创建的代理实体(Bukkit 实体) - 调用示例
removeProxy(owner)
- 移除指定实体的交互代理,并清理其对应的实体缓存。
- 参数:
owner: Entity — 代理所属的实体 - 返回值:无
- 调用示例
getProxy(owner)
- 获取指定实体对应的代理实体对象。
- 参数:
owner: Entity — 代理所属的实体 - 返回值:
CustomEntity?— 代理实体对象,不存在时为 null - 调用示例
getOwner(proxy)
- 通过代理实体获取其所属的实体。存在
Entity与UUID两个重载。
- 参数:
proxy: Entity 或 UUID — 代理实体或其 UUID - 返回值:
Entity?— 代理所属的实体,不存在时为 null - 调用示例
getProxyFromEntity(proxy)
- 通过代理实体反查其代理对象。
- 参数:
proxy: Entity — 代理实体 - 返回值:
CustomEntity?— 代理对象,不存在时为 null - 调用示例
isOwner(ownerUUID)
- 判断指定 UUID 的实体是否拥有交互代理。
- 参数:
ownerUUID: UUID — 实体 UUID - 返回值:
boolean— 是否拥有代理 - 调用示例
isProxy(entity)
- 判断指定实体是否为一个交互代理。存在
Entity与UUID两个重载。
- 参数:
entity: Entity 或 UUID — 待判断的实体或其 UUID - 返回值:
boolean— 是否为代理实体 - 调用示例
hasProxy(entity)
- 判断指定实体是否已存在交互代理。
- 参数:
entity: Entity — 待判断的实体 - 返回值:
boolean— 是否已存在代理 - 调用示例
updateProxySize(owner, width, height)
- 更新指定实体代理的命中盒尺寸。若代理不存在则不执行任何操作。
- 参数:
owner: Entity — 代理所属的实体;width: double — 新宽度;height: double — 新高度 - 返回值:无
- 调用示例
setProxyMountType(owner, type)
- 设置代理的骑乘类型。
type支持GROUND、FLY、BOAT、CAR、DIVING(不区分大小写),其余值视为NONE(即移除骑乘/交互能力)。
- 参数:
owner: Entity — 代理所属的实体;type: String — 骑乘类型 - 返回值:无
- 调用示例
setMountSpeed(owner, moveSpeed, flyUpSpeed, flyDownSpeed, boatTurnSpeed)
- 设置代理骑乘时的移动参数。仅当代理已具备骑乘能力时生效。
- 参数:
owner: Entity — 代理所属的实体;moveSpeed: float — 移动速度;flyUpSpeed: float — 上升速度;flyDownSpeed: float — 下降速度;boatTurnSpeed: float — 船类转向速度 - 返回值:无
- 调用示例
addSeat(owner, x, y, z)
- 为代理添加一个座位偏移点。
- 参数:
owner: Entity — 代理所属的实体;x: double、y: double、z: double — 座位相对偏移 - 返回值:无
- 调用示例
setDamageHandler(owner, callback)
- 为代理设置受伤回调处理器,用于接管代理实体受到伤害时的逻辑。
- 参数:
owner: Entity — 代理所属的实体;callback: DamageAbility.Callback — 受伤回调 - 返回值:无
- 调用示例
