🅿️ 占位符
请先查看注意事项
%image_%
image 占位符根据给定标识符返回对应图片的原始 Unicode 字符及其关联字体。
row 和 column 都是可选的,但如果使用其中一个,就必须同时使用另一个。
%image_mm_<命名空间>:<路径>:[行]:[列]%
返回 MiniMessage 格式的图片。

%image_md_<命名空间>:<路径>:[行]:[列]%
返回 MineDown 格式的图片。

%image_raw_<命名空间>:<路径>:[行]:[列]%
返回原始图片字符

%shift_%
shift 占位符用于获取偏移字符,常用于菜单标题对齐等操作。
%shift_mm_<数值>%
返回 minimessage 格式的偏移字符
%shift_md_<数值>%
返回 minedown 格式的偏移字符
%shift_raw_<数值>%
返回原始偏移字符
如果你需要在其他插件中使用占位符显示图片,务必确保这些插件支持 MiniMessage 或 MineDown 格式,并能正确发送文本组件。 (我之所以强调这一点,是因为有些设计不佳的插件会强制将富文本转换为旧版的颜色代码。)
另外,你也可以通过 CraftEngine 的数据包拦截功能来显示自定义图片。具体细节请参考此页面。
%checkceitem_%
checkceitem 占位符用于在其他菜单插件中检查玩家物品栏的 CraftEngine 物品。
%checkceitem_count_<命名空间>:<路径>%
返回玩家物品栏中指定物品的数量。
%checkceitem_has_<命名空间>:<路径>:[数量]%
返回玩家物品栏中是否有指定数量的物品。
%checkceitem_id_[槽位]%
槽位可写不小于 0 的数字,或者 main_hand 和 off_hand 用于分别指定主手和副手槽位。
返回玩家物品栏中指定槽位物品的命名空间 ID。
%checkceitem_iscustom_[槽位]%
槽位可写不小于 0 的数字,或者 main_hand 和 off_hand 用于分别指定主手和副手槽位。
返回玩家物品栏中指定槽位物品是否为自定义物品。
物品槽位数字
%ce_pack-state_<资源包ID>%
查询玩家对 resource-pack.packs 中某个包的设置,例如 %ce_pack-state_default%。
| 返回值 | 含义 |
|---|---|
enabled | 玩家主动启用了这个包。 |
disabled | 玩家主动禁用了这个包。 |
unset | 玩家没有设置,跟随该包配置中的 default 值。 |
执行 /ce pack reset default 会恢复为 unset 状态。使用 /ce debug pack-states <玩家> 查看该玩家所有已配置资源包的状态,所需权限为 ce.command.debug.pack_states。变量读取缓存,不会查询数据库。需要在线玩家且玩家设置已加载;不存在的资源包 ID 不会被解析。
%ceexpr_%
ceexpr 用于计算 CraftEngine 表达式,可以替代 PlaceholderAPI 的 Math 扩展(速度快 1000 倍)。写法为:
%ceexpr_<格式>_<表达式>%
第一个参数是输出格式,第二个参数是表达式。CraftEngine 只用格式后的第一个下划线分隔参数,因此表达式本身可以继续包含下划线。
%ceexpr_#.#_1+2*3%
上例返回 7。数字格式与 MiniMessage 的 <expr> 标签相同,支持由 #、0、. 和 , 组成的模式:
%ceexpr_#,##0.00_1234.5%
上例返回 1,234.50。格式写成 bool 时,表达式会按布尔值求解并返回 true 或 false:
%ceexpr_bool_1+2*3==7%
由于 % 会被 PlaceholderAPI 识别为占位符的结束符,表达式需要取余时请用 {mod} 代替 %:
%ceexpr_#_10{mod}3%
上例等同于表达式 10 % 3,返回 1。
表达式需要读取其他 PlaceholderAPI 变量时,请使用 <papi:变量>,不要在外层占位符中嵌套 %变量%:
%ceexpr_#.#_<papi:player_level>*1.5%
%ceattr_%
ceattr 占位符用于读取玩家的自定义属性。属性 ID 必须写完整的命名空间,例如 demo:might。
%ceattr_base_<命名空间>:<路径>%
返回属性为当前玩家解析出的基础值。该值尚未应用属性修饰符与最终值约束。
%ceattr_base_demo:might%
%ceattr_value_<命名空间>:<路径>%
返回玩家当前的有效属性值,其中包含 entity 作用域的装备修饰符,但不会额外计算主手武器的 weapon 作用域修饰符。
%ceattr_value_demo:might%
%ceattr_weapon_<命名空间>:<路径>%
只返回玩家主手物品提供的 weapon 作用域贡献,不包含玩家自身已有的属性值。
%ceattr_weapon_demo:might%
%ceattr_value+weapon_<命名空间>:<路径>%
在玩家当前有效值上,额外合并主手物品的 weapon 作用域贡献。适合在武器 Lore、角色面板或计分板中预览持有武器参与伤害公式时的属性值。
%ceattr_value+weapon_demo:might%
+weapon 只支持 value,不支持 base。这些占位符需要玩家上下文;玩家不存在、属性 ID 无效或属性尚未注册时不会返回数值。
%cejs_%
由 JavaScript 脚本通过 //@Placeholder 注解注册的变量。完整使用指南见 📜 脚本。
//@Placeholder("random_number")
function randomNumber(player) {
return Math.floor(Math.random() * 100)
}
%cejs_<id>%
求值注册在 <id> 下的脚本函数。函数接收 Bukkit Player/OfflinePlayer 玩家对象(离线上下文可能为 null),需返回字符串。
%cejs_<id>_<参数>%
如果 <id> 是已注册的前缀,剩余部分会作为 args 绑定传给函数。
// %cejs_top_1_extra% -> args = "1_extra"
//@Placeholder("top")
function topN(player, args) {
return `第 ${args} 名`
}
%rel_cejs_%
由 //@RelationalPlaceholder 注解注册的关系占位符。函数接收两个 Bukkit 玩家对象(one、two)和原始 args 字符串:
//@RelationalPlaceholder("relation")
function relation(one, two, args) {
return one.getName() + " -> " + two.getName()
}