Skip to content

PlaceholderAPI 占位符 ​

EmakiStorage 注册到 PlaceholderAPI 的占位符及其计算口径如下, 可直接复制到计分板, 菜单等模板中使用

前置条件: 已安装 PlaceholderAPI. 满足后 EmakiStorage 注册扩展, 标识符为 emakistorage. 这些占位符可以用在计分板, 菜单, 聊天格式, BossBar, ActionBar 以及支持 PlaceholderAPI 的其他插件文本模板里

PlaceholderAPI 未安装时, EmakiStorage 本体仍然可以正常运行, 只是不会注册 %emakistorage_*% 这些外部占位符

占位符列表 ​

占位符说明
%emakistorage_used_slots%已经占用的槽位数量
%emakistorage_total_slots%有效槽位的总数
%emakistorage_free_slots%还空着多少槽位
%emakistorage_purchased_slots%已经购买了多少槽位
%emakistorage_granted_slots%授予了多少槽位
%emakistorage_pages%总共多少页
%emakistorage_stack_limit%当前生效的玩家级单槽上限
%emakistorage_sort_mode%当前排序模式的 id
%emakistorage_total_amount%所有条目数量加在一起的总和, 溢出时停在上限 Long.MAX_VALUE
%emakistorage_count_<token>%指定 ItemSource token 的库存量, 没有这条条目时为 0

求值线程与未载入数据 ​

线程约束: 所有占位符读的都是在线玩家在内存里的数据, 不会去读磁盘, PlaceholderAPI 在哪个线程调用就在哪个线程上计算, 因为这种地方不能做会让线程卡住的磁盘读写. 异常处理: 玩家数据还没载入时返回 0, 认不出来的占位符返回空字符串

匹配规则: 占位符名不区分大小写, 计算前统一转成小写, 所以 %emakistorage_USED_SLOTS% 和全小写是一样的. count_ 前缀会先于其他名字去匹配, 它后面的部分按 CoreLib ItemSource token 解析 (同样先转小写), 解析不出来的 token 返回 0. 所有结果都按十进制字符串返回, 整数不加千分位分隔

异常处理: 玩家参数为空时 (比如在控制台里, 或者求值时没有玩家上下文) 返回空字符串, 而不是 0

相关页面 ​

  • 容量与缩容: total_slots, purchased_slots 等数值背后的四来源容量模型
  • 事件 API: 需要拦截而不只是读取时使用的 Bukkit 事件
  • API 与集成: 在代码中读取容量与存量的方式