全球市场
global_market / global-market 是全服共享的寄售市场。1.18.0 开始,默认配置新增了详情页、挂单级收藏、同类比价、来源搜索、卖家改价和返回状态保留,让玩家从“只看列表”升级为“列表浏览 + 详情决策”的交易体验。
适用场景
- 群组服统一交易所。
- RPG 装备市场:玩家根据品质、类型、等级等 Lore 关键词筛选。
- 生存服寄售行:玩家自由上架,其他玩家按价格排序购买。
- 需要右键查看详情、比价、收藏和改价的高价值物品市场。
关键配置
| 字段 | 说明 |
|---|---|
mode | global_market、global-market 或 GLOBAL_MARKET |
currency | 必填;玩家交易建议配置完整 give、take、deny 动作 |
goods | 不读取;市场商品来自玩家上架数据 |
detail.* | 控制详情页开关、打开按键、自己的商品左键行为、原物品展示和日期格式 |
navigation.* | 控制详情页 / 我的上架返回时是否保留原市场页码、筛选、排序和搜索状态 |
favorite.* | 控制全球市场挂单级收藏功能 |
compare.* | 控制同类比价的匹配顺序与单次展示上限 |
price-edit.* | 控制卖家改价、价格上下限、是否保留原上架时间和管理员代改价 |
limit.create.limit | 每个玩家可上架数量上限,支持 Kether 表达式 |
limit.white_list | 允许上架的物品匹配规则 |
limit.black_list | 禁止上架的物品匹配规则,命中后优先拦截 |
filters.attributes | 筛选维度;当前按物品 Lore 中的关键词匹配 |
layout | 主市场布局,g 展示市场商品 |
icons | 建议放筛选、排序、我的上架、返回等入口 |
玩家能做什么
| 功能 | 入口 | 说明 |
|---|---|---|
| 浏览市场 | 打开 global_market 商店 | 查看所有玩家共享的上架商品 |
| 打开详情页 | 别人的商品默认右键;自己的商品默认右键或左键 | 查看原物品、卖家、价格、库存、上架时间、近期均价和来源识别 |
| 上架商品 | malkuth global_market upload | 手持物品后按提示输入价格 |
| 管理我的商品 | 上架管理界面 | 左键 / 右键查看详情,Shift + 左键 直接下架 |
| 收藏挂单 | 详情页 malkuth global_market favorite | 收藏的是具体挂单 listingId,不是普通商店商品收藏 |
| 同类比价 | 详情页 malkuth global_market compare | 先按匹配规则筛出同类挂单,再按价格升序展示 |
| 同类搜索 | 详情页 malkuth global_market search_similar / search_source | 左键按名称搜,右键按来源搜;识别不到来源时会自动回退到名称搜索 |
| 搜索 / 筛选 / 排序 | malkuth global_market search / filter / sort | 按关键词、Lore 属性和价格 / 名称排序浏览市场 |
| 卖家改价 | 详情页 malkuth global_market edit_price | 支持聊天输入新价格,输入 cancel 可取消 |
| 购买或下架 | 详情页 confirm / delist | 买家点击购买,卖家点击下架;管理员可用独立权限处理他人挂单 |
| 查看均价 | 商品模板或详情页 | 展示最近 24 小时成交均价 |
配置示例
下面节选自默认 shop/global_market.yml:
mode: GLOBAL_MARKET
currency:
mode: "vault"
title: '全球市场'
display: '&6全球市场'
detail:
enabled: true
open-click: right
own-left-action: detail
show-original-item: true
show-info-on-item: false
show-source-id: true
date-format: 'yyyy-MM-dd HH:mm'
navigation:
preserve-state: true
my-uploads-back-to-market: true
favorite:
enabled: true
mode: listing
cleanup-invalid-on-open: false
compare:
enabled: true
match-order:
- source_id
- display_name
- material
max-results-per-open: 500
# 兼容旧配置:仍支持读取 max-scan-per-open,但建议迁移到 max-results-per-open
price-edit:
enabled: true
min-price: 0
max-price: -1
keep-listed-time: true
allow-admin-edit: true
layout:
- '#########'
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- 'PF#S#U#BN'
icons:
'F':
material: "hopper"
name: '&e筛选'
actions:
left:
- 'malkuth global_market filter'
'S':
material: "comparator"
name: '&e排序'
actions:
left:
- 'malkuth global_market sort'
'U':
material: "chest"
name: '&a我的上架'
actions:
left:
- 'malkuth global_market upload'
limit:
create:
limit: '10'
white_list:
- contains_lore:
uncolor: true
match: 允许上架
- contains_name:
uncolor: true
match: 传说
# - source: 'mythicmobs:legendary_box'
# - source:
# source: itemsadder
# item: weapons:legendary_blade
# - nbt: 'malkuth_item_source=mythicmobs'
black_list:
- contains_lore:
uncolor: true
match: 不允许上架
1.18.0 交互升级
- 默认
detail.enabled: true且open-click: right,别人商品默认左键购买、右键看详情;自己的商品默认右键看详情,左键由detail.own-left-action决定是进详情还是直接下架确认。 show-original-item: true时,详情页中间g槽会显示原始物品快照;show-info-on-item: true时,会把卖家、价格、库存、均价和来源识别追加到物品 Lore 中。navigation.preserve-state: true与my-uploads-back-to-market: true会保留原市场页码、筛选、排序和搜索状态;从“我的上架”进详情再返回时,也会尽量回到你来的那一层界面。favorite.mode: listing表示收藏的是具体挂单而不是商品模板;挂单售出或下架后,可以配合cleanup-invalid-on-open自动清理失效收藏。compare.match-order当前支持source_id、display_name、material三种匹配维度;系统会先匹配,再按价格升序展示,最后才应用max-results-per-open上限。price-edit.keep-listed-time: true时,改价不会刷新原上架时间;开启allow-admin-edit: true后,拥有管理员权限的玩家可以代替卖家改价,源码还会额外输出审计日志。
上传限制与排查
limit.white_list、limit.black_list复用和玩家商店相同的 matcher 语法,支持source、!source、nbt、!nbt、Lore / 名称关键词等规则。- 当前上传拦截会优先给出更具体的拒绝原因,例如“来源不允许”“缺少所需标签”“已被服务器标记为不可交易”。
- 服主排查全局市场上传限制时,建议先用
/malkuth source all看当前物品能识别到哪些来源,再用/malkuth itemdebug查看 source tag / source id tag 等基础信息。
运行时权限
| 权限 | 说明 |
|---|---|
malkuth.globalmarket.detail | 查看全球市场详情页 |
malkuth.globalmarket.favorite | 收藏或取消收藏全球市场挂单 |
malkuth.globalmarket.compare | 打开全球市场同类比价界面 |
malkuth.globalmarket.search-similar | 在详情页按名称 / 来源搜索同类挂单 |
malkuth.globalmarket.edit-price | 修改自己的全球市场挂单价格 |
malkuth.globalmarket.admin.edit-price | 允许管理员修改任意全球市场挂单价格 |
malkuth.globalmarket.admin.delist | 允许管理员下架任意全球市场挂单 |
当前实现注意点
global_market不读取goods,所有商品都来自玩家上架数据库。- 普通收藏夹
favorite.yml和全球市场挂单收藏是两套数据:前者收藏商店商品,后者收藏具体挂单。 - 详情页“按来源搜索”内部会把搜索词改成
source:<完整来源ID>;如果当前物品无法识别来源,会提示后回退到按名称搜索。 compare.max-results-per-open是展示上限,不是“先扫多少条再匹配”的老语义;旧配置max-scan-per-open仍兼容读取,但建议尽快迁移。- 卖家改价默认要求
malkuth.globalmarket.edit-price;管理员代改价和下架他人挂单则分别要求malkuth.globalmarket.admin.edit-price与malkuth.globalmarket.admin.delist。 - 自定义 PAPI 货币做玩家交易时,建议同时配置
give、take、deny,避免扣款成功但提示不完整。