配置说明
LySkillView 的主要配置文件位于插件目录:
config.yml:数据库、蓝量、技能缩减、按键槽位、技能菜单、公共冷却和提示消息。skills/:技能及技能等级配置。插件会加载该目录下的 YAML 文件。技能界面.yml:基于 GermPlugin 的技能菜单界面。技能栏.yml:基于 GermPlugin 的技能栏 HUD。
修改 config.yml、skills/ 或界面文件后,可以使用 /lsv reload 重载配置。重载时会重新连接数据库、注册技能按键、加载技能文件,并重新注册技能栏 HUD。
数据库配置
MySQL 前置要求
LySkillView 使用 MySQL 保存玩家技能等级、技能冷却、技能绑定按键和当前蓝量。必须安装 LyMySQLCore,并确认 LyMySQLCore 已成功连接数据库;否则玩家数据加载、保存、同步以及相关功能不会正常生效。
配置位于 mysql 节点:
yaml
mysql:
databasename: mc2
username: mc2
password: mc1234
port: 3306
ip: 127.0.0.1| 配置项 | 类型 | 说明 |
|---|---|---|
mysql.databasename | 字符串 | 要连接的数据库名称。 |
mysql.username | 字符串 | 数据库用户名。 |
mysql.password | 字符串 | 数据库密码。 |
mysql.port | 整数 | MySQL 端口,示例值为 3306。 |
mysql.ip | 字符串 | MySQL 服务器地址,示例值为 127.0.0.1。 |
插件连接成功后,会创建用于保存玩家数据的表。当前保存表名称由插件名称拼接 _newSave 后转换为小写,表中保存玩家名称和序列化后的数据。
定时保存
yaml
loop-save-thread-time: 6000| 配置项 | 类型 | 说明 |
|---|---|---|
loop-save-thread-time | 整数 | 定时保存间隔,单位为 tick。1200 tick 约为 1 分钟,写入 0 或负数时不启动定时保存任务。 |
玩家退出和插件关闭时也会执行玩家数据保存。定时保存任务仅在代码检测到 mysql.enable 为 true 且数据库连接有效时执行;示例配置中未提供 mysql.enable 配置项,因此如需使用该定时任务,应根据当前插件版本的实际数据库开关配置进行确认。
蓝量配置
基础蓝量
yaml
player-max-mana-default: 100
player-max-mana-placeholder: ''
player-mana-recovery-interval: 1
player-mana-recovery-value: 1
player-mana-recovery-placeholder: ''| 配置项 | 类型 | 说明 |
|---|---|---|
player-max-mana-default | 整数 | 玩家默认最大蓝量。默认值为 100。 |
player-max-mana-placeholder | 字符串 | 最大蓝量加成变量。留空时不使用加成;变量返回值会按百分比参与最大蓝量计算。 |
player-mana-recovery-interval | 整数 | 自动回蓝间隔,单位为秒。默认值为 1。 |
player-mana-recovery-value | 整数 | 每次自动恢复的基础蓝量。默认值为 1。 |
player-mana-recovery-placeholder | 字符串 | 回蓝量加成变量。留空时不使用加成;变量返回值会按百分比参与回蓝量计算。 |
玩家进入服务器时会根据基础值和变量计算最大蓝量、回蓝量,并从数据库读取当前蓝量。当前蓝量不会超过最大蓝量,也不会低于 0。
蓝耗缩减
yaml
mana-reduction-placeholder: ''
mana-reduction-max: 75| 配置项 | 类型 | 说明 |
|---|---|---|
mana-reduction-placeholder | 字符串 | 蓝耗缩减变量。留空时不启用蓝耗缩减。 |
mana-reduction-max | 数字 | 蓝耗缩减上限,按百分比填写,支持小数。示例值 75 表示最多缩减 75% 蓝耗。 |
技能释放时,插件会按照该变量计算缩减后的蓝耗,并使用 mana-reduction-max 限制最大缩减比例。
冷却缩减
yaml
cooling-reduction-placeholder: ''
cooling-reduction-max: 75| 配置项 | 类型 | 说明 |
|---|---|---|
cooling-reduction-placeholder | 字符串 | 冷却缩减变量。留空时不启用冷却缩减。 |
cooling-reduction-max | 数字 | 冷却缩减上限,按百分比填写,支持小数。示例值 75 表示最多缩减 75% 冷却。 |
技能释放时,插件会按照该变量计算实际冷却时间,并使用 cooling-reduction-max 限制最大缩减比例。
技能槽位与按键
yaml
register-skill-slot:
'KEY_Z': '技能槽位1'
'KEY_X': '技能槽位2'
'KEY_C': '技能槽位3'
'KEY_V': '技能槽位4'
'KEY_B': '技能槽位5'register-skill-slot 用于注册 GermPlugin 按键,并将按键绑定到技能界面中的槽位组件。
| 配置内容 | 说明 |
|---|---|
键名,例如 KEY_Z | 必须是 GermPlugin 支持的 KeyType 名称。插件会尝试注册该按键。 |
槽位名,例如 技能槽位1 | 必须对应 技能界面.yml 中实际存在的界面组件。 |
按键名称中的 KEY_ 前缀会保留在配置中。PlaceholderAPI 变量中的按键名称会省略此前缀,例如 KEY_Z 对应 %lsv_Z:skill%。
如果按键无法注册,或对应的界面组件不存在,插件会在控制台输出错误信息,但仍会继续处理其他配置。
默认槽位贴图
yaml
default-slot-texture: 'local<->textures/gui/技能视图/slot.png'| 配置项 | 类型 | 说明 |
|---|---|---|
default-slot-texture | 字符串 | 技能槽位没有绑定技能时使用的默认贴图路径。 |
技能绑定到槽位后,槽位会显示技能配置中的 skill-icon;没有绑定技能时恢复为该默认贴图。
独立技能菜单
yaml
skill-menu:
战士技能:
- '战士技能1'
- '战士技能2'
- '战士技能3'skill-menu 用于定义独立技能菜单。每个一级键都是菜单 ID,列表内容为该菜单允许显示的技能 ID。
| 配置内容 | 说明 |
|---|---|
skill-menu.<菜单ID> | 菜单 ID,可作为 /lsv open <菜单ID> 的参数。 |
skill-menu.<菜单ID>[] | 该菜单包含的技能 ID。技能必须存在于 skills/ 目录中的技能配置。 |
示例中的配置对应命令:
text
/lsv open 战士技能技能最终能否显示,还会继续检查技能自身的 display-condition。不满足技能显示条件的技能不会出现在菜单中。
公共冷却分组
yaml
gcd-group:
战士技能:
- '战士技能1'
- '战士技能2'
- '战士技能3'gcd-group 用于配置公共冷却分组。一级键是分组 ID,列表内容是技能 ID。
| 配置内容 | 说明 |
|---|---|
gcd-group.<分组ID> | 公共冷却分组名称,名称不能重复。 |
gcd-group.<分组ID>[] | 该组包含的技能 ID。 |
公共冷却的具体时间由技能等级中的 gcd 配置决定,单位为毫秒。技能释放后,如果技能属于某个分组,分组内技能的冷却结束时间会至少延长到该公共冷却时间。
同一个技能可以同时出现在多个公共冷却分组中;释放该技能时,匹配到的多个分组都会参与处理。未配置 gcd 时,默认值为 0。被动技能不会触发公共冷却。
提示消息
配置位于 message 节点。消息中的 & 颜色代码会在发送给玩家时转换为 Minecraft 颜色代码。
yaml
message:
skill-level-up-success: '&f[&e技能系统&f] &e技能升级成功!'
skill-level-up-fail: '&f[&e技能系统&f] &c技能升级失败,升级条件不足!'
skill-cooling: '&f[&e技能系统&f] &7技能冷却中 ,剩余&6{time}&7秒!'
passive-skill-cannot-bind-to-key: '&f[&e技能系统&f] &7被动技能无法绑定。'
skill-level-is-max: '&f[&e技能系统&f] &7已达最大技能等级。'
skill-cast-fail: '&f[&e技能系统&f] &c技能释放失败,释放条件不足!'
skill-cast-fail-from-mana: '&f[&e技能系统&f] &c技能释放失败,魔法值不足{mana}点!'| 配置项 | 说明 |
|---|---|
message.skill-level-up-success | 技能升级成功时发送。 |
message.skill-level-up-fail | 技能升级条件不足时发送。 |
message.skill-cooling | 技能仍在冷却时发送。{time} 会替换为剩余冷却秒数。 |
message.passive-skill-cannot-bind-to-key | 尝试将被动技能绑定到技能按键时发送。 |
message.skill-level-is-max | 技能已经达到最大等级时发送。 |
message.skill-cast-fail | 技能释放条件不满足时发送。 |
message.skill-cast-fail-from-mana | 蓝量不足时发送。{mana} 会替换为本次释放所需的蓝量。 |
技能文件
技能文件放在 skills/ 目录中,插件会加载该目录下的 YAML 文件。技能的详细字段不属于 config.yml,主要包括:
- 技能排序:
index - 技能名称:
skill-name - 技能图标:
skill-icon - 技能显示条件:
display-condition - 触发方式:
trigger-mode - 技能等级:
skill-level - 技能等级中的冷却、蓝耗、升级条件、升级物品、升级命令、释放条件、释放命令和公共冷却
技能菜单中的技能 ID必须与技能文件中的一级键一致。技能等级配置中的 gcd 只有在 config.yml 配置了对应的 gcd-group 后,才会对同组技能产生公共冷却效果。
界面文件
技能界面.yml
该文件定义技能菜单界面,插件会读取名为 技能界面 的 GermPlugin GUI。以下组件名称会被插件直接使用,修改名称时必须同步修改 register-skill-slot 或相关界面逻辑:
| 组件名称 | 用途 |
|---|---|
技能描述 | 显示当前选中技能的等级描述。 |
升级技能 | 点击后尝试升级当前选中的技能。 |
滚动条 | 承载技能列表并提供滚动显示。 |
技能槽位1 等 | 用于将主动技能绑定到已注册的技能按键。 |
技能图标 | 技能列表中的图标模板。 |
技能背景 | 技能列表中的背景模板。 |
技能名称 | 技能列表中的名称模板。 |
技能列表中的模板组件由插件复制生成,技能名称中的 {level} 和 {max} 会分别替换为玩家当前等级和技能最大等级。
技能栏.yml
该文件定义技能栏 HUD。示例配置为 Z、X、C、V、B 五个按键显示技能图标、剩余冷却秒数和冷却遮罩。HUD 中使用的变量包括:
%lsv_Z:icon%、%lsv_X:icon%等:按键槽位上的技能图标路径。%lsv_Z:cdsecond%、%lsv_X:cdsecond%等:剩余冷却秒数。%lsv_Z:cd%、%lsv_X:cd%等:剩余冷却毫秒数。%lsv_Z:cdmax%、%lsv_X:cdmax%等:当前技能最大冷却毫秒数。
如果新增或删除 register-skill-slot 中的按键,需要同时调整 技能栏.yml 中对应的图标、冷却文本和冷却图片组件,否则 HUD 不会自动生成对应显示。