跳到主要内容

🅿️ 占位符

危险

请先查看注意事项

%image_%

image 占位符根据给定标识符返回对应图片的原始 Unicode 字符及其关联字体。

警告

rowcolumn 都是可选的,但如果使用其中一个,就必须同时使用另一个。

%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_handoff_hand 用于分别指定主手和副手槽位。
返回玩家物品栏中指定槽位物品的命名空间 ID。

%checkceitem_iscustom_[槽位]%

槽位可写不小于 0 的数字,或者 main_handoff_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 时,表达式会按布尔值求解并返回 truefalse

%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 玩家对象(onetwo)和原始 args 字符串:

//@RelationalPlaceholder("relation")
function relation(one, two, args) {
return one.getName() + " -> " + two.getName()
}