配置文件说明
config.yml
主配置文件,位于 plugins/Malkuth/config.yml,用于配置数据库连接和文件监听。
# 连接配置
database:
# 是否启用数据库,否则 sqlite
enable: false
# 地址
host: localhost
# 端口
port: 3306
# 用户名
user: root
# 密码
password: "your_password"
# 数据库
database: "malkuth"
# 表名前缀
prefix: "malkuth"
# 使用 Redis 缓存可高效同步跨服数据,避免数据库卡顿
redis:
enable: false
host: 127.0.0.1
port: 6379
# password:
# user
file:
enable_listen: true
# 调试日志配置
# matcher-detail 会输出大量匹配细节,仅建议短时排查时开启
debug:
enabled: false
matcher-detail: false
matcher-summary: true
max-lines-per-action: 30
# 购物车配置
cart:
max-capacity: 50
# 通知配置
notification:
enabled: true
max-queue-per-player: 100
mailbox:
backend: internal
cleanup-days: 7
assiah:
sender_name: '&6Malkuth 商店'
expire_time: 604800000
fallback: true
配置项说明
| 配置项 | 说明 | 默认值 |
|---|---|---|
database.enable | 启用 MySQL,false 则使用 SQLite | false |
database.host | 数据库地址 | localhost |
database.port | 数据库端口 | 3306 |
database.user | 数据库用户名 | root |
database.password | 数据库密码 | your_password |
database.database | 数据库名 | malkuth |
database.prefix | 表名前缀 | malkuth |
redis.enable | 启用 Redis 缓存(跨服同步) | false |
redis.host | Redis 地址 | 127.0.0.1 |
redis.port | Redis 端口 | 6379 |
redis.password | Redis 密码(可选) | 空 |
redis.user | Redis 用户名(可选) | 空 |
file.enable_listen | 自动监听 goods/、shop/、recycle/、ui/、currency.yml 与 autosell_chest.yml 的变更 | true |
debug.enabled | 是否启用调试日志总开关 | false |
debug.matcher-detail | 是否输出逐条 matcher 细节;会显著增加日志量 | false |
debug.matcher-summary | 是否输出每次匹配动作的摘要日志 | true |
debug.max-lines-per-action | 单次匹配动作允许输出的最大日志行数;至少为 1 | 30 |
cart.max-capacity | 购物车最大商品种类数 | 50 |
notification.enabled | 启用通知系统(拍卖成交、邮箱到达等) | true |
notification.max-queue-per-player | 每个离线玩家的待投递通知队列上限 | 100 |
mailbox.backend | 邮箱后端:internal(内置)或 assiah(对接 Assiah 插件) | internal |
mailbox.cleanup-days | 已领取邮件自动清理天数(每小时执行一次) | 7 |
mailbox.assiah.sender_name | Assiah 后端发件人名称 | &6Malkuth 商店 |
mailbox.assiah.expire_time | Assiah 后端邮件过期时间(毫秒,0=永不过期) | 604800000 |
mailbox.assiah.fallback | Assiah 不可用时自动降级到内置邮箱 | true |
调试日志只建议短时开启
当 debug.enabled: true 且 debug.matcher-detail: true 时,回收、上传限制和物品匹配链路会输出大量明细日志。它适合排查某一件物品为什么被拒绝或匹配到了哪条规则,不适合作为长期常驻监控;排查完成后建议立即关闭。
玩家商店方块
config.yml 还包含一组玩家商店方块绑定配置,控制 /malkuth place 的目标方块、生成模式与保护行为。
player-shop-block:
enabled: true
target-distance: 5
# BIND_EXISTING: 绑定玩家当前指向方块
# PLACE_ABOVE: 在玩家指向方块上方生成方块并绑定
mode: BIND_EXISTING
bind-existing:
allowed-materials:
- CHEST
- BARREL
place-above:
base-materials:
- STONE
- COBBLESTONE
require-air-above: true
generated-material: CHEST
protection:
disable-vanilla-interact: true
deny-break-by-others: true
| 配置项 | 说明 | 默认值 |
|---|---|---|
player-shop-block.enabled | 总开关,关闭后 /malkuth place 与绑定方块交互都会失效 | true |
player-shop-block.target-distance | 玩家视线检测距离;源码会把该值限制在 1~32 之间 | 5 |
player-shop-block.mode | 绑定模式:BIND_EXISTING 绑定现有方块,PLACE_ABOVE 在目标方块上方生成并绑定 | BIND_EXISTING |
player-shop-block.bind-existing.allowed-materials | BIND_EXISTING 模式允许直接绑定的方块材质列表 | CHEST, BARREL |
player-shop-block.place-above.base-materials | PLACE_ABOVE 模式允许作为底座的方块材质列表 | STONE, COBBLESTONE |
player-shop-block.place-above.require-air-above | 生成模式下是否要求目标方块上方必须为空气 | true |
player-shop-block.place-above.generated-material | 生成模式下实际放置并绑定的方块材质 | CHEST |
player-shop-block.protection.disable-vanilla-interact | 右键已绑定方块打开商店后,是否取消原版交互(如箱子/木桶界面) | true |
player-shop-block.protection.deny-break-by-others | 是否阻止非店主破坏已绑定方块 | true |
单服使用
如果你只有一个服务器且不需要 MySQL,可以将 database.enable 设为 false,插件会自动使用 SQLite 存储数据,无需额外配置数据库。
跨服同步
如果你使用 BungeeCord 或 Velocity 群组服,需要同时启用 MySQL 和 Redis。所有子服连接同一个数据库和 Redis 实例,即可实现商城数据跨服同步。
当前重载范围(按源码)
/malkuth reload 会重载主配置(含 player-shop-block.* 与 debug.*)、currency.yml、autosell_chest.yml、shop/、goods/、ui/、recycle/ 与语言文件,并重新建立玩家商店方块绑定缓存。同时它还会重置缓存服务与邮箱后端、清空随机商品结果/购物车/回收统计缓存、刷新商店占位符缓存、关闭所有在线玩家当前打开的商店界面,并广播一次跨服缓存失效通知。
语言文件
语言文件位于 plugins/Malkuth/lang/ 目录(默认包含 zh_CN.yml 与 en_US.yml),你可以自定义插件中所有提示消息的文本。
格式说明
- 支持
&颜色代码(如&a绿色、&c红色、&e黄色) - 使用
{0}、{1}、{2}等位置变量替换动态内容
消息分类
语言文件中的消息按功能模块分类:
| 分类 | 说明 |
|---|---|
auction-* | 拍卖行相关消息(竞拍成功/失败、余额不足等) |
player-shop-* | 玩家商店消息(购买成功、售罄等) |
global-market-* | 全球市场相关消息(筛选、排序、搜索、购买/下架等) |
upload-* | 上架相关消息(上架成功、黑白名单拦截等) |
edit-* | 编辑商品消息 |
recycle-* | 回收系统消息(回收成功、无可回收物品等) |
order-* | 挂单相关消息 |
buy-* | 购买相关消息(无权限、限购等) |
mailbox-* | 邮箱消息(登录提醒、领取成功等) |
favorite-* | 收藏夹消息 |
cart-* | 购物车消息(加入、移除、结算等) |
gift-* | 赠送消息(输入玩家名、赠送成功等) |
pricecompare-* | 比价搜索消息 |
ui-* | 聊天输入与界面交互提示(搜索/数量输入等) |
item-source-* | 物品源挂钩与解析错误提示 |
matcher-* | 物品匹配拒绝原因提示(source / nbt / locked) |
limit-* | 新限购系统提示(商店级/商品级数量与金额限制) |
config-* | 配置加载与热重载提示(goods/shop/ui/currency/recycle) |
cross-server-* | 跨服同步提示 |
schedule-* | 定时任务提示 |
command-* | 命令执行提示(重载、调试、同步等) |
system-* | 系统级提示(权限不足、商店不可用等) |
serializer-* | 配置序列化错误与校验提示 |
banner-* | 启动横幅文本 |
prefix | 全局消息前缀 |