拍卖行
auction 模式让玩家把物品上架为拍卖品,其他玩家通过出价竞拍。商店配置负责拍卖行主界面与货币;拍品数据来自数据库,不读取 shop/*.yml 里的 goods。
适用场景
- 高价值装备、稀有材料、活动道具的竞价交易。
- 玩家之间自由定价,但通过拍卖时长和出价竞争形成市场价格。
- 离线结算场景:到期后由插件结算拍品和资金,相关物品可进入邮箱。
关键配置
| 字段 | 说明 |
|---|---|
mode | auction 或 AUCTION |
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.yml 与 ui/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 时玩家可输入 0 或 skip 跳过 |
buyout.min_multiplier | 一口价相对起拍价的最低倍率,例如 1.5 表示至少为起拍价 1.5 倍 |
buyout.max_multiplier | 一口价相对起拍价的最高倍率;-1 表示不限制 |
buyout.min_price | 一口价绝对最低金额 |
buyout.max_price | 一口价绝对最高金额;-1 表示不限制 |
bid.mode | PERCENT 按当前价百分比加价,FIXED 按固定金额加价 |
bid.percent | PERCENT 模式下的加价比例,10 表示 10% |
bid.fixed | FIXED 模式下的固定加价金额 |
bid.min_increment | 最低加价金额,最终加价不会低于该值 |
上架限制
拍卖行现在会读取 limit.create.limit、limit.white_list 和 limit.black_list:
limit:
create:
limit: '10'
white_list: []
black_list: []
limit.create.limit限制单个玩家在该拍卖行内同时存在的拍品数量,支持 Kether 表达式。white_list配置后,手持物品必须命中任意一条才允许上架。black_list命中任意一条就禁止上架,即使已经通过白名单。- 匹配语法与回收规则一致,常用
material、contains_name、contains_lore、source、nbt。
拍卖公告
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 货币用于拍卖时,也要确保扣款、退款、结算动作能覆盖实际交易流程。
- 拍卖税收只影响卖家实收,买家仍按出价或一口价付款。