跳到主要内容

配置文件说明

config.yml​

主配置文件,位于 plugins/Malkuth/config.yml,用于配置数据库、Redis、文件监听、MiniMessage、上架编辑器、恢复服务、交易安全、邮箱后端和玩家商店方块等全局行为。

# 连接配置
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:
# 是否启用 goods/shop/ui/recycle 等业务配置文件监听;config.yml 自身会常驻监听以便该开关可热切换
enable_listen: true

# 物品溢出配置
# 当玩家背包满时,购买、下架、上架回滚等操作产生的物品如何处理
item-overflow:
# 是否将溢出物品掉落在玩家脚下;关闭时已接入兜底的路径会写入邮箱
drop_on_ground: true
# 掉落的物品是否标记归属;开启后会阻止其他玩家拾取该溢出掉落物
# 同时会阻止漏斗、漏斗矿车吸取他人的归属掉落物,并阻止归属不一致的掉落物互相合并
drop_item_owner: false
# 认主保护时长,单位秒;超过后任何玩家均可拾取
# 设为 0 或负数表示直到掉落物消失前始终只有归属玩家可拾取
drop_item_owner_timeout: 60

# 调试日志配置
# Debug 总开关与各商店模式开关仅通过 /malkuth debug 命令临时启用,重启后恢复关闭
# matcher-detail 会输出大量匹配细节,仅建议短时排查时开启
debug:
matcher-detail: false
matcher-summary: true
max-lines-per-action: 30
# 货币链路:扣款/给予/余额校验/离线补发,排查「钱扣了但没拿到东西」时开启
currency: false
# 数据库链路:交易落库、结算写入,排查数据不一致时开启
database: false
# 锁链路:并发扣款、重复上架时的锁竞争与超时
lock: false

# MiniMessage 文本解析配置
# 在 PAPI 变量解析之后对 UI 标题、物品名/lore、商品展示等文本执行 MiniMessage 标签解析
# (如 <red>、<gradient:#FF0000:#00FF00>、<bold> 等),解析结果会转为 Legacy 色码继续兼容 & 色码。
minimessage:
# 是否启用 MiniMessage 解析,默认关闭以保持历史文本行为。
# Adventure、MiniMessage、Examination 仅作为 compileOnly 依赖,不会打包进 Malkuth.jar。
# 只有服务端提供完整依赖且 Minecraft 版本为 1.16 及以上时,才会加载 API 实现;
# 依赖缺失、版本过低或二进制不兼容时自动降级为传统色码,不影响插件其他功能。
# click、hover、selector、nbt 等交互/数据标签仅降级对应 token,不会让整行回退。
enabled: false

# 上架 GUI 默认商店配置
# /mal market gui、/mal auction gui、/mal request gui 未指定商店时优先使用这里的值。
# 留空时:同模式只有一个商店则自动选择;存在多个可用商店则打开选店界面。
upload_entry:
defaults:
global_market: ''
auction: ''
global_request: ''

# 上架创建编辑器配置
upload_editor:
# 数值输入方式:auto 优先使用牌子输入,不支持或打开失败时回退聊天;sign 仅使用牌子;chat 仅使用聊天栏。
input_mode: auto
# 是否在真实提交前打开独立确认页,默认开启以避免误上架、误扣款。
confirm_before_submit: true
# 未提交草稿的保留时间,单位秒;有效范围 30..1800,默认 300 秒。
draft_timeout_seconds: 300
# 单次数值或文本输入的等待时间,单位秒;超时后本次输入失效,默认 60 秒。
input_timeout_seconds: 60

# 创建事务恢复配置
recovery:
# 当前子服的稳定标识,用于恢复任务认领与审计;单服可保持 local,多服环境应为每个子服设置唯一值。
server_id: local

# 购物车配置
cart:
# 每个玩家购物车最大商品种类数
max-capacity: 50

# 交易安全配置
trade:
# 单次购买允许的最大数量,防止玩家输入超大数字导致数量计算溢出
max-purchase-amount: 999999

# 分布式锁安全配置
lock:
# Redis 锁异常时是否放行交易。默认 false 表示 fail-close,避免跨服并发重复提交
redis_fail_open: false

# 通知配置
notification:
# 是否启用通知系统(拍卖成交、邮箱到达等)
enabled: true
# 每个离线玩家的待投递通知队列上限
max-queue-per-player: 100

# ==============================
# 邮箱后端配置
# ==============================
mailbox:
# 邮箱储存后端
# internal - 使用 Malkuth 内置邮箱系统(默认)
# assiah - 使用 Assiah 邮箱插件
backend: internal

# 已领取邮件自动清理天数(清理 N 天前已领取的邮件,每小时执行一次)
cleanup-days: 7

# Assiah 后端配置(仅 backend: assiah 时生效)
assiah:
# 邮件过期时间(毫秒),0 表示不指定(走 Assiah 自身过期策略)
# 默认 7 天 = 604800000
expire_time: 604800000
# Assiah 插件不可用时是否自动降级到内置邮箱
fallback: true
# 是否把内置邮箱台账中的未领取邮件自动转发到 Assiah(默认开启)
# 关闭后幂等邮件将固定留在内置邮箱,玩家需通过内置邮箱 UI 领取
forward_internal: true
# 转发任务扫描间隔(秒),最小 10 秒
forward_interval_seconds: 60
# 每轮转发的最大邮件数量(1-200)
forward_batch: 50

# ============================================================
# 交易日志
# 将商店交易信息异步写入 plugins/Malkuth/trade-logs/{shopId}/{yyyy-MM-dd}.log
# 每行格式:时间 | shop=... | type=... | buyer=... | seller=... | goods=... | amount=... | price=...
# 此处为全局总开关;需在各商店配置文件中额外设置 trade_log: true 才会记录该商店的交易。
# ============================================================
trade_log:
# 是否启用交易日志写入(全局总开关,默认关闭)
enabled: false

配置项说明​

配置项说明默认值
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.yml 与 autosell_chest.yml 的变更;config.yml 自身不受该开关控制,始终常驻监听true
item-overflow.drop_on_ground背包满时溢出物品是否掉落在地;关闭时已接入兜底的路径会写入邮箱true
item-overflow.drop_item_owner掉落的溢出物品是否标记归属;开启后其他玩家无法拾取,漏斗与漏斗矿车也无法吸取,归属不一致的掉落物不会互相合并false
item-overflow.drop_item_owner_timeout认主保护时长(秒),超时后任何玩家均可拾取;0 或负数表示直到掉落物消失前始终只有归属玩家可拾取60
debug.matcher-detail是否输出逐条 matcher 细节;会显著增加日志量false
debug.matcher-summary是否输出每次匹配动作的摘要日志true
debug.max-lines-per-action单次匹配动作允许输出的最大日志行数;至少为 130
debug.currency是否输出货币链路日志(扣款、给予、余额校验、离线补发)false
debug.database是否输出数据库链路日志(交易落库、结算写入)false
debug.lock是否输出锁链路日志(并发扣款、重复上架时的锁竞争与超时)false
minimessage.enabled在 PAPI 变量替换后启用受限 MiniMessage;仅 Minecraft 1.16+ 且服务端类路径提供完整 Adventure / MiniMessage / Examination 时生效,否则自动使用传统色码false
upload_entry.defaults.global_market/malkuth market gui 未指定商店时优先使用的全球市场 ID空
upload_entry.defaults.auction/malkuth auction gui 未指定商店时优先使用的拍卖行 ID空
upload_entry.defaults.global_request/malkuth request gui 未指定商店时优先使用的全球求购 ID空
upload_editor.input_mode编辑器数值输入方式:auto、sign 或 chat;auto 牌子输入失败时回退聊天auto
upload_editor.confirm_before_submit新 GUI 创建流程是否在真实提交前打开 upload_create_confirm.yml;不控制旧参数式命令true
upload_editor.draft_timeout_seconds未提交草稿保留秒数,运行时限制在 30..1800300
upload_editor.input_timeout_seconds单次输入等待秒数,运行时限制在 10..60060
recovery.server_id恢复任务认领和审计使用的稳定子服标识;群组服每个子服应保持唯一local
cart.max-capacity购物车最大商品种类数50
trade.max-purchase-amount玩家输入购买数量、购物车合并数量和发货数量的安全上限,避免超大数量导致溢出999999
lock.redis_fail_openRedis 分布式锁异常时是否放行交易;默认 false 为 fail-close,跨服环境不建议开启false
notification.enabled启用通知系统(拍卖成交、邮箱到达等)true
notification.max-queue-per-player每个离线玩家的待投递通知队列上限100
mailbox.backend邮箱后端:internal(内置)或 assiah(对接 Assiah 插件)internal
mailbox.cleanup-days已领取邮件自动清理天数(每小时执行一次)7
mailbox.assiah.expire_timeAssiah 后端邮件过期时间(毫秒);0 表示不指定,交给 Assiah 自身策略处理604800000
mailbox.assiah.fallbackAssiah 不可用时自动降级到内置邮箱true
mailbox.assiah.forward_internal是否把先写入内置幂等台账的未领取邮件后台转发到 Assiah;关闭后固定留在内置邮箱true
mailbox.assiah.forward_interval_seconds后台转发扫描间隔,运行时最少 10 秒60
mailbox.assiah.forward_batch每轮扫描的最大邮件数量50
trade_log.enabled交易日志全局总开关;还需在商店配置里写 trade_log: true 才会记录该商店false
邮箱后端边界

当 mailbox.backend: assiah 时,赠送、管理员发放等常规邮件会直接写入 Assiah。拍卖流拍/中标、全球市场到期退回、全球求购供货退回/成交投递、退款补偿和上架回滚等幂等邮件会先写入 Malkuth 内置邮箱台账,避免跨服或重试时重复发放。

默认 forward_internal: true 会按间隔把这些未领取台账邮件安全搬运到 Assiah,成功后才在内置侧标记完成;Assiah 未就绪时邮件继续保留,等待下一轮或由玩家从内置邮箱领取。若设为 false,幂等邮件不会转发,固定留在内置邮箱。

MiniMessage 安全边界

启用 minimessage.enabled 后只开放颜色、文本装饰、渐变、彩虹与重置标签,并继续兼容 & 色码。click、hover、selector、nbt 等交互或数据标签会作为普通文本降级,不会执行;服务器版本低于 1.16 或缺少完整运行库时也会自动回退。

GUI 默认商店解析

三个 upload_entry.defaults.* 留空时,同模式只有一个可用商店会自动选择;存在多个商店时打开 upload_shop_select.yml,没有可用商店时拒绝进入编辑器。显式传入 [商店] 时优先使用命令参数。

调试日志只建议短时开启

调试总开关不在 config.yml 里,只能用 /malkuth debug on 临时启用,重启后自动恢复关闭。总开关开启且 debug.matcher-detail: true 时,回收、上传限制和物品匹配链路会输出大量明细日志。它适合排查某一件物品为什么被拒绝或匹配到了哪条规则,不适合作为长期常驻监控;排查完成后建议立即关闭。

debug.currency、debug.database、debug.lock 是分域开关,同样要在总开关开启后才输出。想只看某一类商店的流程日志时,用 /malkuth debug <模式> on 按商店模式单独开启,避免整台服务器刷屏。

交易日志需要两级开关

trade_log.enabled: true 只是打开全局总闸,还要在具体商店配置里写 trade_log: true,该商店的成交才会写入 plugins/Malkuth/trade-logs/{商店ID}/{年-月-日}.log。

写入是异步的,不占用主线程;内部队列上限 10000 条,极端刷单场景下超出的记录会被丢弃,因此它适合做经营复盘和纠纷取证,不适合当作结算凭据。日志文件不会自动轮转或清理,需要你自己定期归档。

autosell_chest.yml​

自动售卖箱独立配置位于 plugins/Malkuth/autosell_chest.yml。默认关闭,开启后玩家可以放置带有 malkuth_autosell_type 标记的售卖箱物品,系统会按间隔扫描箱内物品,并复用 recycle/*.yml 的货币奖励规则估价后发放收益。

enabled: false

tick-interval: 20
hologram-update-interval: 20
unload-chunk-behavior: pause

limits:
default: 1
permission-prefix: 'malkuth.autosell.limit.'

currency:
mode: vault

types:
basic:
display: '&a自动售卖箱'
block: chest
item:
material: chest
name: '&a自动售卖箱'
lore:
- '&7放置后会周期自动出售箱内物品'
- '&7右键打开升级界面'
price-source:
mode: recycle_shop
shop: default_recycle
input:
hopper: true
manual: true
hopper-output: false
merge:
allow-double-chest: false
require-same-owner: true
require-same-type: true
require-same-level: true
large-chest-upgrade-cost-multiplier: 2.0
hologram:
enabled: true
lines:
- '&a自动售卖箱 &7Lv.{level}'
- '&7下次售卖: &f{remaining}'
- '&7倍率: &e{multiplier}x'
levels:
'1':
interval: 60s
multiplier: 1.0
upgrade-cost: 0
max-items-per-run: 64
'2':
interval: 30s
multiplier: 1.25
upgrade-cost: 5000
max-items-per-run: 128
配置项说明默认值
enabled自动售卖箱总开关;关闭时放置会被拦截,定时售卖任务不会启动false
tick-interval主检查间隔,单位 tick;只有到期箱子才会扫描库存20
hologram-update-interval全息刷新预留配置,当前售卖箱不会生成全息实体20
unload-chunk-behavior区块未加载时的处理策略;pause 会延后下次售卖,simulate 当前仍是预留pause
limits.default玩家无额外权限时可放置的数量1
limits.permission-prefix数量上限权限前缀,例如 malkuth.autosell.limit.5malkuth.autosell.limit.
currency.mode售卖收益与升级扣费使用的货币模式,可填 vault、playerpoints 或 currency.yml 自定义货币键vault
types.<类型>.display类型显示名,用于提示和升级界面&a自动售卖箱
types.<类型>.block放置后允许绑定的方块材质chest
types.<类型>.item/malkuth autosell give 发放给玩家的物品外观见默认配置
types.<类型>.price-source价格来源配置;当前实现会复用 recycle/*.yml 中的货币奖励规则估价recycle_shop / default_recycle
types.<类型>.input.hopper是否允许漏斗向箱子输入物品true
types.<类型>.input.manual是否允许玩家手动放入物品;当前仍保留普通箱子交互true
types.<类型>.input.hopper-output是否允许漏斗从售卖箱抽出物品false
types.<类型>.merge.allow-double-chest是否允许和相邻售卖箱形成大箱子false
types.<类型>.hologram售卖箱全息文本预留配置,当前不会生成全息实体见默认配置
types.<类型>.levels.<等级>.interval该等级的售卖间隔,支持 ms、s、m、h60s / 30s
types.<类型>.levels.<等级>.multiplier该等级的收益倍率1.0 / 1.25
types.<类型>.levels.<等级>.upgrade-cost升到该等级需要扣除的货币;一级通常为 00 / 5000
types.<类型>.levels.<等级>.max-items-per-run单次最多售卖物品数量64 / 128
自动售卖箱结算边界

当前自动售卖箱只结算能被回收规则命中且包含货币奖励的物品。它不会发放回收规则中的物品奖励或 Kether 奖励;收益会按售卖箱等级倍率、单次数量上限和配置货币发放给箱主。

玩家商店方块​

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
generated-block: CHEST

hologram:
enabled: true
default-enabled: true
default-lines:
- '&6{owner} 的商店'
- '&f商品数量: &a{goods_count}'
- '&7右键点击打开'
height: 1.2
min-height: 0.0
max-height: 5.0
line-spacing: 0.25
min-line-spacing: 0.1
max-line-spacing: 1.0
refresh-interval-ticks: 200
cleanup-radius: 1.5
max-lines: 6
max-line-length: 80
# 全息渲染方式
# ARMOR_STAND: 每行一个隐形盔甲架,全版本可用,无背景板
# TEXT_DISPLAY: 单个 TextDisplay 实体承载多行,支持背景板与朝向,需要 1.19.4 及以上服务端
render-mode: ARMOR_STAND
# TEXT_DISPLAY 渲染方式的外观参数,render-mode: ARMOR_STAND 时整节不生效
text-display:
billboard: CENTER
alignment: CENTER
background: '#40000000'
see-through: false
shadowed: false
text-opacity: -1
scale: 1.0
view-range: -1

stall-entity:
enabled: false
type: ARMOR_STAND
click-to-open: true
name-display: '&6{owner} 的摊位'
name-visible: true
gravity: false
cleanup-radius: 2.0
default-model:
helmet: PLAYER_HEAD
chestplate: ''
leggings: ''
boots: ''
main-hand: ''
off-hand: ''
use-owner-head: true
small: false
invisible: false
arms: true
display: '&a默认形象'
icon: PLAYER_HEAD
models:
merchant:
permission: 'malkuth.stall.merchant'
display: '&6商人形象'
icon: EMERALD
equipment:
helmet: PLAYER_HEAD
chestplate: 'LEATHER_CHESTPLATE:#8B4513'
leggings: 'LEATHER_LEGGINGS:#5C4033'
boots: 'LEATHER_BOOTS:#2F1B0C'
use-owner-head: true
small: false
invisible: false
arms: true
offset:
x: 0.5
y: 0.0
z: 0.5
facing: BLOCK_FACE

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.place-above.generated-block生成模式下的方块来源,支持原版方块或 CraftEngine 方块 IDCHEST
player-shop-block.hologram.enabled是否启用玩家商店方块全息显示true
player-shop-block.hologram.default-enabled新绑定商店方块时是否默认显示全息true
player-shop-block.hologram.default-lines默认全息文本,支持 {owner}、{shop_id}、{shop_title}、{goods_count}、坐标等变量见默认配置
player-shop-block.hologram.height全息第一行相对方块顶部的高度1.2
player-shop-block.hologram.min-height / max-height玩家命令可设置的全息高度范围,源码会自动夹紧到范围内0.0 / 5.0
player-shop-block.hologram.line-spacing多行全息的行间距;仅 render-mode: ARMOR_STAND 生效0.25
player-shop-block.hologram.min-line-spacing / max-line-spacing玩家命令可设置的行距范围0.1 / 1.0
player-shop-block.hologram.refresh-interval-ticks动态占位符刷新间隔,源码最低按 20 tick 处理200
player-shop-block.hologram.cleanup-radius重载或刷新时清理残留全息实体的水平扫描半径1.5
player-shop-block.hologram.max-lines玩家自定义全息最多行数,源码限制在 1~206
player-shop-block.hologram.max-line-length玩家自定义单行最大字符数,源码限制在 8~20080
player-shop-block.hologram.render-mode全息渲染方式:ARMOR_STAND 每行一个隐形盔甲架,TEXT_DISPLAY 单实体承载多行并支持背景板ARMOR_STAND
player-shop-block.hologram.text-display.billboard朝向模式:CENTER 始终正对玩家、FIXED 固定朝向、VERTICAL 仅绕垂直轴跟随、HORIZONTAL 仅绕水平轴跟随CENTER
player-shop-block.hologram.text-display.alignment文本对齐:CENTER、LEFT 或 RIGHTCENTER
player-shop-block.hologram.text-display.background背景板 ARGB 颜色,支持 #AARRGGBB 与 #RRGGBB(视为不透明),填 TRANSPARENT 完全取消背景板;非法值回退默认#40000000
player-shop-block.hologram.text-display.see-through是否穿透方块显示,开启后隔墙也能看到全息false
player-shop-block.hologram.text-display.shadowed文本是否带阴影false
player-shop-block.hologram.text-display.text-opacity文本不透明度,仅 1~255 生效;-1 使用原版默认-1
player-shop-block.hologram.text-display.scale整体缩放倍数,源码限制在 0.1~10.01.0
player-shop-block.hologram.text-display.view-range超过该距离不再渲染(格);-1 或非正数使用客户端默认-1
player-shop-block.stall-entity.enabled是否启用摆摊实体系统false
player-shop-block.stall-entity.type实体类型;当前已实现 ARMOR_STAND,NPC 仍会跳过生成ARMOR_STAND
player-shop-block.stall-entity.click-to-open右键摆摊实体是否打开对应玩家商店true
player-shop-block.stall-entity.name-display摆摊实体显示名,支持店主、商店、商品数量和坐标变量&6{owner} 的摊位
player-shop-block.stall-entity.name-visible是否显示摆摊实体名称;name-display 为空时不会显示true
player-shop-block.stall-entity.gravity盔甲架实体是否启用重力,建议保持关闭避免模型掉落false
player-shop-block.stall-entity.cleanup-radius清理残留摆摊实体时的扫描半径2.0
player-shop-block.stall-entity.default-model默认盔甲架装备与外观;PLAYER_HEAD 可配合 use-owner-head 显示店主头颅见默认配置
player-shop-block.stall-entity.models可选模型列表,可用 permission 控制玩家能否选择见默认配置
player-shop-block.stall-entity.offset实体生成偏移,相对于绑定方块坐标0.5, 0.0, 0.5
player-shop-block.stall-entity.facing实体朝向:BLOCK_FACE 或 OWNER_FACINGBLOCK_FACE
player-shop-block.protection.disable-vanilla-interact右键已绑定方块打开商店后,是否取消原版交互(如箱子/木桶界面)true
player-shop-block.protection.deny-break-by-others是否阻止非店主破坏已绑定方块true
两种全息渲染方式怎么选

默认 ARMOR_STAND 每行一个隐形盔甲架,全版本可用,升级后观感和以前完全一致,但没有背景板。

TEXT_DISPLAY 用一个原版 TextDisplay 实体承载全部行,可以配背景板、朝向跟随和文本对齐,观感更接近成品全息插件,代价是需要 1.19.4 及以上服务端。低于该版本时插件会自动回退 ARMOR_STAND,并在控制台告警一次,不会导致全息消失。

切到 TEXT_DISPLAY 后 line-spacing 不再参与计算,行距由实体自身排版决定;想让全息更紧凑或更大,改 text-display.scale。若服务端不支持缩放所需的内部结构,插件会保持原版默认缩放并告警一次。

单服使用

如果你只有一个服务器且不需要 MySQL,可以将 database.enable 设为 false,插件会自动使用 SQLite 存储数据,无需额外配置数据库。

跨服同步

如果你使用 BungeeCord 或 Velocity 群组服,需要同时启用 MySQL 和 Redis。所有子服连接同一个数据库和 Redis 实例,即可实现商城数据跨服同步。

文件监听边界

file.enable_listen: true 只会监听已经加载的 goods/*.yml、shop/*.yml、recycle/*.yml、ui/*.yml、currency.yml 与 autosell_chest.yml。语言文件不受该开关影响,修改后需要执行 /malkuth reload。

config.yml 自身始终常驻监听,不受这个开关控制,这样你把开关改成 false 或再改回 true 都能立刻生效。保存 config.yml 后插件会重载其中的配置值并重新注册监听:关掉开关时会清理业务文件监听,重新打开时会自动恢复商品、商店、UI、回收和自动售卖箱配置。

如果编辑器采用非原子方式保存,插件可能读到写入中的半个文件。此时缺失的 file.enable_listen 不会被当成「已关闭」,而是保留旧值并在控制台告警,等下一次完整写入再更新。

当前重载范围(按源码)

/malkuth reload 会重载主配置(含 minimessage.*、upload_entry.*、upload_editor.*、recovery.*、player-shop-block.*、item-overflow.*、trade_log.enabled 与 debug.* 中的可配置项)、currency.yml、autosell_chest.yml、shop/、goods/、ui/、recycle/ 与语言文件,并重新建立玩家商店方块绑定缓存。同时它会清除所有未提交的上架草稿、暂停后再恢复创建/拍卖恢复服务、按新配置重启 Assiah 转发任务,重置缓存服务与邮箱后端,清空随机商品结果、购物车和回收统计缓存,刷新商店占位符缓存,关闭在线玩家当前打开的商店界面,并广播一次跨服缓存失效通知。

语言文件​

语言文件位于 plugins/Malkuth/lang/ 目录(默认包含 zh_CN.yml 与 en_US.yml),你可以自定义插件中所有提示消息的文本。

格式说明​

  • 支持 & 颜色代码(如 &a 绿色、&c 红色、&e 黄色)
  • 使用 {0}、{1}、{2} 等位置变量替换动态内容

消息分类​

语言文件中的消息按功能模块分类:

分类说明
auction-*拍卖行相关消息(竞拍成功/失败、余额不足等)
player-shop-*玩家商店消息(购买成功、售罄等)
shopblock-* / shopblock_hologram-* / shopblock_stall-*玩家商店方块、全息显示和摆摊实体消息
global-market-*全球市场相关消息(筛选、排序、搜索、购买/下架等)
global-request-*全球求购相关消息(创建、供货、审核、取消、过期、通知与 UI 输入)
upload-*上架相关消息(上架成功、黑白名单拦截等)
edit-*编辑商品消息
recycle-*回收系统消息(回收成功、无可回收物品等)
order-*挂单相关消息
buy-*购买相关消息(无权限、限购等)
mailbox-*邮箱消息(登录提醒、领取成功等)
favorite-*收藏夹消息
cart-*购物车消息(加入、移除、结算等)
gift-*赠送消息(输入玩家名、赠送成功等)
pricecompare-*比价搜索消息
ui-*聊天输入与界面交互提示(搜索/数量输入等)
item-source-*物品源挂钩与解析错误提示
matcher-*物品匹配拒绝原因提示(source / nbt / locked)
limit-*新限购系统提示(商店级/商品级数量与金额限制)
command-tax-*税收报表命令输出
command-extract-*默认资源释放命令输出
autosell-*自动售卖箱发放、放置、升级、售卖和管理提示
config-*配置加载与热重载提示(goods/shop/ui/currency/recycle)
cross-server-*跨服同步提示
schedule-*定时任务提示
command-*命令执行提示(重载、调试、同步等)
system-*系统级提示(权限不足、商店不可用等)
serializer-*配置序列化错误与校验提示
banner-*启动横幅文本
prefix全局消息前缀