拍卖行
Malkuth 内置拍卖行模式,玩家可以上架物品供其他玩家竞拍,出价最高者在拍卖结束后获得物品。
基本配置
在商店配置文件中将 mode 设为 auction 即可启用拍卖行模式:
mode: 'auction'
竞拍机制
- 卖家上架物品并设定起拍价
- 买家点击拍品进行出价,每次出价在当前价格基础上加价一定百分比
- 默认每次加价幅度为 10%(当前源码固定为
currentPrice * 0.1,最低加价 1) - 玩家不能竞拍自己上架的物品
- 当有人出更高价时,前一位出价者会收到被超价的通知
- 拍卖结束后,最高出价者获得物品
拍卖行商店界面
拍卖行商店配置了专属功能图标,方便玩家快速访问拍卖相关功能:
| 图标字符 | 材质 | 名称 | 说明 |
|---|---|---|---|
S | compass(指南针) | 搜索拍品 | 按关键词搜索拍卖物品 |
M | gold ingot(金锭) | 我的出价 | 查看自己参与竞拍的物品 |
H | ender chest(末影箱) | 我的拍品 | 查看自己上架的拍卖物品 |
拍卖行商店完整配置
以下为 shop/auction.yml 完整内容:
# ============================================
# 拍卖行商店 - 示例配置
# 展示拍卖模式的基本配置
# ============================================
mode: 'auction'
currency:
mode: vault
title: '&6&l拍卖行 &7{page}/{max-page}'
layout:
- '#########'
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- 'P#S#M#H#N'
icons:
'#':
material: "orange stained glass pane"
name: " "
'S':
material: "compass"
name: '&e搜索拍品'
lore:
- '&7按关键词搜索拍卖物品'
actions:
left:
- 'malkuth search'
'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最高出价者: &f{bidder}'
- '&e剩余时间: &f{remaining}'
- ''
- '&a点击竞拍 (加价{bid_percent}%)'
messages:
bid_percent: '10'
模板变量:
| 变量 | 说明 |
|---|---|
{lore} | 物品原始描述 |
{start_price} | 起拍价 |
{current_price} | 当前最高出价 |
{bidder} | 当前最高出价者 |
{remaining} | 拍卖剩余时间 |
{bid_percent} | UI 显示用的加价百分比文本(不影响实际计算) |
相关消息
以下为拍卖行相关的语言文件配置(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 中自定义这些消息的文本内容。