Suite

命令与占位符

Prop 模块管理命令、权限节点、PlaceholderAPI 占位符与客户端 UI 数据包

命令与占位符

命令

Prop 模块通过宿主通用命令 /axs 提供管理功能。命令 ID 为 prop,子命令通过 args[1] 指定。

玩家命令

Prop 模块没有独立的玩家命令。玩家通过以下方式使用道具:

方式说明
手持右键将物品绑定为道具后,手持右键空气或方块即可触发
客户端按键在 ArcartX 客户端按键设置中绑定按键,按下即触发对应槽位的道具

管理命令

命令权限说明
/axs prop helparcartxsuite.admin查看可用子命令列表
/axs prop statusarcartxsuite.admin查看模块运行状态(道具数、按键数、属性桥接状态)
/axs prop set <道具ID>arcartxsuite.admin将玩家主手物品绑定为指定道具

/axs prop set 只能由玩家执行。执行时主手必须持有真实物品(非空气),道具 ID 必须已存在于 data/prop/props/ 目录中。

宿主通用命令

命令说明
/axs reload prop重载 Prop 模块(宿主通用重载命令)

重载会重新读取配置文件、按键映射、语言文件和道具定义,并重新注册按键绑定。

权限

权限节点默认说明
arcartxsuite.adminOP访问 /axs prop 管理命令
<道具定义中的 permission>自定义道具使用权限,在道具 YAML 的 permission 字段配置

道具的 permission 字段留空时表示无权限限制。配置后玩家必须拥有该权限节点才能使用对应道具。

PlaceholderAPI

Prop 模块没有独立的 PlaceholderAPI 占位符输出。道具效果主要通过权限、物品、命令、属性和内部上下文执行,不涉及 PAPI 占位符注册。

PlaceholderAPI 在 Prop 模块中的角色是作为条件解析器——道具定义的 conditions 列表中可使用 PAPI 变量进行使用条件判断,例如 %player_level% >= 10

详细条件语法请参考 条件系统

客户端 UI 数据包

Prop 模块依赖 ArcartX 客户端 MOD 提供的桥接能力(PropBridgeAPI),通过客户端数据包实现按键绑定、额外槽位和物品持久化。模块本身不直接发送 UI 数据包,所有客户端交互通过宿主桥接层完成。

按键绑定注册

模块启动时通过 PropBridgeAPI.registerClientKeyBind() 注册按键绑定:

参数说明
bindingId绑定唯一标识(来自 key.yml 的顶层键名)
category按键分类名(来自 key.ymlcategory 字段)
defaultKey默认按键(来自 key.ymldefaultKey 字段)
onPress按下回调,切换到主线程执行 handleKeyPress()

注册成功后,玩家在 ArcartX 客户端按键设置中可以看到对应分类和按键,可以自行修改绑定。

额外槽位操作

通过 PropPlayerHandle 操作客户端额外槽位:

方法说明
getSlotItemStack(slotId)读取指定额外槽位的物品
setSlotItemStack(slotId, itemStack)设置指定额外槽位的物品
removeSlotItemStackOnlyClient(prefix, recursive)仅客户端移除指定前缀的槽位物品
syncSlotCacheToClient()同步槽位缓存到客户端

按键触发使用道具后,若物品被消耗或冷却标签变更,模块会调用 syncSlotCacheToClient() 同步槽位状态到客户端,确保客户端显示与服务端一致。

物品持久化

通过 PropBridgeAPI 在物品 PDC(PersistentDataContainer)中读写道具 ID:

方法说明
writePropId(itemStack, propId)将道具 ID 写入物品 PDC,返回新物品栈
getPersistentPropId(itemStack)从物品 PDC 读取持久化道具 ID
setCooldownTag(itemStack, group)设置物品的冷却组标签
getCooldownTag(itemStack)读取物品的冷却组标签

冷却管理

冷却通过客户端标签系统管理,按冷却组共享:

方法说明
setTagCooldown(tag, millis)设置标签冷却(毫秒)
getTagCooldown(tag)获取标签冷却剩余时间(毫秒)

冷却存储在客户端标签中,玩家重新上线后会从客户端同步冷却状态。按键触发时若冷却未结束,会同步槽位缓存到客户端以保持显示一致。

槽位同步时机

模块在以下时机同步玩家槽位数据:

时机方法说明
玩家加入服务器onPlayerJoin延迟 1 tick 同步全部已配置槽位
客户端初始化完成handleClientInitialized延迟 1 tick 同步全部已配置槽位
按键触发使用后handleUse同步槽位缓存到客户端
按键触发冷却中handleUse同步槽位缓存到客户端
模块启动时syncOnlinePlayers对所有在线玩家延迟 1 tick 同步

槽位同步会检查每个已配置槽位的物品,解析道具 ID 并同步冷却组标签,确保物品状态与服务端定义一致。

本页目录