跳到主要内容

拍卖行

auction 模式让玩家把物品上架为拍卖品,其他玩家通过出价竞拍。商店配置负责拍卖行主界面与货币;拍品数据来自数据库,不读取 shop/*.yml 里的 goods

适用场景

  • 高价值装备、稀有材料、活动道具的竞价交易。
  • 玩家之间自由定价,但通过拍卖时长和出价竞争形成市场价格。
  • 离线结算场景:到期后由插件结算拍品和资金,相关物品可进入邮箱。

关键配置

字段说明
modeauctionAUCTION
currency必填;负责出价、结算和退款相关货币处理
goods不读取;拍品来自玩家上架数据
title拍卖行主界面标题,可使用分页变量
layout主界面布局,g 用于展示有效拍卖品
icons建议放“搜索拍品”“卖家筛选状态”“我的出价”“我的拍品/上架”等入口
buyout.*一口价开关、是否必填、价格倍率和绝对价格限制
upload.*默认拍卖时长、最短/最长时长、指令上架冷却和二次确认
bid.*出价加价规则,支持百分比或固定金额,并可设置最低加价
limit.*拍卖上架数量限制、白名单和黑名单
tax.*成交税配置,买家按成交价付款,卖家实收扣除税费
announcement.*拍卖上架、出价、成交、流拍公告配置
ui/auction_my_bids.yml我的出价界面模板
ui/auction_upload.yml我的拍品与上架界面模板

玩家能做什么

功能入口说明
浏览拍卖品打开 auction 商店查看当前有效拍卖品
继续出价点击拍卖品或“我的出价”列表按 UI 的出价流程竞拍
搜索拍品图标动作 malkuth auction search在聊天栏输入关键词,匹配物品名、Lore、拍卖 ID、卖家名或卖家 UUID
按卖家筛选/malshop seller <拍卖行ID> <卖家>,或清除按钮 malkuth auction clear_seller_filter支持精确玩家名 / UUID,找不到精确匹配时按玩家名模糊匹配
查看我的出价图标动作 malkuth auction my_bids查看自己参与过的拍卖
查看我的拍品图标动作 malkuth auction my_items打开自己的拍品与上架管理界面
上架拍卖ui/auction_upload.yml 中的 malkuth auction upload/malkuth auction upload <商店> <起拍价> [一口价] [时长]手持物品后输入起拍价、可选一口价和拍卖时长
一口价购买拍卖列表右键拍品开启 buyout.enabled 且拍品设置了一口价时,买家可直接买断
取消拍卖我的拍品界面左键自己的拍品当前拍品无人出价时可取消并返还物品
查看税收/malkuth tax ...统计拍卖成交税、卖家实收和成交额

配置示例

下面节选自默认 shop/auction.ymlui/auction_upload.yml

mode: AUCTION

currency:
mode: vault

title: '&6&l拍卖行 &7{page}/{max-page}'
display: '&6拍卖行'

buyout:
enabled: false
required: false
min_multiplier: 1.5
max_multiplier: -1
min_price: 0
max_price: -1

upload:
default-duration-hours: 24
min-duration-hours: 1
max-duration-hours: 168
command-cooldown-seconds: 5
command-confirm: true

bid:
mode: PERCENT
percent: 10
fixed: 100
min_increment: 1

tax:
enabled: false
rate: 0.0

layout:
- '#########'
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- 'PLS#M#H#N'

icons:
'S':
material: "compass"
name: '&e搜索拍品'
lore:
- '&7当前搜索: &f{search_keyword}'
- '&7左键按关键词搜索拍卖物品'
- '&7右键清除搜索'
actions:
left:
- 'malkuth auction search'
right:
- 'malkuth auction clear_search'
'L':
material: "name tag"
name: '&b卖家筛选'
lore:
- '&7当前筛选: &f{seller_filter}'
- '&7点击清除卖家筛选'
actions:
left:
- 'malkuth auction clear_seller_filter'
'M':
material: "gold ingot"
name: '&6我的出价'
actions:
left:
- 'malkuth auction my_bids'
'H':
material: "ender chest"
name: '&d我的拍品'
actions:
left:
- 'malkuth auction my_items'
# ui/auction_upload.yml
icons:
'U':
material: "emerald"
name: '&a上架拍卖'
lore:
- '&7将手持物品上架到拍卖行'
- '&7需要设置起拍价和时长'
actions:
left:
- 'malkuth auction upload'

一口价与出价规则

字段说明
buyout.enabled是否启用一口价购买;关闭后拍品只能竞价到期结算
buyout.required开启后一口价是否必填;为 false 时玩家可输入 0skip 跳过
buyout.min_multiplier一口价相对起拍价的最低倍率,例如 1.5 表示至少为起拍价 1.5 倍
buyout.max_multiplier一口价相对起拍价的最高倍率;-1 表示不限制
buyout.min_price一口价绝对最低金额
buyout.max_price一口价绝对最高金额;-1 表示不限制
bid.modePERCENT 按当前价百分比加价,FIXED 按固定金额加价
bid.percentPERCENT 模式下的加价比例,10 表示 10%
bid.fixedFIXED 模式下的固定加价金额
bid.min_increment最低加价金额,最终加价不会低于该值

上架限制

拍卖行现在会读取 limit.create.limitlimit.white_listlimit.black_list

limit:
create:
limit: '10'
white_list: []
black_list: []
  • limit.create.limit 限制单个玩家在该拍卖行内同时存在的拍品数量,支持 Kether 表达式。
  • white_list 配置后,手持物品必须命中任意一条才允许上架。
  • black_list 命中任意一条就禁止上架,即使已经通过白名单。
  • 匹配语法与回收规则一致,常用 materialcontains_namecontains_loresourcenbt

拍卖公告

announcement 可以配置上架、出价、成交、流拍四类公告:

announcement:
upload:
enabled: false
message: '&6[拍卖] &e{seller} &f上架了 &r{item} &7x{amount} &f起拍价 &e{start_price}'
click_action: 'command inline "malshop open auction"'
scopes:
server:
enabled: true
message: '&6[拍卖行] &f{seller} &7上架了 &r{item}&7,起拍价 &e{start_price}&7!'
click_action: 'command inline "malshop open auction"'
cooldown_seconds: 0
min_price: 0
范围说明
server当前子服广播
bc跨服广播,依赖 Redis 跨服同步
world卖家或触发玩家所在世界广播
permission仅发送给拥有 node 权限的玩家

通用占位符包括 {shop}{shop_display}{auction_id}{item}{material}{amount}{price}{current_price}{start_price}{buyout_price}{has_buyout}{remaining}{tax_rate}{tax_amount}{seller_income}。上架额外提供 {seller}{seller_uuid}{hours};出价额外提供 {bidder}{bidder_uuid}{previous_price};成交额外提供 {buyer}{buyer_uuid}{seller}{seller_uuid}

成交税

拍卖成交时会按 tax.* 计算税费。买家按最终成交价或一口价付款,卖家结算时获得 成交价 - 税费,并写入税收流水。完整配置见 成交税

当前实现注意点

  • auction 模式不读取 goods,固定商品请放到 普通商店
  • 默认 shop/auction.yml 里的“搜索拍品”按钮现在使用 malkuth auction search,只筛选当前拍卖行列表;旧配置中写 malkuth search 仍会被拍卖行界面兼容为拍卖搜索。
  • bid_percent 这类 UI 文本只影响显示;实际加价以 bid.* 配置为准。
  • 一口价会即时结算拍卖,触发一口价相关事件;普通竞价仍等到拍卖到期后由结算任务处理。
  • 自定义 PAPI 货币用于拍卖时,也要确保扣款、退款、结算动作能覆盖实际交易流程。
  • 拍卖税收只影响卖家实收,买家仍按出价或一口价付款。

相关页面