AdventureMarket
全球市场交易插件 — 出售 / 收购 / 拍卖 / 邮箱 / 商店
AdventureMarket 是一款功能全面的 Minecraft 服务器全球市场插件,提供三种交易模式(出售、收购、竞拍),内建邮箱系统、独立商家店铺、多权限组税率控制和多货币经济体系。支持 SQLite / MySQL 双引擎存储,可轻松实现跨服数据同步。
核心特性
- 三种交易模式 — 出售(Selling)、收购(Purchasing)、拍卖(Bidding)
- 完整 GUI 系统 — 13 个可自定义 GUI 界面,全 YAML 配置驱动
- 邮箱系统 — 交易物品自动投递、玩家间发送、批量签收
- 独立商家店铺 — 每位玩家拥有个性化店铺名称与描述
- 多权限组 — 6 级权限组分别控制上架数量、税率、价格限制、过期时间
- 多货币经济 — Vault / PlayerPoints / 内建银币三货币并行
- 物品黑名单 — Material、名称关键词、Lore、附魔、CustomModelData 多维过滤
- 分类系统 — 10+ 预设分类,白名单/黑名单/内部模块匹配
- 拍卖加时 — 倒计时竞价加时策略 + 广播通知
- 木牌商店 — 放置木牌快捷打开玩家商店
- MySQL 跨服同步 — HikariCP 连接池 + 跨服消息通道
- PlaceholderAPI — 8 个内建占位符
- AdventureMail 联动 — 邮箱功能可重定向至 AdventureMail
安装与依赖
| 项目 | 要求 |
| 服务端 | Paper / Spigot 1.21+ |
| Java | 21+ |
| 必需依赖 | Vault(经济接口) |
| 可选依赖 | PlaceholderAPI、PlayerPoints、CraftEngine、AdventureMail |
- 将
AdventureMarket-1.2.0.jar 放入 plugins/
- 确保
Vault 和一个经济插件(如 EssentialsX)已安装
- 启动服务器,插件自动生成默认配置
- 编辑配置后
/market reload 热重载
目录结构
plugins/AdventureMarket/
├── Config.yml # 主配置(经济/序列化/MySQL/模块开关)
├── GlobalMarket.yml # 全球市场(排序/税/拍卖/价格限制)
├── Groups.yml # 权限组(上架数/税率/过期时间)
├── Categories.yml # 商品分类
├── Mailbox.yml # 邮箱设置
├── Merchant.yml # 商家档案设置
├── ItemBlacklist.yml # 全局物品黑名单
├── Messages.yml # 消息文本
├── SignStore.yml # 木牌商店
├── Alias.yml # 命令别名
├── GUISettings/ # 13 个 GUI 配置
│ ├── GlobalMarketGUI.yml
│ ├── AuctionGUI.yml
│ ├── MailboxGUI.yml
│ ├── CategoryGUI.yml
│ ├── SearchGUI.yml
│ ├── MerchandiseGUI.yml
│ ├── MerchantProfileGUI.yml
│ ├── MerchantStoreGUI.yml
│ ├── MerchantStoreListGUI.yml
│ ├── SellInventoryGUI.yml
│ ├── BuyInventoryGUI.yml
│ └── TransactionGUI.yml
├── Permissions/ # 权限配置
│ ├── CommandPermissions.yml
│ ├── MerchandisePermissions.yml
│ ├── ProfilePermissions.yml
│ └── OtherPermissions.yml
└── Database.db # SQLite 数据文件
更新日志
v1.2.0 最新版
- 新增 AdventureMail 联动 — 邮箱可重定向至 AdventureMail
- 新增 批量上架 GUI — 拖入物品一键批量上架
- 新增 拍卖加时策略 — 竞价倒计时加时 + 广播
- 新增 跨服消息通道 (MySQL MessageChannel)
- 新增 运营者列表 — 运营者出售不打款(系统商品)
- 改进 GUI 布局支持 GMP 格式自动转换
- 修复 多货币模式下符号识别问题
命令系统
主命令 /market(别名 /am、/adventuremarket)。所有子模块也注册了独立快捷命令。
提示:所有命令支持 Tab 补全。冷却时间在 Config.yml > Commands-Cooldown 中配置。
主命令总览
| 命令 | 说明 |
/market | 打开全球市场 GUI |
/market help | 显示帮助信息 |
/market reload | 重载配置(需 adventuremarket.admin) |
/market gui [back|open <页面>] | GUI 导航:open category/profile/mailbox/store_list/search |
/market search <关键词> | 搜索商品 |
出售 /market sell
/market sell <价格> [retail]
- 将手持物品以指定价格上架出售
- 价格后缀指定货币:
100G = Vault 金币,50P = 点券,200S = 银币
- 附加
retail 参数自动计算零售单价
- 上架检查流程:黑名单 → 价格限制 → 数量上限 → 税款检查
- 成功后物品从手中移除
购买 /market buy
/market buy <商品ID> [数量]
- 通过商品 UID 购买,零售模式下可指定数量
- 物品直接进入背包,满则掉落
- 若开启
Send-To-Mailbox 则发送至邮箱
批量上架 /market sellinventory
/market sellinventory <单价> (别名: /market batch)
- 打开批量上架 GUI,将物品拖入后确认
- 所有物品以「单价 × 数量」逐个上架
- 黑名单或上架失败的物品自动退回
拍卖 /auction
| 命令 | 说明 |
/auction | 打开拍卖市场 GUI |
/auction start <起拍价> | 将手持物品发起拍卖 |
/auction bid <商品ID> <出价> | 对拍卖品出价 |
/auction gui <商品ID> | 打开竞价详情 GUI |
/auction confirm <商品ID> | 确认成交(拥有者/管理员) |
拍卖加时机制
在 GlobalMarket.yml 中配置 Auction-Automatic-Overtime:当剩余时间低于阈值且出价达标时自动延长时间并广播。
Auction-Automatic-Overtime:
Enabled: false
Policies:
'default':
Limit: 3 # 最多加时次数
Overtime: 30s # 每次加时时长
Conditions:
Time-Remaining: 10s # 剩余 <10s 触发
Bidding-Price: 100 # 出价 >100 触发
邮箱 /mailbox
| 命令 | 说明 |
/mailbox / /mailbox gui | 打开邮箱 GUI |
/mailbox send <玩家> | 将手持物品发送到目标邮箱 |
/mailbox pickup <邮件ID> | 签收指定邮件 |
/mailbox delete <邮件ID> | 删除邮件 |
/mailbox fetchall | 一键签收所有邮件 |
AdventureMail 联动:检测到 AdventureMail 时,/mailbox gui 自动重定向。
商品管理 /merchandise
| 命令 | 说明 |
/merchandise gui <商品ID> | 打开商品详情 GUI |
/merchandise remove <商品ID> | 下架商品(仅自己/管理员) |
/merchandise reprice <ID> <新价格> | 修改商品价格 |
/merchandise set <ID> <属性> [值] | 修改商品属性 |
可修改属性
| 属性 | 说明 | 权限 |
price | 整售价(聊天输入) | adventuremarket.merchandise.options.change-price |
retailprice | 零售单价 | adventuremarket.merchandise.options.change-retail-price |
neverexpire | 永不过期 true/false/switch | adventuremarket.merchandise.options.set-to-never-expire |
unlimited | 无限库存 | adventuremarket.merchandise.options.set-to-unlimited |
hidemerchantname | 隐藏商家名 | adventuremarket.merchandise.options.hide-merchant-name |
hidemerchandise | 隐藏商品 | adventuremarket.merchandise.options.hide-merchandise |
商家档案 /profile
| 命令 | 说明 |
/profile [gui] [玩家] | 打开自己/他人的档案 GUI |
/profile set storename [名字] | 设置商店名称(无参数则聊天输入) |
/profile set description [描述] | 设置商店描述 |
/profile set hidemerchantname switch | 切换隐藏商家名 |
/profile set hidemerchandise switch | 切换隐藏商品 |
/profile set storeclosed switch | 切换打烊状态 |
/profile set merchandisesort | 按上架时间排序商品(PlusShop) |
/profile set itemmailsort | 按接收时间排序邮件(PlusShop) |
/profile refresh [玩家] | 刷新商家数据 |
商店 /store
| 命令 | 说明 |
/store | 打开自己的商店 |
/store view <玩家> | 查看指定玩家商店 |
/store list | 查看所有玩家商店列表 |
分类 /category
| 命令 | 说明 |
/category list | 列出所有可用分类 |
/category gui | 打开分类选择 GUI |
/category set <分类名> | 按分类筛选全球市场 |
经济 /money
| 命令 | 说明 |
/money / /money balance | 查看余额 |
/money pay <玩家> <金额> | 转账给指定玩家 |
管理员 /market admin
需要权限:adventuremarket.admin(默认 OP)
| 命令 | 说明 |
/market admin stats | 市场统计(出售/收购/拍卖数量) |
/market admin database | 数据库连接信息 |
/market admin backup | 异步备份数据库 |
/market admin recorder [数量] | 查看最近 N 条交易记录 |
/market admin item | 序列化手持物品(调试) |
/market admin remove <商品ID> | 强制下架 |
/market admin clear expired | 清理过期商品 |
配置文件
Config.yml — 主配置
经济设置
Economy-Settings:
Default-Currency-System: Vault # 默认货币: Vault / PlayerPoints / Default
Multiple-Currencies-System: false # 多货币模式
Multiple-Currencies-System-List:
Vault: true
PlayerPoints: true
Default: true
Multiple-Currencies-Symbols: # 命令快捷符号
Vault: 'G' # /market sell 100G
PlayerPoints: 'P'
Default: 'S'
Separate-Servers: # 多服独立经济
Enabled: false
Server-Name: 'Server1'
Operators: [] # 运营者UUID(出售不打款)
模块开关
Module-Switches:
GlobalMarket: true # 全球市场
Mailbox: true # 邮箱
Recorder: true # 交易记录
Profile: true # 商家档案
Money: true # 银币模块
Custom-GUI: true # 自定义GUI
Sign-Store: false # 木牌商店
MySQL 存储
MySQL-Storage:
Enabled: false
Hostname: localhost
Port: 3306
Username: root
Password: ''
Database: adventuremarket
Tables:
GlobalMarket: am_globalmarket
Merchant: am_merchant
Mailbox: am_mailbox
Recorder: am_recorder
MessageChannel: am_message_channel
Auto-Refresh: # 跨服自动拉取
Enabled: false
GlobalMarket: 10.0 # 秒
Merchant: 10.0
Mailbox: 10.0
SQLite 存储
SQLite-Storage:
Database-File: Database.db
Database-Path: plugins/AdventureMarket
Tables:
GlobalMarket: GlobalMarket
Merchant: Merchant
Mailbox: Mailbox
Recorder: Recorder
命令冷却
Commands-Cooldown-After-Login: 3.0 # 登录后全局冷却(秒)
Commands-Cooldown:
Enabled: true
List:
- 'market sell:3.0'
- 'market buy:1.0'
- 'auction start:3.0'
- 'auction bid:1.0'
- 'mailbox send:3.0'
- 'mailbox pickup:1.0'
- 'money pay:3.0'
其他设置
| 配置项 | 说明 | 默认值 |
Prefix | 消息前缀(支持 CraftEngine image 标签) | &f<image:warn1> |
Language | 语言 | Simplified-Chinese |
Hex-Color-Parser | HEX 颜色 (#RRGGBB) | true |
Functional-Color-Parser | 渐变/彩虹色 | true |
Item-Serialization-Method | 物品序列化方式 | DEFAULT |
Enabled-All-GUI-Buttons-Label | GUI 防作弊按钮标签 | false |
Multi-Server-Message-Channel | 跨服消息通道 | false |
GlobalMarket.yml
| 配置项 | 说明 | 默认 |
Default-Sorting | 排序:UPLOAD_TIME / EXPIRE_TIME / PRICE / ITEM_AMOUNT / RANDOM | UPLOAD_TIME |
Retaining-Decimal-Places | 价格小数位 | 2 |
Number-Section-Marks-Distance-Length | 数字分节符距离(0=不分节) | 3 |
Merchandises-Match-When-Uploading | 上架时匹配收购项 | true |
Scan-Shulker-Box-When-Uploading | 上架扫描潜影盒 | true |
Transaction-After-Taxes | 交易前收税 | true |
Refund-Taxes-Upon-Merchandise-Removal | 下架退税 | false |
交易细分设置
Transaction:
Selling:
Send-To-Mailbox: false # 购买物品发送至邮箱
Default-To-Retail-Mode: false
Purchasing:
Comparison-Products: true # 收购时比较产品
Default-To-Retail-Mode: false
Auctions:
Retention-Times: 0s
Cooldown-Of-Bids-Confirm: 0s
Allow-Remove-After-Bidding: true # 有人出价后仍可下架
价格限制(按 Material)
Limitation-Of-Price:
Enabled: false
Selling:
DIAMOND: 50-500 # 钻石单价限制 50~500
Purchasing:
DIAMOND: 50-500
Bidding:
DIAMOND: 50-500
Groups.yml — 权限组
按 Priority 从上到下匹配(Admin > Mvp > Vip > Plus > Player > Default)。
预设权限组对比
| 组 | 权限 | 出售 | 收购 | 拍卖 | 税率 | 邮箱 | 有效期 |
| Default | adventuremarket.group.default | 3 | 3 | 1 | 5% | 5 | 3d |
| Player | adventuremarket.group.player | 10 | 10 | 5 | 3% | 30 | 7d |
| Plus | adventuremarket.group.plus | 20 | 20 | 10 | 2% | 50 | 10d |
| Vip | adventuremarket.group.vip | 30 | 30 | 15 | 1% | 80 | 15d |
| Mvp | adventuremarket.group.mvp | 40 | 40 | 20 | 0.5% | 100 | 18d |
| Admin | adventuremarket.group.admin | ∞ | ∞ | ∞ | — | ∞ | 3月 |
每组可配置字段
Maximum-Of-Merchandises:Selling/Purchasing/Bidding — 上架数量
Tax-Rate:Selling/Purchasing/Bidding — 税率(%)
Lowest-Price / Highest-Price — 价格区间
Mail-Quantity-Limit — 邮箱容量
Expiration-Date:Mail/Selling/Purchasing/Bidding — 过期时间(s/m/h/d)
Categories.yml — 商品分类
| 分类 | 匹配方式 | 说明 |
| 默认 | 黑名单(全部可入) | 未匹配其他分类的商品 |
| 其它 | 黑名单排除模块 | 排除已有分类 |
| 盔甲 | 白名单 Materials | 皮革→下界合金全部盔甲 |
| 武器 | 白名单 Materials | 剑/弓/三叉戟/弩/盾/锤 |
| 工具 | 白名单 Materials | 镐/锹/锄/钓鱼竿/剪刀等 |
| 食物 | Internal-Modules: Foods | 所有食物类 |
| 药水 | 白名单 Materials | 药水/喷溅/滞留 |
| 方块 | Internal-Modules: Blocks | 所有方块类 |
| 唱片 | Internal-Modules: Record | 所有唱片 |
| 资源 | 白名单 Materials | 矿石/锭/粉尘等 |
匹配字段
Materials / Display-Name-Keywords / Display-Lore-Keywords / Enchantments / Options / Custom-Model-Data / Internal-Modules / Serialized-Items / Modules(引用其他分类)
Mailbox.yml
| 配置项 | 说明 | 默认 |
Default-Sorting | 排序方式 | ACCORDING_TO_THE_STATE |
Auto-Delete-Expired-Mails | 自动删除过期邮件 | false |
Join-Messages | 登录提示未读邮件 | true |
Auto-Delete-When-Picking-Up | 签收自动删除 | false |
Return-Movable-Buttons-to-Mailbox | GUI 可移动物品关闭后发邮箱 | false |
Merchant.yml — 商家档案
| 配置项 | 说明 | 默认 |
Balance-Minimum-Value | 银币最低值 | 0 |
Cooldown-Of-Parameters-Setting | 设置参数冷却(秒) | 5.0 |
Store-Settings.Maximum-Name-Words | 商店名最大字数 | 20 |
Store-Settings.Minimum-Name-Words | 商店名最小字数 | 3 |
Store-Settings.Maximum-Description-Line | 描述最大行数 | 3 |
Default-Parameters.Store-Name | 默认商店名 | &2&l{player} &9&l的商店 |
离线任务处理
Automatic-Processing-of-Offline-Tasks:
Join-Messages:
Enabled: true
Delay: 5 # 延迟 tick
Notices: true # 处理离线通知
Change-Balance: true # 处理离线银币变动
ItemBlacklist.yml — 全局物品黑名单
Enabled: false
Whitelist: false # true = 白名单模式
Scan-Shulker-Box: true
Materials:
- COMMAND_BLOCK
- BEDROCK
- BARRIER
Display-Name-Keywords:
- '已绑定'
Display-Lore-Keywords:
- '已绑定'
Enchantments: []
Options: []
Custom-Model-Data: []
Namespaced-Keys: []
全局、市场(GlobalMarket.yml)、邮箱(Mailbox.yml)三级黑名单独立控制,格式相同。
Messages.yml
所有消息支持 &a 颜色代码、#RRGGBB HEX、<gradient:c1:c2>text</gradient> 渐变色。
消息分类:General(通用)/ Market(出售/购买/下架)/ Auction(拍卖)/ Mailbox(邮件)/ Merchant(商家)/ Economy(经济)/ Admin(管理员)。所有消息支持变量如 {price} {currency} {player} {count}。
SignStore.yml — 木牌商店
Sign-Scripts:
'[我的商店]':
Permission:
Default: false
Permission: adventuremarket.signscript.create
Sign-Text:
Line-1: '&0&l[{storeName}&0&l]'
Line-2: '&0&l点击打开'
Commands:
- 'am store view {player}'
需启用 Config.yml > Module-Switches.Sign-Store: true。
GUI 系统
所有 GUI 位于 GUISettings/,采用与 GlobalMarketPlus (GMP) 兼容的 YAML 格式。
通用结构
Simplified-Chinese:
GUI-Title: '&f标题' # 支持 CraftEngine image
GUI-Size: 54 # 9/18/27/36/45/54
Auto-Refresh:
Enabled: true
Delay: 0.5
Shopping-Buttons: # 商品内容区模板
Selling-Item:
Affordable:
Display-Item-Meta: true
Lores: ['!lores!', '...']
Unaffordable:
Lores: ['...']
Location:
Slots-Of-X: [1,2,3,4,5,6]
Slots-Of-Y: [1,2,3,4,5]
Custom-Buttons: # 静态按钮
'按钮名':
Item: 'MAP'
Custom-Model-Data: 520
Commands: [...]
Close-GUI / Refresh-GUI / Messages: ...
点击事件类型
| 事件 | 说明 |
| Left(左键) | 默认动作(购买/出售) |
| Right(右键) | 打开商品详情编辑 |
| Shift_Left | 下架商品 |
| Shift_Right / Middle | 自定义 |
商品 Lore 变量
| 变量 | 说明 |
{type} | 商品类型 |
{player} | 商家名称 |
{displayPrice} | 整售价(格式化) |
{displayRetailPrice} | 零售单价 |
{currency} | 货币名称 |
{uploadTime} | 上架时间 |
{expireTime} | 过期时间 |
{expireTimeLeft} | 剩余时间 |
{displayBiddingPrice} | 当前竞拍价 |
{topBidder} | 最高出价人 |
{uid} | 商品 UID |
!lores! | 插入原始物品 Lore |
全球市场 GUI
内容区 6×5 = 30 槽位。底部工具栏按钮:
| 按钮 | 功能 |
| 关闭界面 | 关闭 GUI |
| 返回菜单 | 返回上级 |
| 说明 | 操作帮助 |
| 商品分类 | 打开分类选择 |
| 刷新 | 刷新当前页 |
| 上一页 / 下一页 | 翻页 |
| 个人档案 | 显示商家信息 |
| 所有商店 | 打开商店列表 |
| 个人邮箱 | 打开邮箱 |
所有 GUI 列表
| 文件 | 说明 |
| GlobalMarketGUI.yml | 全球市场主界面 |
| AuctionGUI.yml | 拍卖列表 + 竞价详情 |
| MailboxGUI.yml | 个人邮箱 |
| CategoryGUI.yml | 分类选择 |
| SearchGUI.yml | 搜索界面 |
| MerchandiseGUI.yml | 商品详情/编辑 |
| MerchantProfileGUI.yml | 商家档案 |
| MerchantStoreGUI.yml | 个人商店 |
| MerchantStoreListGUI.yml | 所有商店列表 |
| SellInventoryGUI.yml | 批量上架 |
| BuyInventoryGUI.yml | 批量收购 |
| TransactionGUI.yml | 交易详情 |
权限系统
权限配置位于 Permissions/,每个节点支持 Default(默认启用)和 Allowed-Groups(允许的组)。
命令权限 (CommandPermissions.yml)
| 权限节点 | 说明 | 默认 |
adventuremarket.command.market | /market 主命令 | true |
adventuremarket.command.market.sell | 出售 | true |
adventuremarket.command.market.buy | 购买 | true |
adventuremarket.command.market.search | 搜索 | true |
adventuremarket.command.market.sellinventory | 批量上架 | true |
adventuremarket.command.auction | /auction | true |
adventuremarket.command.auction.start | 发起拍卖 | true |
adventuremarket.command.auction.bid | 竞拍 | true |
adventuremarket.command.auction.confirm | 确认成交 | true |
adventuremarket.command.mailbox | /mailbox | true |
adventuremarket.command.mailbox.send | 发送邮件 | true |
adventuremarket.command.mailbox.pickup | 签收 | true |
adventuremarket.command.mailbox.delete | 删除 | true |
adventuremarket.command.merchandise | /merchandise | true |
adventuremarket.command.merchandise.remove | 下架 | true |
adventuremarket.command.merchandise.reprice | 改价 | true |
adventuremarket.command.profile | /profile | true |
adventuremarket.command.store | /store | true |
adventuremarket.command.category | /category | true |
adventuremarket.command.money | /money | true |
adventuremarket.command.money.pay | 转账 | true |
adventuremarket.command.reload | 重载 | false |
adventuremarket.command.admin | 管理员 | false |
许多命令有 .for-others 子权限,控制是否可对他人操作,如 adventuremarket.command.mailbox.gui.for-others。
商品权限 (MerchandisePermissions.yml)
| 权限节点 | 说明 | 默认 |
adventuremarket.merchandise.options.editall | 编辑所有商品 | false (Admin) |
adventuremarket.merchandise.marketing-mode.wholesale | 整售模式 | true |
adventuremarket.merchandise.marketing-mode.retail | 零售模式 | true |
adventuremarket.merchandise.cooldown-bypass | 绕过参数冷却 | false |
adventuremarket.merchandise.options.change-price | 修改价格 | true |
adventuremarket.merchandise.options.change-retail-price | 修改零售价 | true |
adventuremarket.merchandise.options.hide-merchandise | 隐藏商品 | true |
adventuremarket.merchandise.options.hide-merchant-name | 隐藏商家名 | false (Vip+) |
adventuremarket.merchandise.options.set-to-unlimited | 无限库存 | false (Admin) |
adventuremarket.merchandise.options.set-to-never-expire | 永不过期 | false (Admin) |
档案权限 (ProfilePermissions.yml)
| 权限节点 | 说明 | 默认 |
adventuremarket.merchant.options.editall | 编辑所有档案 | false (Admin) |
adventuremarket.merchant.cooldown-bypass | 绕过冷却 | false |
adventuremarket.merchant.options.store-closed | 打烊 | true |
adventuremarket.merchant.options.mailbox-locked | 邮箱上锁 | true |
adventuremarket.merchant.options.merchandise-sort | 商品排序 | true |
adventuremarket.merchant.options.hide-merchandises | 隐藏商品 | true |
adventuremarket.merchant.options.hide-merchant-name | 隐藏名称 | false (Vip+) |
adventuremarket.merchant.options.set-store-name | 修改商店名 | false (Vip+) |
adventuremarket.merchant.options.set-store-description | 修改描述 | false (Vip+) |
其他权限 (OtherPermissions.yml)
| 权限节点 | 说明 | 默认 |
adventuremarket.otherpermission.currencies.vault | 使用 Vault 货币 | true |
adventuremarket.otherpermission.currencies.playerpoints | 使用 PlayerPoints | true |
adventuremarket.otherpermission.currencies.default | 使用内建银币 | true |
adventuremarket.otherpermission.itemblacklistbypass | 绕过物品黑名单 | false |
adventuremarket.otherpermission.logincommandcooldownbypass | 绕过登录冷却 | false |
adventuremarket.otherpermission.commandcooldownbypass | 绕过命令冷却 | false |
adventuremarket.admin | 管理员总权限 | OP |
adventuremarket.plusshop | PlusShop 会员功能 | false |
adventuremarket.signscript.create | 创建木牌商店 | false |
经济系统
| 货币 | 提供者 | 显示名 | 命令符号 |
| Vault | Vault 经济接口 | 金币 | G |
| PlayerPoints | PlayerPoints 插件(反射加载) | 点券 | P |
| Default | 内建(内存存储) | 银币 | S |
税率机制
- 上架时根据权限组税率预扣税款(百分比)
- 出售/收购/拍卖可设置不同税率
- 下架是否退税由
Refund-Taxes-Upon-Merchandise-Removal 控制
- 运营者列表中的 UUID 出售商品时不会收到打款(用于系统商店)
数据库
双引擎:SQLite(默认)和 MySQL,均通过 HikariCP 连接池管理。
数据库表
| 表 | 说明 |
| GlobalMarket | 全球市场商品(uid, merchant_uuid, type, item_data, price, currency, tax, upload_time, expire_time, status...) |
| GlobalMarket_auction | 拍卖附加数据(starting_price, current_price, top_bidder_uuid, bid_count, overtime_count...) |
| Merchant | 商家档案(uuid, name, group, balance, store_name, store_description, store_closed, head_texture...) |
| Mailbox | 邮箱(uid, recipient_uuid, sender_uuid, item_data, source, status, send_time, expire_time...) |
| Recorder | 交易记录(id, type, player_uuid, detail, timestamp...) |
| MessageChannel | 跨服消息通道(MySQL 模式) |
MySQL 跨服模式下启用 Auto-Refresh 可定时从数据库拉取其他服务器的数据更新。
PlaceholderAPI 占位符
标识符:%amarket_xxx%
| 占位符 | 说明 |
%amarket_balance% | Vault 余额 |
%amarket_balance_<currency>% | 指定货币余额 |
%amarket_selling_count% | 玩家出售中商品数 |
%amarket_purchasing_count% | 收购中商品数 |
%amarket_bidding_count% | 拍卖中商品数 |
%amarket_mail_count% | 未读邮件数 |
%amarket_total_merchandises% | 市场总商品数 |
%amarket_store_name% | 商店名称 |
%amarket_group% | 权限组名 |
插件联动
| 插件 | 类型 | 说明 |
Vault | 必需 | 经济接口 — 提供金币 withdraw/deposit/getBalance |
PlaceholderAPI | 可选 | 占位符扩展,提供 9 个 %amarket_xxx% 变量 |
PlayerPoints | 可选 | 点券经济 — 通过反射加载 API,无需硬依赖 |
CraftEngine | 可选 | GUI 标题支持 <image:xxx> 自定义图片标签 |
AdventureMail | 可选 | 邮箱功能重定向 — /mailbox gui 自动跳转 AdventureMail |