语言与物品显示格式
配置插件文字、GUI 布局与 Overture Lore 行格式
Symphony 将“说什么”和“放在哪里”分成三份配置:
language.yml:命令、GUI、工坊、日志、来源名称、类别名称和组件诊断。display.yml:Overture 动态标签生成的每一行。gui/*.yml:界面槽位、图标、分页位置和标题 language key。
language.yml
所有插件自带输出都应从语言 key 读取,包括:
- 玩家命令回复和权限提示;
- GUI 标题、按钮、状态和说明;
- 工坊成功、失败和物品恢复提示;
- 插件启停与兼容日志;
- Overture 组件解析错误;
- 套装、宝石类别、来源类型和枚举名称。
用户在回调中自己配置的 message action 或脚本 self.sendMessage(...) 属于玩法内容,由对应 YAML 作者负责,不会被语言文件替换。
重载时会检查语言文件。缺少必要 key 或结构错误时,会继续使用重载前的内容。
自定义类别名称
槽位配置保存稳定 ID,正常 GUI 和 Lore 读取这里的显示名。新增类别时同步增加语言项。
GUI 标题
布局不直接写标题文本,而是写语言 key:
这样语言切换不需要复制一份 GUI 布局。
display.yml
默认格式示例:
乘法属性传入的 {value} 是带正负号的百分比增幅。例如配置 value: 30% 会显示 +30%,不会显示成容易误解的“乘 0.3”。
强化等级存在时,attribute.add 接收到的 {value} 已经是乘过强化倍率的有效数值;enhancement.bonus 的 {bonus} 与 {multiplier} 则说明倍率本身。offhand.allowed 的 {scale} 是物品级声明比例,不代表当前服务器模式一定会使用它。词条的 {description} 来自词条定义 display.description 代入实例参数后的结果;技能的说明与触发方式来自技能定义。它们都属于格式模板,服主可以改颜色、前缀和布局,但不需要在显示文件重复写具体玩法内容。
按 Overture display 覆盖
Symphony 从 Overture 的 RenderEntryContext.displayId 选择覆盖:
物品使用 display: compact 时,只覆盖这里出现的行;其余 key 回退到 default。因此不需要为每个物品外观复制整套格式。
模板变量只进行文字替换,不执行脚本。display.yml 缺少必需格式时会报告错误,不会把内部 key 直接显示给玩家。
