Skip to content

上一页:安装 · 下一页:命令与权限

⚙️ 配置文件 config.yml 详解

QinhCoreLib(下称 QCL)只有一个主配置文件:plugins/QinhCoreLib/config.yml。它在首次启动时自动生成默认内容,本页逐段逐项讲清每个键的默认值、可选值、作用、改完之后是 /qcl reload 即可还是必须重启服务器

📌 通用规则:凡涉及数据库连接方式切换模块开关的改动,都建议重启服务器最稳妥;纯数值/开关(如 debug、economy 默认源、javascript 调试)大多 /qcl reload 即可。具体每项下方都有标注。


🗂️ 完整 config.yml 原文

下面是 QCL 1.2.0 默认生成的完整内容,可直接作为照抄模板:

yaml
database:
  type: sqlite           # sqlite 或 mysql
  sqlite:
    data-folder: data    # 相对插件目录的数据文件夹
  mysql:
    host: localhost
    port: 3306
    database: qinhcorelib
    username: root
    password: ""
debug:
  enabled: false
  prefix: "[QinhCoreLib-Debug]"
economy:
  default-provider: auto # auto|vault|excellenteconomy|ee|playerpoints|pp。auto:有 currency 时优先 EE,否则 Vault>EE>PlayerPoints
  default-currency: money # EE 货币 id(money/silver/gold…),Vault/PlayerPoints 忽略
javascript:
  enabled: true
  default-function: main # 脚本引用不带函数名时调用的默认函数
  debug:
    print-stacktrace: false
attribute:               # 属性后端选择(全生态统一从这里读)
  backend: native        # native(自带原生属性,无需属性插件)| attributeplus | auto
modules:                 # 可禁用不需要的模块(默认全 true)
  config: true
  database: true
  reflection: true
  modelengine: true
  customcrops: true
  craftengine: true
  mythicmobs: true
  neigeitems: true
  mmoitems: true
  gui: true
  action: true
  pdc: true
  item: true
  hologram: true
  scheduler: true
  condition: true
  expression: true
  script: true
  economy: true
  customblock: true
  assembly: true

🗡️ attribute — 属性后端

默认值可选值作用
attribute.backendnativenative / attributeplus / autonative=QCL 自带原生属性,无需任何属性插件attributeplus=交 AttributePlus;auto=有第三方则优先,否则回退 native

全生态(QI/QS/QC/QSt/QF)统一从这里读后端。属性怎么用、怎么自定义 → 属性系统


🛢️ database — 数据存储

QCL 为整个秦淮生态提供统一的数据存储。

默认值可选值作用
database.typesqlitesqlitemysql选择存储后端
database.sqlite.data-folderdata任意目录名SQLite 数据文件夹(相对插件目录)
database.mysql.hostlocalhost主机/IPMySQL 地址
database.mysql.port3306端口号MySQL 端口
database.mysql.databaseqinhcorelib库名MySQL 数据库名
database.mysql.usernameroot用户名MySQL 账号
database.mysql.password""(空)密码字符串MySQL 密码

🧭 何时用哪个?

场景推荐
单服、玩家不多、想省事sqlite(零配置、开箱即用)
多服互通 / 大型服 / 需要外部读取数据mysql

📁 SQLite 数据目录结构

type: sqlite 时,数据存放在 plugins/QinhCoreLib/data/(即 data-folder 指定的目录):

plugins/QinhCoreLib/data/
├── global.db        # 全局库(跨玩家的公共数据)
├── {uuid}.db        # 每个玩家一个独立库,文件名是玩家 UUID
├── {uuid}.db
└── ...

💡 global.db 存全局数据,每个玩家有一个以其 UUID 命名的独立库文件。备份时把整个 data/ 目录打包即可。

⚠️ 改动后须知

  • 切换 type(sqlite ⇄ mysql)或修改 MySQL 连接参数:必须重启服务器。数据库连接在启动时建立,/qcl reload 不会重连。
  • 切换后数据不会自动迁移,两套后端是独立的。

🐛 debug — 调试输出

默认值可选值作用
debug.enabledfalsetrue/false是否打印调试日志
debug.prefix[QinhCoreLib-Debug]任意字符串调试日志前缀

排查问题时把 enabled 改为 true,控制台会输出更详细的内部日志,每行带 prefix 前缀方便过滤。

⚠️ 改动后须知

  • /qcl reload 即可生效(重载会刷新 config)。

💰 economy — 经济对接

QCL 统一封装多个经济插件,子插件无需关心底层用的是哪个经济。

默认值可选值作用
economy.default-providerautoautovaultexcellenteconomy/eeplayerpoints/pp默认经济提供者
economy.default-currencymoneyEE 货币 id(如 money/silver/gold默认货币 id

🔄 default-provider 的 auto 逻辑

当设为 auto 时,QCL 按如下规则自动挑选:

  • 指定了 currency(货币 id)时 → 优先用 ExcellentEconomy(EE)(因为只有 EE 支持多货币)。
  • 没指定 currency 时 → 优先级为 Vault > EE > PlayerPoints,谁可用就用谁。

如果你只想锁定某一个经济插件,把 default-provider 直接写成 vault / ee / pp 即可。

💵 default-currency 何时有意义?

提供者是否使用 default-currency
ExcellentEconomy(EE)✅ 使用,必须是有效的 EE 货币 id
Vault❌ 忽略(Vault 单货币)
PlayerPoints❌ 忽略

也就是说,default-currency 只在用 EE 时才有意义,决定默认操作哪种货币。

🔗 在 GUI 等地方写经济动作时,可以用更精确的格式覆盖默认值,例如 excellenteconomy:gold:50,详见 命令与权限 与开发文档 经济API

⚠️ 改动后须知

  • /qcl reload 即可生效(reload 会重载经济)。

📜 javascript — 脚本引擎

QCL 内置 JavaScript 脚本引擎,供子插件挂钩逻辑(如 QI 的合成校验)。

默认值可选值作用
javascript.enabledtruetrue/false是否启用脚本引擎
javascript.default-functionmain任意函数名引用不带函数名时调用的默认函数
javascript.debug.print-stacktracefalsetrue/false脚本报错时是否打印完整堆栈

🧩 脚本路径格式

脚本引用格式为:命名空间:相对路径.js[:函数名]

qinhitems:hooks/craft.js:check   # 调用 qinhitems 命名空间下 hooks/craft.js 的 check 函数
qinhitems:hooks/craft.js         # 不写函数名 → 调用 default-function(默认 main)
  • default-function:当引用不带函数名时,调用的就是这个默认函数(默认 main)。
  • print-stacktrace:开发/排错时设 true,脚本抛异常会打印完整 Java 堆栈,便于定位。

⚠️ 改动后须知

  • /qcl reload 会重载脚本,多数改动可热重载;如关闭/开启 enabled 建议重启确保彻底。

🔗 脚本开发详见 脚本API


🧱 modules — 模块开关

QCL 是模块化的,modules 段可以逐个禁用不需要的模块,默认全部 true

各模块对应能力

模块名能力
config配置加载(基础,建议保持开启)
database数据存储(SQLite/MySQL)
reflection反射工具
modelengineModelEngine 对接(模型实体)
customcropsCustomCrops 对接(作物)
craftengineCraftEngine 对接(自定义方块/物品)
mythicmobsMythicMobs 对接
neigeitemsNeigeItems 对接
mmoitemsMMOItems 对接
gui自定义 GUI 系统
action动作系统
pdcPersistentDataContainer 数据存储
item物品系统(含统一物品源引用)
hologram全息文字
scheduler调度器
condition条件系统
expression表达式求值
script脚本系统
economy经济对接
customblock自定义方块
assembly装配/组装

🔧 如何禁用模块

把对应键改成 false 即可,例如不需要 MythicMobs 对接:

yaml
modules:
  mythicmobs: false

⚠️ 禁用的副作用警告

  • 依赖被禁模块的功能会失效。例如禁用 item 后,统一物品源引用、GUI 物品引用、子插件的物品 API 都会受影响。
  • 子插件(QI/QS/QF/QSt 等)可能依赖某些模块。除非确定用不到,否则不要随意禁用 configdatabaseitemactionscripteconomy 等核心模块。
  • 仅当你确定服务器没装对应外部插件时,关掉对应对接模块(如 modelenginemythicmobs)是安全且能省资源的。
  • 禁用某模块后,/qcl status detail 中该模块会显示「未启用」。

⚠️ 改动后须知

  • 模块开关影响初始化流程,建议重启服务器让模块装载/卸载彻底干净。

📋 改动生效方式速查表

配置段reload 够吗?说明
database(连接/类型)❌ 重启连接在启动时建立
debug✅ reload
economy✅ reloadreload 会重载经济
javascript✅ reload(大多)开关 enabled 建议重启
modules❌ 重启影响模块装载

📖 继续阅读