Skip to content

配置说明

LyCamp 的主配置文件为 plugins/LyCamp/config.yml。配置会在插件启动和执行 /lyzy reload 时重新读取。

修改 attribute-plugin 或数据库相关配置后,建议重启服务器。修改数据库配置前请先备份玩家数据。

配置文件与数据目录

文件 / 目录用途
config.yml变量默认文本、属性插件、消息、数据库、掉落、PVP 世界和阵营配置
data/<玩家UUID>.yml未使用 MySQL 时保存玩家阵营和声望数据

未启用 MySQL 时,玩家数据保存为 YAML 文件。玩家数据包含以下字段:

字段说明
camp玩家当前阵营;未加入阵营时为空
cumulative-prestige-value累计阵营声望
now-prestige-value当前可用阵营声望
today-prestige-value当日剩余可获得的阵营声望
last-refresh-time上次每日声望刷新时间
last-kill-time上次完成击杀的时间

默认配置结构

以下示例包含配置文件中的主要结构。阵营名称、世界名称和声望区间可以按服务器实际内容增加或修改。

yaml
placeholder:
  no-camp: '&7无阵营'
  no-tag: '&7无称号'
  has-first-kill: '&a今日首杀未完成'
  not-first-kill: '&c今日首杀已完成'

attribute-plugin: ''

message:
  join-camp: '&7你加入了 &6{camp} &7阵营!'
  quit-camp: '&7你退出了 &6{camp} &7阵营! 当前和累计声望已被清空.'
  give-prestige: '&7你获得了 &a{value} &7点阵营声望, 今日还可获得 &a{today_value} &7点阵营声望!'
  take-prestige: '&7你失去了 &c{value} &7点阵营声望!'
  today-max-prestige: '&7今日可获得阵营声音已达上限!'
  cumulative-max-prestige: '&7累计阵营声望已达上限 {value} 点!'
  target-not-camp: '&c对方没有加入阵营, 无法造成伤害!'
  player-not-camp: '&c您还没有加入阵营, 无法造成伤害!'
  must-have-camp-to-teleport: '&c你还没有加入阵营, 无法进入该地图!'
  allow-command: '&7PVP地图内禁止使用该指令'

mysql:
  enable: false
  databasename: mc2
  username: mc2
  password: mc1234
  port: 3306
  ip: 127.0.0.1

force-drop-item-lore:
  - '&6在PVP地图内死亡可能掉落'

independent-of-the-world-force-drop-item-lore:
  - '&6在PVP地图内死亡&c必定&6掉落'

pvp-world:
  'pvp_world':
    force-drop-item-amount: 2
    drop-item-message:
      - '&7您被 &c{camp} &7阵营的 &c{killer} &7所击杀, 您身上的如下物品已掉落在地:'
    abnormal-death-drop-item-message:
      - '&7您意外死亡或离线, 您身上的如下物品已掉落在地:'
    pvp-start-time: '0 0 9 * * ?'
    pvp-end-time: '0 0 18 * * ?'
    not-pvp-message:
      - '&7不在可PVP时间内,无法造成伤害!'
    respawn-location:
      潜伏者: '100,100,100,0,0'
      保卫者: '-100,100,-100,0,0'
    kill-give-prestige: 1
    dead-take-prestige: 1
    must-have-camp-to-teleport: true
    allow-command:
      - '/say'

camp:
  潜伏者:
    attribute:
      - '攻击力+5'
    hostiles:
      - '保卫者'
    prestige:
      1-1000:
        tag: '&6潜伏者新人'
        attribute:
          - '攻击力+10'
        command:
          - '[console]tell %player_name% 你获得了称号: {tag}'
    every-day-max-get-prestage-value:
      default: 1000
      vip_1: 2000
    every-day-first-kill-run-command:
      - '[console]tell %player_name% 你第一次击杀了敌对玩家'

placeholder

placeholder 用于设置 PlaceholderAPI 变量在特定状态下返回的默认文本。

配置项生效场景
placeholder.no-camp玩家没有阵营时的阵营文本
placeholder.no-tag玩家没有称号,或当前累计声望没有匹配到称号时的文本
placeholder.has-first-kill玩家当天尚未完成首杀时的文本
placeholder.not-first-kill玩家当天已经完成首杀时的文本

颜色符号使用 &,例如 &a&7

attribute-plugin

用于选择 LyCamp 写入阵营属性和声望属性的属性插件。

yaml
attribute-plugin: ''
配置值说明
空字符串不写入外部属性插件
AttributePlus使用 AttributePlus 写入属性
SX-Attribute2使用 SX-Attribute 2 写入属性
SX-Attribute3使用 SX-Attribute 3 写入属性
AttributeSystem使用 AttributeSystem 写入属性
ItemLoreOrigin使用 ItemLoreOrigin 写入属性

写入的属性由两部分组成:

  • 阵营的 attribute
  • 当前累计声望匹配到的 prestige.<区间>.attribute

修改该配置后建议重启服务器,并确认对应属性插件已正常加载。未选择属性插件时,LyCamp 不会向外部属性插件写入属性。

message

用于设置阵营、声望、PVP 世界和指令限制相关提示文本。

配置项用途可用替换内容
message.join-camp玩家加入阵营时提示{camp}
message.quit-camp玩家退出阵营时提示{camp}
message.give-prestige玩家获得当前声望时提示{value}{today_value}
message.take-prestige玩家失去当前声望时提示{value}
message.today-max-prestige每日可获得声望达到上限时提示
message.cumulative-max-prestige累计声望达到上限时提示{value}
message.target-not-camp目标没有阵营时提示
message.player-not-camp攻击者没有阵营时提示
message.must-have-camp-to-teleport玩家不满足进入PVP世界条件时提示
message.allow-commandPVP世界内禁止使用指令时提示

文本中的 & 会转换为 Minecraft 颜色代码。

PVP 世界还可以使用以下消息配置:

  • pvp-world.<世界名>.drop-item-message:玩家被其他玩家击杀并掉落物品时显示。
  • pvp-world.<世界名>.abnormal-death-drop-item-message:玩家异常死亡或离线并掉落物品时显示。
  • pvp-world.<世界名>.not-pvp-message:不在PVP开放时间内攻击玩家时显示。

其中掉落提示支持以下替换内容:

占位内容说明
{camp}击杀者所属阵营
{killer}击杀者名称

数据库配置

yaml
mysql:
  enable: false
  databasename: mc2
  username: mc2
  password: mc1234
  port: 3306
  ip: 127.0.0.1
配置项说明
mysql.enable是否启用 MySQL 存储
mysql.databasename数据库名称
mysql.username数据库用户名
mysql.password数据库密码
mysql.port数据库端口
mysql.ip数据库地址

YAML 存储

mysql.enable: false 时,玩家数据保存到:

text
plugins/LyCamp/data/<玩家UUID>.yml

MySQL 存储

mysql.enable: true 时,玩家数据保存到 MySQL 数据库,数据表名称使用插件名称 LyCamp,表中保存玩家名称和序列化后的玩家数据。

MySQL 前置要求

启用 MySQL 存储时,必须安装 LyMySQLCore,并确认 LyMySQLCore 已成功连接数据库。只有在前置正常加载且数据库连接成功后,LyCamp 的 MySQL 数据读取、保存和相关数据功能才会生效。

启用 MySQL 后,玩家进入服务器前会检查数据库连接状态;数据库尚未连接时,玩家无法进入服务器。

修改 mysql.enable、数据库地址、端口、数据库名、用户名或密码后,建议重启服务器。切换 YAML 和 MySQL 存储方式前请先备份原有玩家数据。

掉落配置

force-drop-item-lore

yaml
force-drop-item-lore:
  - '&6在PVP地图内死亡可能掉落'

物品的 Lore 只要包含列表中的任意一段文本,就会加入普通强制掉落候选列表。

普通强制掉落只在配置的PVP世界中生效,并且受对应世界的 force-drop-item-amount 限制。插件会从玩家背包前36个格子中随机选择物品掉落。

independent-of-the-world-force-drop-item-lore

yaml
independent-of-the-world-force-drop-item-lore:
  - '&6在PVP地图内死亡&c必定&6掉落'

物品的 Lore 只要包含列表中的任意一段文本,就会在PVP世界的死亡或离线掉落处理中必定掉落。

此类掉落独立于普通世界掉落配置,不受 force-drop-item-amount 限制。

PVP 世界配置

PVP 世界配置位于 pvp-world.<世界名> 下。世界名称必须与服务器中的世界名称一致。

yaml
pvp-world:
  'pvp_world':
    force-drop-item-amount: 2
    drop-item-message:
      - '&7您被 &c{camp} &7阵营的 &c{killer} &7所击杀, 您身上的如下物品已掉落在地:'
    abnormal-death-drop-item-message:
      - '&7您意外死亡或离线, 您身上的如下物品已掉落在地:'
    pvp-start-time: '0 0 9 * * ?'
    pvp-end-time: '0 0 18 * * ?'
    not-pvp-message:
      - '&7不在可PVP时间内,无法造成伤害!'
    respawn-location:
      潜伏者: '100,100,100,0,0'
      保卫者: '-100,100,-100,0,0'
    kill-give-prestige: 1
    dead-take-prestige: 1
    must-have-camp-to-teleport: true
    allow-command:
      - '/say'
配置项类型说明
force-drop-item-amount整数普通强制掉落时随机掉落的背包格子数量。一个格子中的整组物品会一起掉落
drop-item-message文本列表被其他玩家击杀并发生物品掉落时显示的提示
abnormal-death-drop-item-message文本列表非玩家击杀、异常死亡或玩家离线时发生物品掉落时显示的提示
pvp-start-timeCron 字符串PVP 开始时间
pvp-end-timeCron 字符串PVP 结束时间
not-pvp-message文本列表非PVP开放时间内攻击玩家时显示的提示
respawn-location映射各阵营在该世界中的重生点
kill-give-prestige整数击杀敌对阵营玩家时,击杀者增加的当前声望
dead-take-prestige整数玩家死亡时扣除的当前声望
must-have-camp-to-teleport布尔值是否限制没有阵营或没有对应重生点的玩家进入该世界
allow-command文本列表非OP玩家在该PVP世界中允许使用的命令前缀

PVP 时间

pvp-start-timepvp-end-time 使用 Quartz 风格的六段 Cron 表达式,字段顺序为:

text
秒 分 时 日 月 周

示例:

yaml
pvp-start-time: '0 0 9 * * ?'
pvp-end-time: '0 0 18 * * ?'

以上配置表示每天 09:00:00 开始、每天 18:00:00 结束。PVP时间支持跨天时间段。

如果开始或结束时间使用:

text
* * * * * ?

则对应边界不限制时间。

PVP时间之外,玩家无法在该世界对其他玩家造成伤害;攻击操作会被拦截,并显示 not-pvp-message

重生点格式

yaml
respawn-location:
  潜伏者: '100,100,100,0,0'
  保卫者: '-100,100,-100,0,0'

位置格式为:

text
x,y,z,yaw,pitch
部分说明
xX 坐标
yY 坐标
zZ 坐标
yaw水平朝向
pitch垂直朝向

respawn-location 的键名必须与 camp 下的阵营名称一致。玩家死亡后,如果当前阵营存在对应重生点,则在该位置重生。

进入和离开PVP世界

must-have-camp-to-teleport: true 时,玩家必须满足以下条件才能进入该世界:

  • 已加载玩家数据。
  • 已加入有效阵营。
  • 该阵营在 respawn-location 中配置了重生点。

插件提供的 /lyzy tp 会根据玩家阵营传送到对应重生点。玩家从PVP世界离开时,非OP玩家的传送会被阻止;OP不受此限制。

PVP 世界内指令

allow-command 配置的是命令前缀,不是完整命令列表。

yaml
allow-command:
  - '/say'

非OP玩家在该PVP世界内只能使用消息以配置前缀开头的命令。未匹配前缀的命令会被拦截,并显示 message.allow-command 中的提示文本。

阵营配置

阵营配置位于 camp.<阵营名> 下。阵营名称会被其他配置中的 hostilesrespawn-location 引用。

yaml
camp:
  潜伏者:
    attribute:
      - '攻击力+5'
    hostiles:
      - '保卫者'
    prestige:
      1-1000:
        tag: '&6潜伏者新人'
        attribute:
          - '攻击力+10'
        command:
          - '[console]tell %player_name% 你获得了称号: {tag}'
    every-day-max-get-prestage-value:
      default: 1000
      vip_1: 2000
    every-day-first-kill-run-command:
      - '[console]tell %player_name% 你第一次击杀了敌对玩家'
配置项类型说明
attribute文本列表加入阵营后获得的基础属性
hostiles文本列表该阵营可以攻击的敌对阵营名称列表
prestige映射按累计声望匹配称号、属性和命令
every-day-max-get-prestage-value映射每日可获得声望上限及对应权限上限
every-day-first-kill-run-command文本列表每日首次击杀敌对阵营玩家时执行的命令

只有当攻击者和目标都已加载有效阵营,并且目标阵营位于攻击者的 hostiles 列表中时,PVP世界内的攻击才允许继续处理。

prestige 声望配置

prestige 的键支持两种格式:

  • 最小值-最大值:表示一个闭区间。
  • 固定值:表示只匹配该声望值。
yaml
prestige:
  1-1000:
    tag: '&6新人'
    attribute:
      - '攻击力+10'
    command:
      - '[console]tell %player_name% 你获得了称号: {tag}'
  1001-10000:
    tag: '&6精英'
  20000:
    tag: '&6固定声望称号'
配置项类型说明
prestige.<区间或固定值>.tag文本该声望阶段对应的称号
prestige.<区间或固定值>.attribute文本列表玩家达到该阶段时获得的属性
prestige.<区间或固定值>.command文本列表玩家首次达到该阶段时执行的命令

累计声望达到某个阶段的最小值时,插件会执行该阶段的 command。阵营的累计声望上限取所有声望配置键中的最大值。

当前累计声望匹配到的声望阶段属性会与阵营基础属性一起写入所选属性插件。

退出阵营时,玩家的累计声望、当前声望、每日声望和每日刷新记录会被清零。

每日声望上限

yaml
every-day-max-get-prestage-value:
  default: 1000
  vip_1: 2000
说明
default默认每日可获得声望上限
其它键权限对应的每日声望上限

default 外,配置键中的下划线 _ 会转换为权限节点中的点号 .

yaml
vip_1: 2000

对应权限节点:

text
vip.1

玩家拥有多个匹配的每日上限权限时,使用数值最高的上限。没有配置每日上限时,默认值为 1000

每日声望会按照服务器默认时区在当天零点刷新。每日首杀状态也按服务器默认时区的日期判断。

阵营命令

称号命令和每日首杀命令支持以下前缀:

前缀执行身份
[console]控制台执行命令
[op]临时以OP身份执行玩家命令
无前缀由玩家自身执行命令

命令执行前会解析 PlaceholderAPI 变量。声望称号命令中的 {tag} 会替换为当前达到的称号。

示例:

yaml
command:
  - '[console]tell %player_name% 你获得了称号: {tag}'

每日首杀命令在玩家当天首次击杀敌对阵营玩家时执行:

yaml
every-day-first-kill-run-command:
  - '[console]tell %player_name% 你第一次击杀了敌对玩家'

配置重载

执行以下命令可以重新读取配置:

text
/lyzy reload

该命令仅OP可以执行。重载时会重新读取阵营、PVP世界、PlaceholderAPI 默认文本和数据库配置,并重新启动自动保存与每日刷新任务。

数据库开关和属性插件选择属于启动相关配置,修改后仍建议重启服务器。