Suite

概览

Market 市场系统功能概览

Market 全球市场

模块简介

Market 是 Suite 的核心经济交易模块,提供 拍卖行玩家商店系统商店回收商店 四合一交易系统。模块通过 ArcartX UI(Aria)实现全图形化交互,支持多货币、跨服同步、动态价格策略等高级功能。

如果你只需要系统商店,可以前往 ArcartX 官方购买官方付费插件 SystemShop

属性
模块 IDmarket
版本1.4.4
主类xuanmo.arcartxsuite.market.MarketModule
配置文件config.yml
消息文件messages.yml
外部依赖PlaceholderAPI(必需,缺失时模块跳过加载)
模块依赖无(本体内置 API 即可运行)

功能特性

特性说明
拍卖行玩家间纯竞价交易,支持分类筛选、拼音搜索、竞价加价规则、手续费与税率
玩家商店玩家以固定价格上架物品,其他玩家直接购买(无竞价),支持卖家浏览
系统商店管理员通过 YAML 文件定义商店,支持多物品来源(原版/MythicMobs/NeigeItems/Overture/MMOItems)
回收商店玩家将物品出售给系统,支持自动回收(拾取触发)和一键批量回收
多货币支持拍卖行、玩家商店、回收商店均支持多货币,货币 ID 由 CurrencyBridgeAPI 统一管理
跨服同步Redis 缓存 + 跨服事件同步,多服架构下拍卖列表、限购记录、动态商品实时同步
动态价格系统商店支持三种动态策略:价格浮动、随机刷新(神秘商人)、定时换货
VIP 税率减免按权限节点配置不同税率减免,离线玩家通过 LuckPerms 查询权限
回收价格倍率按权限组设置回收价格加成(如 VIP 1.2 倍、MVP 1.5 倍)
物品黑名单按材质/物品库 ID/名称/Lore/NBT 键拦截不可交易物品
分类系统按 NBT/PDC 路径自动分类拍卖行物品,支持自定义分类与优先级
到期退回到期未售物品通过邮件系统或背包退回,支持安全发放(离线不丢)
交易历史记录所有交易历史(购买/售出/竞价/到期/取消),可通过 UI 查看
待发放队列竞拍成功和到期退回的物品/货币进入待发放队列,玩家上线自动补发
指令商品系统商店支持指令商品类型,购买后由控制台执行奖励命令
限购系统系统商店支持每日/每周/每月/终身限购,跨服同步限购记录
库存系统系统商店支持无限/全服共享/玩家独立三种库存模式
折扣系统系统商店按权限节点配置购买折扣,取最低折扣值

依赖

依赖类型名称必需说明
模块依赖-Market 不依赖其他模块即可运行
外部依赖PlaceholderAPI注册 %axsmarket_xxx% 占位符;external-depends 硬依赖,未安装时模块不加载
外部软依赖MythicMobs提供 MythicMobs 物品来源
外部软依赖NeigeItems提供 NeigeItems 物品来源
外部软依赖Overture提供 Overture 物品来源(含原生序列化)
外部软依赖MMOItems提供 MMOItems 物品来源
外部软依赖LuckPerms离线玩家税率减免权限查询
宿主能力MailDispatchable到期物品通过邮件退回(需 Mail 模块)
宿主能力EventBusCapability发布交易事件供其他模块监听
宿主能力SignalDispatchable上架成功后派发信号
宿主配置Redis拍卖列表缓存,减轻数据库压力
宿主配置CrossServer跨服数据同步(Redis + Proxy 双后端)

市场类型详解

Market 模块包含四种不同的交易子系统,各自适用场景不同:

拍卖行 vs 玩家商店

对比项拍卖行玩家商店
交易方式竞价(价高者得)固定价格直接购买
价格机制起拍价 + 竞价加价规则固定价格
上架时长1 小时 ~ 7 天1 小时 ~ 30 天
默认时长24 小时7 天
每人上架上限10 件20 件
手续费上架费(固定金额)上架费(固定金额)
税率成交价 5%(可配置 VIP 减免)成交价 5%(可配置 VIP 减免)
到期处理有人竞价→成交结算;无人竞价→退回物品到期→退回物品
数据库表axs_market_listingsaxs_market_player_shop_listings
UI IDAXS:market_auctionAXS:market_player_shop

系统商店 vs 回收商店

对比项系统商店回收商店
交易方向玩家从系统购买玩家向系统出售
商品来源管理员 YAML 定义管理员 YAML 定义回收表
物品来源原版/MythicMobs/NeigeItems/Overture/MMOItems同左(用于匹配回收物品)
价格固定价格(支持折扣)固定价格(支持倍率加成)
库存无限/全服共享/玩家独立无库存概念
限购支持(日/周/月/终身)
特殊功能指令商品、动态价格策略自动回收、批量回收
配置目录shops/*.ymlrecycle/*.yml

交易流程

购买流程(系统商店)

玩家打开商店 UI → 选择商品 → 输入购买数量
  → 服务端校验数量(1~2304)→ 检查限购记录
  → 检查库存(global/per-player)→ 计算价格(含折扣)
  → 扣款(CurrencyBridge.withdraw)
  → 生成物品(ShopItemFactory.create)
  → 放入背包(溢出按比例退款)
  → 更新限购记录 + 跨服广播
  → 记录成交量(动态策略调价依据)

上架流程(拍卖行)

玩家打开上架 UI → 选择背包物品 → 输入起拍价/时长/货币/留言
  → 服务端校验价格范围、时长范围、留言长度、敏感词
  → 检查上架数量限制 → 检查物品黑名单
  → 校验手持物品一致性(防复制)
  → 先扣除背包物品(占有)
  → 扣除上架费(如有)
  → 序列化物品 → 生成拼音搜索 token
  → 自动分类(NBT/PDC 匹配)
  → 入库 → 失效 Redis 缓存 → 跨服广播
  → 派发信号 + 发布 EventBus 事件

竞价流程(拍卖行)

玩家出价 → 校验出价 ≥ 最低出价(max(当前价×加价比例, 当前价+加价绝对值))
  → 扣款(冻结资金)
  → 数据库 CAS 原子更新(updateListingBidIfHigher)
  → CAS 失败 → 退还本次出价
  → CAS 成功 → 退还上一位最高出价者押金(安全发放,离线入待发放队列)
  → 通知被超越者(chat/actionbar/title)
  → 记录竞价历史 → 失效 Redis 缓存 → 跨服广播

到期结算流程(拍卖行)

定时任务扫描到期物品 → CAS 抢占(ACTIVE → SOLD/EXPIRED)
  → 有人竞价(SOLD):
      计算税费(含 VIP 减免,离线通过 LuckPerms 查询)
      卖家收款(安全发放)→ 买家得物品(安全发放)
      记录交易历史
  → 无人竞价(EXPIRED):
      退还物品给卖家(安全发放)
      通知卖家 → 记录历史
  → 失效 Redis 缓存

回收流程

玩家打开回收 UI → 服务端扫描背包(0-35 格)
  → 逐件匹配回收表条目 → 计算回收价(基础价 × 权限倍率)
  → 显示可回收物品列表与预期收益
  → 玩家确认 → 扣除物品 → 货币入账
  → 记录回收统计

本页目录