Skip to content

常见问题

插件主要做什么?

LySimplePlaceholder 会识别文本中的数字,并按照配置自动格式化或缩写,例如将较大的数字显示为带有“万”“亿”等单位的文本。

插件支持以下处理场景:

  • PlaceholderAPI 变量返回值的数字格式化与缩写。
  • 聊天消息中的数字缩写。
  • 发往客户端的物品描述数字缩写。
  • BossBar 文本中的数字缩写。
  • 指定关键词的非发包全息文本缩写。

插件通过 ProtocolLib 监听和修改相关数据包。聊天、物品、BossBar 和全息等数据包处理功能需要服务器能够正常使用 ProtocolLib。

为什么 %lsp_变量% 没有缩写?

先确认以下内容:

  1. 已安装并启用 PlaceholderAPI。
  2. 原变量能够返回有效数字。
  3. 原变量不是普通文本、空值或带单位文本。
  4. 数值达到了 abbreviation-value 和缩写单位的判断条件。

用法是将原变量去掉两侧的百分号,再放入 lsp 变量中。例如原变量为 %ap_damage:min%,应使用:

text
%lsp_ap_damage:min%

该变量只能用于显示,不能用于计算。插件返回的是格式化后的文本,而不是可继续参与计算的数字。

如果变量本身返回带逗号的数字或科学计数法数字,插件可以识别这类数字;但变量最终必须仍然是合法的数字文本。

为什么 PlaceholderAPI 变量返回了原样文本?

lsp 变量需要先让 PlaceholderAPI 解析内部变量。如果内部变量无法解析,或者返回内容不是插件支持的数字格式,插件不会得到可处理的数字。

另外,PlaceholderAPI 扩展注册时要求服务器中存在 PlaceholderAPI。没有启用 PlaceholderAPI 时,lsp 变量不会正常提供。

为什么数字没有显示为“万”或“亿”?

检查 abbreviation-value 配置。

默认值为 4,表示从整数位数达到四位时开始进入大数字格式处理。插件支持的缩写单位按数值大小包括:

  • 亿
  • 恒河沙
  • 阿僧祇
  • 那由他
  • 不可思议
  • 无量
  • 大数

同时,具体数值还必须能够匹配到对应的缩写单位。例如没有达到“万”的数值不会显示为“万”。

为什么小数位数不符合预期?

默认小数格式由 format 控制:

yaml
format: '%.2f'

如果某个变量需要单独设置小数位数,可以在 designated-placeholder-format 中配置原始变量和格式:

yaml
designated-placeholder-format:
  '%ap_damage:min%': '%.0f'

指定变量时,键必须使用原始变量的完整形式,包括两侧的百分号。%lsp_ap_damage:min% 只是显示时使用的外层变量,配置键仍然是 %ap_damage:min%

插件格式化数字时使用截断方式处理小数,不是四舍五入。例如保留两位小数时,多余的小数位会被直接截去。

为什么聊天里的数字没有变化?

聊天消息不会无条件进行缩写。插件会先检查消息是否包含 message-replace-key 中的任意关键词。

默认配置如下:

yaml
message-replace-key:
  - '系统'

因此,默认只有包含“系统”的聊天消息才会进入数字替换流程。需要处理其他消息时,应将对应关键词加入该列表。

关键词支持配置中的颜色代码写法,插件会将 & 颜色代码转换后再进行匹配。

聊天消息中的所有数字都会被替换吗?

只有满足缩写条件的数字片段才会被替换。插件会识别文本中的普通数字、带逗号的千分位数字和科学计数法数字,并跳过不满足缩写条件的数字。

文本中的传统颜色代码、十六进制颜色代码和聊天中的 Unicode 转义格式不会被当成数字内容的一部分。

为什么物品描述没有缩写?

检查以下配置:

yaml
item-number-abbreviation: true

还需要确认:

  • 物品确实包含物品元数据或描述。
  • 物品描述中的数字达到了缩写条件。
  • 物品名称和描述没有命中 item-abbreviation-black-list
  • 对应描述行没有命中 item-line-black-list

该功能修改的是发往客户端的物品显示内容,不是服务器内部保存的原始物品文本。

为什么某个物品完全没有缩写?

如果物品名称或任意一行描述包含 item-abbreviation-black-list 中的内容,整个物品都会跳过缩写。

默认配置为:

yaml
item-abbreviation-black-list:
  - '玩家属性'

该配置适合排除不希望被处理的菜单按钮或特殊物品。

为什么物品描述只有部分行没有缩写?

如果某一行描述包含 item-line-black-list 中的任意内容,该行不会进行数字缩写,其他行仍然可以继续处理。

默认配置为:

yaml
item-line-black-list:
  - 'QQ群:'

item-abbreviation-black-list 不同,item-line-black-list 只跳过匹配的描述行,不会跳过整个物品。

修改物品缩写开关后为什么没有恢复?

配置注释明确说明,关闭 item-number-abbreviation 后需要重启服务器。已经发给客户端的缩写物品不会仅靠修改配置立即恢复。

如果物品显示仍未恢复,可以按以下顺序处理:

  1. 重启服务器。
  2. 让玩家重新进入服务器。
  3. 由管理员执行 /lsp update,延迟一个 tick 刷新玩家背包中的物品显示。

/lsp update 的执行逻辑要求发送者是玩家,并且要求发送者拥有管理员权限。

/lsp update 有什么作用?

/lsp update 会延迟一个 tick,重新设置玩家背包和装备栏中的物品,用于刷新客户端显示的物品信息。

该命令主要用于物品缩写显示没有及时恢复或没有及时刷新的情况。命令只能由管理员玩家执行,控制台不能使用该功能。

/lsp reload 重载哪些内容?

/lsp reload 会重新读取插件配置,并重新注册数据包监听功能。因此,修改数字格式、关键词、黑名单和功能开关后,应使用该命令让配置重新生效。

该命令需要管理员权限。

为什么执行 /lsp reload 没有反应?

检查以下内容:

  • 执行者是否拥有管理员权限。
  • 命令是否写成了 /lsp reload
  • 配置文件中的 YAML 缩进和引号是否正确。
  • 修改后的配置键是否属于插件实际读取的配置项。

插件命令注册名为 lsp。未提供参数时,插件会显示可用的重载提示;核心模块还会显示物品刷新提示。

BossBar 或全息没有缩写?

先确认对应开关已经开启,并检查文本是否包含配置的关键词。

BossBar 配置示例:

yaml
bossbar-number-abbreviation: true
bossbar-keyword:
  - '生命'

全息配置示例:

yaml
hologram-number-abbreviation: true
hologram-keyword:
  - '魔王'

BossBar 只有包含 bossbar-keyword 中任意关键词的文本才会处理。全息只有包含 hologram-keyword 中任意关键词的实体名称才会处理。

全息缩写支持哪些版本?

项目代码中的全息处理使用 1.12 的实体数据结构。配置注释也明确说明,全息功能仅支持 1.12,并且只能修改非发包的全息。

其他版本不应依赖该功能。

为什么开启了全息缩写仍然无效?

全息功能有以下限制:

  • hologram-number-abbreviation 必须为 true
  • 全息文本需要包含 hologram-keyword 中的关键词。
  • 该功能只处理实体元数据中的名称。
  • 只支持配置说明中的 1.12 环境。
  • 只能修改非发包的全息。

如果全息插件通过自己的数据包直接发送文本,LySimplePlaceholder 无法按该功能进行修改。

物品缩写会不会修改服务器中的原始物品?

插件处理的是发往客户端的物品副本。缩写前的物品名称和描述会保存到该显示副本的 NBT 中,用于后续恢复原始内容。

在创造模式下,玩家提交物品时,插件会尝试还原这些原始名称和描述,并移除用于保存原始内容的 NBT 数据。

因此,物品显示被缩写不等于服务器中的原始物品文本已经永久改写。

为什么物品恢复功能没有生效?

物品恢复依赖当前 Minecraft 版本对应的 NMS 实现。如果插件启动时没有成功初始化对应版本的 NBT 工具,物品缩写和恢复相关逻辑可能无法正常工作。

项目中提供了以下版本实现:

  • 1.7.10
  • 1.8.8
  • 1.11.2
  • 1.12.2
  • 1.13.2
  • 1.14.4
  • 1.15.2
  • 1.16.5
  • 1.17.1
  • 1.18.2
  • 1.19.2
  • 1.19.4
  • 1.20.1
  • 1.20.2
  • 1.20.3

如果服务器版本不在上述实现范围内,项目证据中没有对应的版本适配实现。

为什么插件启动后功能没有生效?

插件启动时会根据服务器 Bukkit 版本选择对应的 NMS 实现,并注册 ProtocolLib 数据包监听。如果版本识别失败或 NMS 初始化失败,控制台会记录初始化失败信息。

优先检查:

  • 服务器版本是否属于项目已提供的版本实现。
  • ProtocolLib 是否已安装并正常启用。
  • 插件是否能够正常加载配置。
  • 控制台是否出现 NMS 初始化失败信息。

PlaceholderAPI、ProtocolLib 和 MythicMobs 都是必须的吗?

项目的 plugin.yml 将以下插件声明为软依赖:

插件作用
PlaceholderAPI提供 %lsp_变量% 形式的变量解析基础。
ProtocolLib提供聊天、物品、BossBar 和全息等数据包监听能力。
MythicMobs项目包含 MythicMobs 相关编译引用。

其中,PlaceholderAPI 变量功能需要 PlaceholderAPI,数据包替换功能需要 ProtocolLib。项目证据没有表明普通数字格式化必须安装 MythicMobs。

为什么 %lsp_变量% 不能用于计算?

%lsp_变量% 返回的是格式化后的字符串,可能包含小数格式或“万”“亿”等中文单位。因此它只能用于显示,不能作为原始数字再次参与数学计算。

需要计算时,应使用原始变量或其他能够返回数字的变量;需要显示时,再使用 lsp 变量进行格式化。

修改配置后需要重启服务器吗?

普通配置修改可以使用 /lsp reload 重新读取配置。

item-number-abbreviation 的配置注释明确要求关闭该功能时重启服务器,因为已经发给客户端的缩写物品不会自动恢复。遇到物品显示残留时,还可以配合重新进服或 /lsp update 刷新。

配置中的颜色代码如何处理?

物品黑名单、物品行黑名单和全息关键词会将配置中的 & 颜色代码转换为 Minecraft 使用的颜色代码后再匹配。

聊天关键词也会兼容配置中的 & 颜色代码。关键词匹配仍然要求消息实际包含对应文本。

为什么数字缩写后仍然显示两位小数?

如果没有为变量单独配置格式,插件会使用 format 的值。默认值为:

yaml
format: '%.2f'

如果希望不显示小数,可以将默认格式设置为 %.0f,或者为指定变量增加单独的格式配置。

需要注意,整数值在部分处理路径中会自动使用零位小数格式;带有小数的数值则会按照默认格式或指定格式处理。

配置文件中没有某个键怎么办?

插件会对部分列表配置使用空列表作为后备值,但核心缩写阈值和默认数字格式来自配置文件。建议保留插件生成的完整 config.yml,只修改项目中已经提供的配置键。

项目证据中确认的主要配置键如下:

配置键作用
format默认数字格式。
designated-placeholder-format指定原始变量的数字格式。
abbreviation-value数字进入大数字格式处理的位数阈值。
message-replace-key聊天消息替换关键词。
item-number-abbreviation物品数字缩写开关。
item-abbreviation-black-list物品级黑名单。
item-line-black-list物品描述行黑名单。
bossbar-number-abbreviationBossBar 数字缩写开关。
bossbar-keywordBossBar 替换关键词。
hologram-number-abbreviation全息数字缩写开关。
hologram-keyword全息替换关键词。

为什么包含关键词但仍然没有替换?

关键词只是进入替换流程的条件,文本中的数字仍然必须满足插件的数字识别和缩写判断条件。

同时检查以下情况:

  • 数字是否实际存在于发送给客户端的文本中。
  • 数字是否已经带有不支持的单位或其他文字。
  • 功能开关是否已经开启。
  • 当前功能是否受到版本或数据包类型限制。

为什么部分龙核界面中的物品无法缩写?

配置注释明确说明,物品数字缩写在部分龙核界面下可能无法使用。该功能依赖服务器发出的物品数据包;如果界面没有通过插件能够监听和修改的物品数据包发送显示内容,插件就无法处理。

如何确认重载是否成功?

执行 /lsp reload 后,管理员会收到“重载成功”提示。插件重载时还会根据配置重新注册聊天、物品、BossBar 和全息相关的数据包监听。

如果某项功能仍未生效,应继续检查对应开关、关键词、ProtocolLib 状态和服务器版本,而不是只重复执行重载命令。