- 版权类型
- 原创
- 插件中文名称
- 万宝阁
- 插件英文名称
- BXGlobal
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 前置组件
- PlaceholderAPI 必须
Vaul 可选
PlayerPoints 可选
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
功能介绍 开发者QQ-1502875135
- 支持自定义货币 只要使用的货币有给予和扣除命令以及显示当前货币数值就可以使用
- GUI界面自定义 自定义修改打开的GUI界面以及语言配置中文对应按钮输出内容
- 储存数据方式 sqlite(推荐单服) / mysql(多服共享) 上下架物品储存邮箱以防离线玩家收到货
- 税务扣款方式 上架税收支持自定义以及权限支持不扣款
- 便捷方式 支持搜索上架的物品以及筛选物品类型
- 性能优化 基本每个配置都有单独的设置开关以及设置和节流: 数据变动和刷新频率
具体查看下方图片和配置
# BXGlobal 万宝阁 · 全球交易系统 #
# ==================================================================== #
# 作者: Bing_Xin QQ: 1502875135
# 本插件所有"吃性能"的行为都做成了配置项, 每个开关下面都写明了
# 默认值 + 调大/调小会发生什么. 请按你服务器的规模自行取舍.
# ==================================================================== #
# -------------------------------------------------------------------- #
# 存储 #
# -------------------------------------------------------------------- #
# type: sqlite(推荐单服) / mysql(多服共享)
storage:
type: sqlite
sqlite:
# 数据库文件名, 实际路径 plugins/BXGlobal/Data/<文件名>
file: bxmarket.db
# SQLite 等待锁的超时(毫秒). 玩家多时可适当调大, 避免 "database is locked"
busy-timeout: 5000
mysql:
host: 127.0.0.1
port: 3306
database: bxglobal
user: root
password: ''
# 表名前缀, 多套 BXGlobal 共用一个库时用得上
table-prefix: 'bx_'
# 是否启用 SSL
use-ssl: false
# 连接池上限. 并发高(>50人)可调到 8~12; 人数少保持 4 即可, 调大只是白占连接
pool-size: 4
# 【性能】写库节流: 数据变动先攒在内存, 每 N tick 批量落盘一次 (20 tick = 1 秒)
# 默认 40 (2 秒). 调小 = 更实时但更吃 IO; 调大 = 省 IO 但关服瞬间可能有极少量未落盘
# 设为 0 = 每次变动立刻落盘 (不推荐, 玩家多时 TPS 会掉)
flush-interval-ticks: 40
# 【性能】关服时是否把还没落盘的统计(成交记录/行情)强制写进数据库。
# true = 关服前写完(推荐, 默认)
# false = 跳过, 本次未落盘的统计会丢失(只在你想让关服更快时才关)
flush-on-shutdown: true
# -------------------------------------------------------------------- #
# 经济系统 #
# -------------------------------------------------------------------- #
economy:
# 默认计价货币: vault(金币) / points(点券)
default-currency: vault
# 是否允许玩家在指令里指定非默认货币。
# true = /bg sell 金币 64 10 和 /bg sell 点券 64 10 都能用
# false = 只能用 default-currency 那一种计价, 指定别的货币会被拒绝
allow-switch: true
vault:
# 开关. false = 完全不加载 Vault 经济, 相关商品不显示也不可交易
enable: true
# 货币代号: 指令里就用这个名字, 如 /bg sell 金币 64 10
ID: '金币'
display: '§6金币'
# 消息里的单位后缀
suffix: '金'
# 保留几位小数
decimals: 2
points:
# 开关. false = 不加载点券. 插件未装/签名不匹配时也会自动降级为本项 false
enable: true
# 货币代号: 如 /bg sell 点券 64 10
ID: '点券'
display: '§b点券'
suffix: '点'
# 点券是整数货币, 这里保持 0
decimals: 0
# ------------------------------------------------------------------ #
# 自定义货币(命令 + 占位符驱动) #
# 适用场景: 余额不是 Vault/点券, 而是由别的插件托管的货币。 #
# 这类货币的三种动作: #
# · 查余额: 用 PAPI 占位符 plpi (需要装 PlaceholderAPI + 提供该 #
# 变量的插件, 二者缺一货币自动判为不可用, 不会崩服) #
# · 扣 款 : 执行 take 命令 (收购/购买成交时代扣, 以控制台身份执行) #
# · 入 账 : 执行 add 命令 (出售/供货到账时执行) #
# 变量写法(固定): #
# · 金额 = {value} 代表"这笔成交实际动用了多少货币": 卖东西得 10 #
# 麦币, 执行命令时 {value} 就是 10; 收购扣款同理 #
# · 玩家名 = %player_name% (也兼容 %player%) #
# 注意: #
# · 每种货币的 ID(指令代号)必须全局唯一, 与金币/点券或其它自定义货币 #
# 重复的那条会被自动跳过并在后台告警 #
# · 命令执行失败时(命令不存在/语法不对)后台会打印完整命令并提示玩家 #
# "货币扣款执行异常", 不会再误报成"余额不足" #
# · 例子里 take/add 用的命令头是 YeeCore 数值系统的 "yeevalue" #
# (语法: yeevalue take/add 玩家 数值ID 数量), 改完 /bg reload 即生效 #
# —— 重载会整体重建货币配置, 不用重启 #
# ------------------------------------------------------------------ #
custom:
rmb:
# 开关. false = 不加载这种自定义货币
enable: true
# 货币代号: 指令里用, 如 /bg sell 麦币 64 10
ID: '麦币'
display: '§d麦币'
suffix: '麦币'
# 整数货币保持 0
decimals: 0
# 余额占位符: 上架/收购/购买前用它判断玩家余额是否足够
plpi: '%yeevalue_info_rmb%'
# 扣款命令: %player_name% 玩家名, {value} 本次成交动用的金额
take: 'yeevalue take %player_name% rmb {value}'
# 入账命令: 卖家收款/收购退款都走这条
add: 'yeevalue add %player_name% rmb {value}'
ljrmb:
enable: true
ID: '金魂币'
display: '§b金魂币'
suffix: '金魂币'
decimals: 0
plpi: '%yeevalue_info_ljrmb%'
take: 'yeevalue take %player_name% ljrmb {value}'
add: 'yeevalue add %player_name% ljrmb {value}'
# -------------------------------------------------------------------- #
# 市场规则 #
# -------------------------------------------------------------------- #
market:
# 商品默认有效期(小时). 0 = 永不过期
# 过期商品会被自动下架并转入卖家收件箱 (物品不丢失)
expire-hours: 168
# 单个商品堆叠上限 (上架时一次最多挂多少)
max-listing-amount: 64
# 每页商品数量的兜底上限: 实际每页 = min(gui/*.yml 里 * 的格子数, 这里)。
# 正常情况布局格子数更小, 这项不会生效; 只有把界面里的 * 铺得特别多时才会被它压住。
# 设为 0 = 不限制
page-size: 28
# 【性能】过期商品清理扫描间隔(秒). 默认 300 (5 分钟)
# 调小 = 过期下架更及时但扫描更频繁; 调大到 900 可进一步省 CPU
expire-scan-seconds: 300
# 单次扫描最多处理多少条过期商品, 防止一次性涌入大量数据卡主线程
expire-scan-limit: 200
# 玩家同时存在的上架条数上限 (出售单 + 收购单合计)
# 可用权限 bxglobal.limit.40 / 60 / 100 / unlimited 覆盖
max-listings-per-player: 20
# 玩家每天最多上架次数 (0 = 不限制)
max-list-per-day: 0
# 玩家每天最多购买次数 (0 = 不限制)
max-buy-per-day: 0
# 是否允许发布收购单
enable-buy-orders: true
# 是否允许对同一物品自动合并到已有条目 (省格子, 但会失去"按卖家区分"的能力)
# true = 相同物品并入同一条目, 库存累加, 价格以最新为准
# false = 每次上架都是独立条目
merge-same-item: true
# 出售单最低单价
min-sell-price: 0.01
# 出售单最高单价 (0 = 不限制), 防手抖挂出天价
max-sell-price: 0
# 收购单最低单价
min-buy-price: 1.0
# 上架手续费(按上架时单价×数量百分比收, 0 = 不收)
# 注意: 这是"上架时就扣"的费用, 与下面 tax(成交后抽税) 是两回事
list-fee-rate: 0
# 默认排序: time_desc(最新) / time_asc(最旧) / price_asc(低价) / price_desc(高价) / amount_desc(库存多)
default-sort: time_desc
# 允许玩家切换的排序方式
sort-modes:
- time_desc
- price_asc
- price_desc
- amount_desc
# 下架冷却(秒): 防止反复上架-下架刷库. 0 = 不限制
cancel-cooldown: 3
# 购买冷却(秒): 防止连点/脚本刷单. 0 = 不限制
buy-cooldown: 1
# -------------------------------------------------------------------- #
# 税率 (成交后向上架者抽税) #
# -------------------------------------------------------------------- #
tax:
enable: true
# 基础税率(百分比)
rate: 5.0
# 起征线: 单笔成交额低于该值不抽税
threshold: 100.0
# 抽税兜底: 税后卖家实收不得低于该比例 (0.5 = 最多扣一半)
min-payout-ratio: 0.5
# 税款去向:
# void = 系统回收(默认, 起到回收货币的作用)
# return = 税款补贴给卖家, 等价于不抽税(税率配置保留, 想随时切回 void 很方便)
sink: void
# VIP 税率减免, 按权限配置. 命中多条时取减免最多的那条
vip-reduce:
bxglobal.tax.vip1: 30.0
bxglobal.tax.vip2: 50.0
bxglobal.tax.vip3: 80.0
# -------------------------------------------------------------------- #
# 界面 #
# -------------------------------------------------------------------- #
gui:
# 【性能】界面自动刷新间隔(tick). 默认 40 (2 秒)
# 采用"内容变了才重绘"策略: 即使这里设成 20, 内容没变也不会发生任何 setItem
# 设为 0 = 关闭自动刷新(推荐人多时用 0, 完全靠手动 R 刷新)
auto-refresh-ticks: 40
# 【性能】仅限制"自动刷新"这一轮最多重绘几个格子, 防止一次全量重绘造成卡顿。
# 手动翻页/点击不受限制; 这一轮没画到的格子会在下一次自动刷新自动补齐, 不会永久空着。
# 设为 0 = 不限制
refresh-max-slots: 28
# 是否开启"内容变化才重绘"的比对优化。
# true = 内容没变的格子完全跳过 setItem, 客户端一个包都不收(推荐, 默认)
# false = 每次都全量重绘, 网络与 CPU 开销明显变大, 不建议关
smart-refresh: true
# 界面文件目录
dir: gui
# 【性能】物品数据缓存条数 (LRU). 商品展示需要反序列化物品NBT, 缓存可避免重复解析
# 默认 600. 内存紧张可调到 200; 机器好的可以 2000
item-cache-size: 600
# 【性能】一次最多批量取多少条商品 NBT(界面图标是分批补的)。
# 被截掉的商品不丢, 下一次刷新会继续补齐。
prefetch-limit: 32
# -------------------------------------------------------------------- #
# 搜索 #
# -------------------------------------------------------------------- #
search:
# 是否启用拼音搜索(全拼 + 首字母). 关闭后只能按物品原名匹配
pinyin: true
# 搜索匹配方式:
# true = 模糊(默认): 关键词是索引串的子串即命中, 搜 "玄" 能命中 "玄铁圣剑"
# false = 精确: 关键词必须与索引里的某个完整词完全一致, 只适合想严格控制结果的服
fuzzy: true
# 搜索关键词最短长度
min-length: 1
# 搜索最长等待(毫秒): 超过则在后台线程继续, 避免阻塞主线程
index-rebuild-warn-ms: 200
# -------------------------------------------------------------------- #
# 提示 #
# -------------------------------------------------------------------- #
notice:
# 是否开启聊天栏操作回执 (成功/失败一句话)
action-message: true
# 是否开启音效
sound: true
# 音效音量
sound-volume: 0.7
# -------------------------------------------------------------------- #
# 调试 #
# -------------------------------------------------------------------- #
debug:
# 打开后会把 SQL、缓存命中、刷新耗时打到控制台, 排查性能问题用
enable: false
# 每次界面刷新的耗时超过该毫秒数就打印一条警告
slow-render-warn-ms: 30