配置(config.yml)
修改后 /bag reload(数据库与子服 ID 需要重启服务器)。下面是默认内容,每一项都有中文注释。
物品限制
rules 段决定哪些物品不能放进行囊(starbag.bypass.rules 不受限):物品 ID(可用 * 通配,例如 '*_SHULKER_BOX')、名称或说明里的文字、
自订数据键(例如 mmoitems:soulbound,写 命名空间:* 代表整个命名空间)、装了东西的潜影盒与收纳袋。
默认内容
# ─────────────────────────────────────────────
# StarBag 星月行囊 · 主配置
# 修改后执行 /bag reload(数据库与子服 ID 需要重启服务器)
# 菜单外观在 menu.yml,提示文字在 messages.yml
# ─────────────────────────────────────────────
# ── 数据库 ──
# sqlite = 单服使用(默认,数据在 plugins/StarBag/data.db)
# mysql = 多个子服连同一个数据库:每个子服都是同一个背包(同一时间只能在一个子服打开)
# mariadb = 同 mysql(服务端有 MariaDB 驱动时使用 MariaDB 驱动)
# 每一次搬动物品都是一笔数据库交易;跨服时用租约锁住背包,两个子服不可能同时改同一个背包
database:
type: sqlite
file: data.db
host: 127.0.0.1
port: 3306
database: starbag
username: root
password: ''
parameters: 'useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8&serverTimezone=UTC'
table-prefix: 'sb_'
# 连接数(MySQL),一般 4 – 8 就够
pool-size: 6
# ── 子服 ──
server:
# 每个子服填不同的名字(例如 lobby、survival)。留空 = 第一次启动时自动生成并写回这里
# 不要让两个子服用同一个名字(会互相抢背包租约)
id: ''
# 背包租约秒数:开着背包的子服每隔几秒续约一次;子服当机时,其他子服最多等这么久就能再打开那个背包
lease-seconds: 30
# ── 容量 ──
bag:
# 每个玩家一开始有几格
default-slots: 27
# 最多几格(默认格数 + 权限加成 + 扩充卷 + 购买,加起来不会超过这里)
max-slots: 270
# 权限加成(取最大的一个,不会叠加):有这个权限就多这么多格
# 另外 starbag.slots.<数字> 也可以直接用,例如 starbag.slots.18 = 多 18 格
permission-slots:
'starbag.vip': 18
'starbag.svip': 36
# 容量变小(权限过期、管理员调整)时,超出容量的格子里的物品不会消失:只能取出,不能再放入
# ── 购买格数 ──
buy:
enabled: true
# 每次买几格
step: 9
# 用哪种货币(见下面 currencies)
currency: money
# 第 1 次、第 2 次、第 3 次……购买的价格;次数超过列表就一直用最后一个
prices: [5000, 10000, 20000, 40000, 80000]
# ── 货币 ──
# type: vault(金币)/ playerpoints(点券)/ item(物品当货币)/ exp(经验等级 )
currencies:
default: money
money:
type: vault
name: '金币'
format: '<gold>{amount}</gold> 金币'
decimals: 2
points:
type: playerpoints
name: '点券'
format: '<aqua>{amount}</aqua> 点券'
diamond:
enabled: false
type: item
name: '钻石'
material: DIAMOND
format: '<aqua>{amount}</aqua> 钻石'
# ── 打开背包 ──
open:
# 潜行 + F(副手交换键)打开背包
sneak-swap-hand: false
# 这些世界不能打开(管理员 starbag.bypass.world 不受限)
disabled-worlds: []
# 创造模式不能打开(防止创造模式复制物品放进背包;starbag.bypass.creative 不受限)
block-creative: true
# 打开 / 关闭音效(留空 = 没有声音)
sound: 'BLOCK_ENDER_CHEST_OPEN:0.5:1.2'
close-sound: 'BLOCK_ENDER_CHEST_CLOSE:0.5:1.2'
# 背包物品(/bag item 给玩家),拿在手上右键打开背包
item:
material: BUNDLE
name: '<gradient:#C9B6FF:#8FD8EA>星月行囊</gradient>'
lore:
- '<gray>右键打开随身行囊'
custom-model-data: 0
item-model: ''
glow: true
# ── 扩充卷 ──
# /bag ticket <玩家> <格数> [数量] 发放。每一张卷都登记在数据库:被复制出来的卷用不了
ticket:
material: PAPER
name: '<gradient:#C9B6FF:#8FD8EA>行囊扩充卷</gradient> <white>+{slots} 格'
lore:
- '<gray>右键使用,行囊永久增加 <white>{slots}</white> 格'
- '<dark_gray>不需要打开行囊,对着空气右键即可'
custom-model-data: 0
item-model: ''
glow: true
# ── 物品限制 ──
# 这些物品不能放进背包(starbag.bypass.rules 不受限)
rules:
# 物品 ID,可用 * 通配,例如 '*_SHULKER_BOX'
deny-materials: []
# 名称或说明(lore)包含这些文字(颜色码不算)
deny-name-contains: []
deny-lore-contains: []
# 物品带有这些自订数据键(例如 'mmoitems:soulbound'、'craftengine:id')
deny-data-keys: []
# 装了东西的潜影盒 / 收纳袋不能放进背包
deny-filled-containers: false
# ── 一键存入 ──
deposit:
# 一键存入时连快捷栏一起存
include-hotbar: false
# 一键存入会跳过这些物品(工具、武器等,可用 * 通配)
skip-materials: ['*_SWORD', '*_AXE', '*_PICKAXE', '*_SHOVEL', '*_HOE', 'BOW', 'CROSSBOW', 'TRIDENT', 'MACE', 'SHIELD', 'FISHING_ROD']
# ── 整理 ──
sort:
# type = 依物品种类排序;name = 依物品名称排序
mode: type
# ── 崩溃保护 ──
# 每次搬动都会在数据库记下「玩家这边多了 / 少了什么」,并在玩家资料里记下序号。
# 子服当机后,玩家资料可能回到较早的存档(背包却已经存进数据库):玩家下次进服时自动把缺的那几步补回去,
# 不会因为当机多出物品,也不会少掉物品。
recovery:
enabled: true
# 玩家的物品栏存在哪里:
# auto = 装了跨服背包同步插件(HuskSync、CloudSync 等)时视为 shared,否则 server
# server = 每个子服各自保存玩家资料(一般情况)
# shared = 同步插件把玩家物品栏在各子服之间同步(同步插件也必须同步 PersistentDataContainer,HuskSync 默认会)
player-data: auto
# 进服后等几 tick 再检查(让同步插件先把物品栏载入)
join-delay-ticks: 40
# 云同步 CloudSync 的玩家数据表(留空 = 从 plugins/CloudSync/config.yml 自动找;可写 数据库.数据表)
cloudsync-table: ''
# ── 备 份与记录 ──
backup:
# 每位玩家每天第一次打开背包时自动备份一次(/bag backup <玩家> 查看与还原)
daily: true
keep-days: 14
log:
# 搬动记录保留几天(/bag log <玩家>)
keep-days: 30
# ── 指令 ──
# 这些指令一律交给星月行囊(其他插件也注册了 /bag 时仍然打开星月行囊)
command-aliases: [bag]
# ── 云界面 CloudUI ──
# 装了云界面时用云界面画面打开背包(无法显示的玩家仍用箱子菜单)
cloudui: true
# ── 聊天输入(搜索)──
input:
cancel-word: '取消'
timeout-seconds: 60
# ── 旧插件 YunYueBag ──
legacy:
# /bag import yunyuebag 会自动填入:旧的扩充卷继续能用(每一批旧卷最多兑换这么多次)
yunyuebag-ticket-secret: ''
ticket-uses-per-batch: 64
# 调试:后台记下每一次点击与被拒绝的原因(排查问题时才开)
debug: false