拍卖行
Malkuth 内置拍卖行模式,玩家可以上架物品供其他玩家竞拍,出价最高者在拍卖结束后获得物品。
基本配置
在商店配置文件中将 mode 设为 auction 即可启用拍卖行模式:
mode: 'auction'
竞拍机制
- 卖家上架物品并设定起拍价
- 买家点击拍品进行出价,每次出价根据
bid.*配置计算 - 默认
bid.mode: PERCENT、bid.percent: 10、bid.min_increment: 1,也可以改成FIXED固定加价 - 玩家不能竞拍自己上架的物品
- 当有人出更高价时,前一位出价者会收到被超价的通知
- 拍卖结束后,最高出价者获得物品,卖家按成交价扣除税费后收款
一口价
开启 buyout.enabled: true 后,玩家上架拍卖时可以设置一口价,买家右键拍品可直接买断并即时结算。
| 配置项 | 说明 |
|---|---|
buyout.enabled | 是否启用一口价 |
buyout.required | 是否强制每个拍品都设置一口价 |
buyout.min_multiplier / max_multiplier | 相对起拍价的一口价倍率限制 |
buyout.min_price / max_price | 一口价绝对金额限制 |
一口价结算会触发 AuctionBuyoutPreEvent 和 AuctionBuyoutPostEvent,并同样参与成交税统计。
拍卖行商店界面
拍卖行商店配置了专属功能图标,方便玩家快速访问拍卖相关功能:
| 图标字符 | 材质 | 名称 | 说明 |
|---|---|---|---|
S | compass(指南针) | 搜索拍品 | 按关键词搜索拍卖物品,右键可清除搜索 |
L | name tag(命名牌) | 卖家筛选 | 显示并清除当前卖家筛选 |
M | gold ingot(金锭) | 我的出价 | 查看自己参与竞拍的物品 |
H | ender chest(末影箱) | 我的拍品 | 查看自己上架的拍卖物品 |
也可以用 /malshop seller <拍卖行ID> <卖家> 直接打开指定卖家的拍品列表。卖家参数支持玩家名或 UUID,找不到精确匹配时会按玩家名模糊匹配。
拍卖行商店完整配置
以下为 shop/auction.yml 完整内容:
# ============================================
# 拍卖行商店 - 示例配置
# 展示拍卖模式的基本配置
# ============================================
mode: 'auction'
currency:
mode: vault
title: '&6&l拍卖行 &7{page}/{max-page}'
layout:
- '#########'
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- 'PLS#M#H#N'
icons:
'#':
material: "orange stained glass pane"
name: " "
'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我的出价'
lore:
- '&7查看你参与竞拍的物品'
actions:
left:
- 'malkuth auction my_bids'
'H':
material: "ender chest"
name: '&d我的拍品'
lore:
- '&7查看你上架的拍卖物品'
actions:
left:
- 'malkuth auction my_items'
'N':
material: "arrow"
name: '&a下一页 →'
actions:
left:
- 'page next'
'P':
material: "arrow"
name: '&a← 上一页'
actions:
left:
- 'page pre'
拍卖物品展示模板
拍卖物品在界面中的展示样式由 ui/auction_item.yml 控制:
# 拍卖行物品展示模板
template:
lore:
- '{lore}'
- ''
- '&e起拍价: &f{start_price}'
- '&e当前价: &a{current_price}'
- '&e下次出价: &a{next_bid_price} &7({bid_rule})'
- '&e一口价: &6{buyout_price}'
- '&e一口价差额: &6{buyout_difference}'
- '&e预计税率: &6{tax_rate}%'
- '&e预计实收: &a{seller_income}'
- '&e预计税费: &c{tax_amount}'
- '&e最高出价者: &f{bidder}'
- '&e剩余时间: &f{remaining}'
- ''
- '&a左键竞拍 &7| &6右键一口价购买'
模板变量:
| 变量 | 说明 |
|---|---|
{lore} | 物品原始描述 |
{start_price} | 起拍价 |
{current_price} | 当前最高出价 |
{next_bid_price} | 下一次出价金额 |
{bid_rule} | 当前出价规则文本 |
{buyout_price} | 一口价;未设置时显示语言文件中的“无” |
{buyout_difference} | 距离一口价还差多少 |
{bidder} | 当前最高出价者 |
{seller} | 卖家名称 |
{remaining} | 拍卖剩余时间 |
{bid_percent} | 加价百分比;实际计算以 bid.* 为准 |
{tax_rate} / {tax_amount} / {seller_income} | 按当前价格预估的税率、税费和卖家实收 |
相关消息
以下为拍卖行相关的语言文件配置(lang/zh_CN.yml):
| 消息键 | 内容 |
|---|---|
auction-cannot-bid-own | 你不能竞拍自己的物品 |
auction-ended | 该拍卖已结束 |
auction-insufficient-balance | 你的余额不足, 需要 {0} |
auction-not-found | 该拍卖已结束或不存在 |
auction-bid-success | 竞拍成功! 出价: {0} |
auction-outbid-notify | [拍卖] 你在拍卖 {0} 中的出价已被超越, 新价格: {1} |
你可以在 lang/zh_CN.yml 中自定义这些消息的文本内容。
税收与公告
拍卖行支持 tax.* 成交税和 announcement.* 全服公告:
tax.enabled: true后,成交价会扣除税费再发给卖家,税费写入税收流水。/malkuth tax report all 30 AUCTION可以查看最近 30 天拍卖税收汇总。announcement.upload、announcement.bid、announcement.sold、announcement.failed分别对应上架、出价、成交和流拍公告。- 公告支持
server、bc、world、permission范围,并可配置click_action让玩家点击公告打开拍卖行。