跳到主要内容

配置文件说明

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 则使用 SQLitefalse
database.host数据库地址localhost
database.port数据库端口3306
database.user数据库用户名root
database.password数据库密码your_password
database.database数据库名malkuth
database.prefix表名前缀malkuth
redis.enable启用 Redis 缓存(跨服同步)false
redis.hostRedis 地址127.0.0.1
redis.portRedis 端口6379
redis.passwordRedis 密码(可选)
redis.userRedis 用户名(可选)
file.enable_listen自动监听 goods/shop/recycle/ui/currency.ymlautosell_chest.yml 的变更true
debug.enabled是否启用调试日志总开关false
debug.matcher-detail是否输出逐条 matcher 细节;会显著增加日志量false
debug.matcher-summary是否输出每次匹配动作的摘要日志true
debug.max-lines-per-action单次匹配动作允许输出的最大日志行数;至少为 130
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_nameAssiah 后端发件人名称&6Malkuth 商店
mailbox.assiah.expire_timeAssiah 后端邮件过期时间(毫秒,0=永不过期)604800000
mailbox.assiah.fallbackAssiah 不可用时自动降级到内置邮箱true
调试日志只建议短时开启

debug.enabled: truedebug.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-materialsBIND_EXISTING 模式允许直接绑定的方块材质列表CHEST, BARREL
player-shop-block.place-above.base-materialsPLACE_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.ymlautosell_chest.ymlshop/goods/ui/recycle/ 与语言文件,并重新建立玩家商店方块绑定缓存。同时它还会重置缓存服务与邮箱后端、清空随机商品结果/购物车/回收统计缓存、刷新商店占位符缓存、关闭所有在线玩家当前打开的商店界面,并广播一次跨服缓存失效通知。

语言文件

语言文件位于 plugins/Malkuth/lang/ 目录(默认包含 zh_CN.ymlen_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全局消息前缀