跳到主要内容

拍卖行

Malkuth 内置拍卖行模式,玩家可以上架物品供其他玩家竞拍,出价最高者在拍卖结束后获得物品。

基本配置

在商店配置文件中将 mode 设为 auction 即可启用拍卖行模式:

mode: 'auction'

竞拍机制

  1. 卖家上架物品并设定起拍价
  2. 买家点击拍品进行出价,每次出价根据 bid.* 配置计算
  3. 默认 bid.mode: PERCENTbid.percent: 10bid.min_increment: 1,也可以改成 FIXED 固定加价
  4. 玩家不能竞拍自己上架的物品
  5. 当有人出更高价时,前一位出价者会收到被超价的通知
  6. 拍卖结束后,最高出价者获得物品,卖家按成交价扣除税费后收款

一口价

开启 buyout.enabled: true 后,玩家上架拍卖时可以设置一口价,买家右键拍品可直接买断并即时结算。

配置项说明
buyout.enabled是否启用一口价
buyout.required是否强制每个拍品都设置一口价
buyout.min_multiplier / max_multiplier相对起拍价的一口价倍率限制
buyout.min_price / max_price一口价绝对金额限制

一口价结算会触发 AuctionBuyoutPreEventAuctionBuyoutPostEvent,并同样参与成交税统计。

拍卖行商店界面

拍卖行商店配置了专属功能图标,方便玩家快速访问拍卖相关功能:

图标字符材质名称说明
Scompass(指南针)搜索拍品按关键词搜索拍卖物品,右键可清除搜索
Lname tag(命名牌)卖家筛选显示并清除当前卖家筛选
Mgold ingot(金锭)我的出价查看自己参与竞拍的物品
Hender 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.uploadannouncement.bidannouncement.soldannouncement.failed 分别对应上架、出价、成交和流拍公告。
  • 公告支持 serverbcworldpermission 范围,并可配置 click_action 让玩家点击公告打开拍卖行。

更多税收写法见 成交税,完整拍卖模式配置见 拍卖行模式