Skip to content

配置说明 ​

LyGemSoulRing 的配置由两部分组成:

文件位置用途
plugins/LyGemSoulRing/config.yml设置宝石来源、装备槽位、释放方式、冷却、指令动作、显示数量和动画参数
plugins/LyGemSoulRing/soulring/*.yml按宝石 ID 定义魂环贴图、尺寸、位置、旋转和动画列表

执行 /lgsr reload 可以重新读取主配置、动画配置和 soulring 目录中的全部 YAML 文件。该指令仅限管理员使用。

主配置 ​

宝石来源 ​

yaml
gem-plugin: 'LyGemReload'

gem-plugin 决定插件从装备物品中读取哪一种宝石数据。

值说明
LyGemReload通过 LyGemReload API 读取物品中的全部宝石 ID
YeeGem通过 YeeGem API 读取物品中的宝石 ID

配置值不区分大小写。使用对应来源前,服务器必须安装并正常加载相应宝石插件。

魂环配置的顶层名称必须与宝石插件返回的宝石 ID 完全对应,否则该宝石不会生成魂环。

装备槽位 ​

yaml
plugin-slot:
  - 'Origin#MainHand'

plugin-slot 用于设置需要扫描的装备位置。插件会按列表顺序读取每个槽位,将其中的宝石 ID 汇总后匹配魂环配置。

当前版本同时兼容旧版单字符串写法,但建议始终使用 YAML 列表:

yaml
plugin-slot:
  - 'Origin#MainHand'
  - 'Origin#Helmet'
  - 'DragonCore#戒指槽位'
格式说明
DragonCore#槽位名读取 DragonCore 缓存槽位
GermPlugin#槽位标识读取萌芽引擎槽位
LyInventory#背包ID#类型读取旧版 LyInventory 指定槽位
LyInventoryReload#背包ID#类型读取 LyInventoryReload 指定槽位
YeeJewelry#背包ID#槽位ID读取 YeeJewelry 指定槽位
Minecraft#槽位ID读取原版玩家背包中的指定槽位
Origin#MainHand读取原版主手物品
Origin#OffHand读取原版副手物品
Origin#Helmet读取原版头盔
Origin#ChestPlate读取原版胸甲
Origin#Legging读取原版护腿
Origin#Boots读取原版靴子

Minecraft#槽位ID 的默认配置注释标明槽位范围为 0-35。

槽位格式必须包含对应数量的 # 分段。格式错误、槽位不存在、物品为空或物品没有物品元数据时,该槽位不会提供宝石数据。

释放按键 ​

yaml
show-soulring-key: 'Z'

show-soulring-key 设置 DragonCore 客户端按键。插件监听按键释放事件,玩家松开对应按键后,会在绽放和收回魂环之间切换。

配置重载时会重新向 DragonCore 注册该按键。按键名称无效时,控制台会提示注册失败,但玩家仍可使用 /lgsr show 切换魂环。

魂环展开后不会因为玩家更换装备自动收回。再次按键或执行 /lgsr show 才会收回。

释放冷却 ​

yaml
show-soulring-cooldown: 10000
show-soulring-cooldown-message: '&c魂环绽放冷却中,还需{time}秒!'
配置项类型默认值说明
show-soulring-cooldown整数10000再次绽放魂环需要等待的时间,单位为毫秒
show-soulring-cooldown-message字符串&c魂环绽放冷却中,还需{time}秒!冷却未结束时发送给玩家的消息

冷却只限制绽放魂环,不限制收回魂环。冷却从成功开始绽放时计算。

占位符说明
{time}剩余冷却秒数,保留一位小数

释放与收回指令 ​

yaml
show-soulring-command:
  # - '[console]tell %player_name% 你释放了魂环'

hide-soulring-command:
  # - '[console]tell %player_name% 你收回了魂环'
配置项触发时间
show-soulring-command玩家成功读取到有效魂环并开始绽放时
hide-soulring-command玩家主动收回已经展开的魂环时

每一项指令都会先经过 PlaceholderAPI 变量解析,再根据前缀决定执行身份。

写法执行方式
[console]指令由控制台执行
[op]指令临时给予玩家管理员身份,以玩家身份执行,完成后恢复原状态
指令直接以玩家身份执行

指令内容不需要填写开头的 /。玩家名可使用 PlaceholderAPI 提供的 %player_name% 等变量;项目代码没有为动作指令提供 {player} 占位符。

如果没有安装 PlaceholderAPI,动作指令的变量解析功能无法正常使用。plugin.yml 将 PlaceholderAPI 声明为软依赖。

当扫描结果中没有任何已配置的魂环时,插件会取消展开状态并向玩家发送“你没有魂环!”,此时不会执行 show-soulring-command。

数量、尺寸与显示间隔 ​

yaml
max-soulring: 10
soulring-scale: 4
show-soulring-delay: 5
配置项类型默认读取值说明
max-soulring整数10单个玩家最多显示的魂环数量
soulring-scale小数0.35后续每层魂环相对上一层增加的宽度和高度
show-soulring-delay整数0定时展示魂环时两次处理之间的间隔,单位为服务器 Tick

soulring-scale 不是整体缩放倍率。插件会根据魂环序号计算尺寸:

text
最终宽度 = 配置宽度 + 魂环序号 × soulring-scale
最终高度 = 配置高度 + 魂环序号 × soulring-scale

第一个魂环序号为 0,因此保持配置文件中的基础宽高;后续魂环按顺序逐层增加。

show-soulring-delay 会直接作为 Bukkit 定时任务的周期参数使用。通常 20 Tick 约为 1 秒,实际速度会受到服务器运行状态影响。

当前实现会先向在线玩家发送匹配到的魂环贴图,同时再启动按 show-soulring-delay 处理的定时任务。因此该配置用于控制后续定时发送间隔,不代表首次显示前的等待时间。

动画配置 ​

三组动画参数都位于 config.yml。魂环文件通过 animationList 选择需要应用的动画。

动画参数会在插件启动或执行 /lgsr reload 时重新创建并载入。

旋转动画 ​

yaml
RotateAnimation:
  delay: 1000
  angle: 360.0
  duration: 3000
  cycleCount: 1
  fixed: true
  resetTime: 1
配置项类型默认读取值说明
RotateAnimation.delay整数0动画开始延迟
RotateAnimation.angle小数360单次旋转角度
RotateAnimation.duration整数6000单次旋转持续时间
RotateAnimation.cycleCount整数1动画循环次数
RotateAnimation.fixed布尔值true是否使用固定动画状态
RotateAnimation.resetTime整数1动画重置时间参数

旋转方向由插件固定为 DragonCore 世界贴图动画的 z 方向,配置文件中没有单独的方向选项。

位移动画 ​

yaml
TranslateAnimation:
  delay: 0
  distance: 2
  duration: 1000
  cycleCount: 1
  fixed: true
配置项类型默认读取值说明
TranslateAnimation.delay整数0动画开始延迟
TranslateAnimation.distance小数1.1位移动画距离
TranslateAnimation.duration整数3000单次位移动画持续时间
TranslateAnimation.cycleCount整数1动画循环次数
TranslateAnimation.fixed布尔值true是否使用固定动画状态

位移动画方向由插件固定为 DragonCore 世界贴图动画的 z 方向。

缩放动画 ​

yaml
ScaleAnimation:
  delay: 0
  cycleCount: 1
  fixed: false
  fromScale: 10.0
  toScale: 1.0
  duration: 1000
配置项类型默认读取值说明
ScaleAnimation.delay整数0动画开始延迟
ScaleAnimation.cycleCount整数1动画循环次数
ScaleAnimation.fixed布尔值false是否使用固定动画状态
ScaleAnimation.fromScale小数3.0动画开始时的缩放值
ScaleAnimation.toScale小数1.0动画结束时的缩放值
ScaleAnimation.duration整数3000单次缩放动画持续时间

表格中的“默认读取值”是配置项缺失时程序采用的回退值。插件自带 config.yml 中的实际初始值以对应 YAML 示例为准。

魂环文件 ​

插件会递归读取以下目录及其子目录中的全部 .yml 文件:

text
plugins/LyGemSoulRing/soulring/

首次载入时,插件会释放 soulring/示例魂环.yml。目录中每个 YAML 顶层键都是一个宝石 ID,一个文件可以定义多个魂环。

yaml
朱雀宝石:
  path: '魂环/h2.png'
  width: 3
  height: 3
  translateX: 0
  translateY: 2.2
  translateZ: 0
  translateEntityFront: 0
  translateEntityRight: 0
  rotateX: 90
  rotateY: 0
  rotateZ: 0
  through: false
  distance: 64
  alpha: 1
  glow: true
  followEntityDirection: false
  animationList:
    - 'ScaleAnimation'
    - 'RotateAnimation'
    - 'TranslateAnimation'

宝石 ID ​

yaml
朱雀宝石:

顶层键用于匹配宝石插件返回的宝石 ID。只有成功匹配的宝石才会被加入玩家的魂环列表。

如果多个扫描槽位返回相同的宝石 ID,当前代码不会主动去重,该魂环可能按扫描结果重复加入显示列表。

贴图与尺寸 ​

配置项示例说明
path'魂环/h2.png'DragonCore 世界贴图使用的资源路径
width3魂环基础宽度
height3魂环基础高度

width 和 height 会作为第一层魂环的基础尺寸,后续层数再叠加 soulring-scale。

坐标偏移 ​

配置项示例说明
translateX0X 轴显示偏移
translateY2.2Y 轴显示偏移
translateZ0Z 轴显示偏移
translateEntityFront0相对实体前后方向的位移
translateEntityRight0相对实体左右方向的位移

魂环贴图会绑定到释放魂环的玩家实体,不需要在配置中填写实体 UUID。

旋转角度 ​

配置项示例说明
rotateX90X 轴旋转角度
rotateY0Y 轴旋转角度
rotateZ0Z 轴旋转角度

这些参数设置贴图的基础朝向,与 RotateAnimation 的动态旋转效果相互独立。

渲染参数 ​

配置项示例说明
throughfalse是否允许贴图穿透地形显示
distance64贴图显示距离
alpha1贴图透明度
glowtrue是否启用发光效果
followEntityDirectionfalse是否跟随玩家实体方向旋转

这些键会映射到 DragonCore WorldTexture 中的同名字段。

动画列表 ​

yaml
animationList:
  - 'ScaleAnimation'
  - 'RotateAnimation'
  - 'TranslateAnimation'
动画名称对应配置段
ScaleAnimationconfig.yml 中的 ScaleAnimation
RotateAnimationconfig.yml 中的 RotateAnimation
TranslateAnimationconfig.yml 中的 TranslateAnimation

动画名称匹配不区分大小写。列表顺序会作为动画加入世界贴图的顺序。

当前代码只识别以上三种动画名称。无法识别的名称会被忽略。

其他世界贴图字段 ​

除 animationList 外,魂环节点中的键会尝试按名称映射到 DragonCore WorldTexture 的同名字段。插件支持将 YAML 数值、布尔值、字符串和 UUID 文本转换为对应的 Java 字段类型。

如果键名在当前 DragonCore WorldTexture 中不存在,或配置值无法转换为目标字段类型,该项会被忽略。因此新增字段时应使用当前服务端 DragonCore API 实际提供的字段名称和数据类型。

完整配置示例 ​

yaml
# 使用的宝石插件:LyGemReload 或 YeeGem
gem-plugin: 'LyGemReload'

# 扫描的装备槽位
plugin-slot:
  - 'Origin#MainHand'
  - 'Origin#Helmet'

# DragonCore 释放按键
show-soulring-key: 'Z'

# 绽放冷却,单位为毫秒
show-soulring-cooldown: 10000
show-soulring-cooldown-message: '&c魂环绽放冷却中,还需{time}秒!'

# 绽放时执行的指令
show-soulring-command:
  - '[console]tell %player_name% 你释放了魂环'

# 收回时执行的指令
hide-soulring-command:
  - '[console]tell %player_name% 你收回了魂环'

# 最多显示的魂环数量
max-soulring: 10

# 后续魂环递增的宽度和高度
soulring-scale: 4

# 定时展示间隔,单位为服务器 Tick
show-soulring-delay: 5

RotateAnimation:
  delay: 1000
  angle: 360.0
  duration: 3000
  cycleCount: 1
  fixed: true
  resetTime: 1

TranslateAnimation:
  delay: 0
  distance: 2
  duration: 1000
  cycleCount: 1
  fixed: true

ScaleAnimation:
  delay: 0
  cycleCount: 1
  fixed: false
  fromScale: 10.0
  toScale: 1.0
  duration: 1000

修改配置后执行:

text
/lgsr reload

重载会重新读取 config.yml、重新创建三种动画对象,并重新载入 soulring 目录中的魂环定义。已经展开的魂环不会在重载时被主动收回;玩家再次切换魂环后会使用新配置重新生成贴图。