• 如果您发现没有下载许可,请先验证邮箱再进行下载;金锭可通过每日签到或资源出售获取,目前没有其他渠道可获取。
  • 游客, 欢迎您来到九域资源社区,如果您是新人,请前往 论坛公告 板块查看新人引导教程 或者 点我打开
  • 已支持自助资源推荐投送,可在资源“更多选项”中使用金粒投放。
  • 已支持 API 上传资源版本更新,点击了解详情。
  • 已支持付费资源设置购买协议,可在“更多选项”中设置。
  • 全站已支持 Markdown 格式文本编辑器,可自由选择使用 BB 代码或 Markdown 格式。
[经济][管理]GlobalMarket-宝可梦全球市场[服务端专用][1.12.2]

原创 [经济][管理]GlobalMarket-宝可梦全球市场[服务端专用][1.12.2] 1.5.8

◆ 游戏版本
1.12.2
◆ 前置/依赖
Pixelmon mod
◆ 模组加载器
  1. Forge

GlobalMarket · 全球市场

需要1.21.1版本的加QQ: 1792102405

Minecraft 1.12.2 · Forge · 宝可梦 Reforged(Pixelmon)8.4.3 一个给玩家用的交易市场:物品和宝可梦都能挂出来卖,可以玩拍卖,还能给别的玩家寄东西。

全球市场主界面


目录


环境要求

项目 版本
Minecraft 1.12.2
Forge 14.23.5.2860(1.12.2 的较新版本均可)
宝可梦 Reforged 8.4.3(必需,本模组就是按这个版本开发的)
Java 8
客户端和服务端都要装本模组,而且两边要用同一个 jar。 两边版本不一致时,客户端会提示"GlobalMarket 客户端版本不兼容,请更新模组"。 拿不准的时候,进游戏输入 /globalmarket version 就能看到两边的版本号。

安装(服主看这里)

  1. 把 GlobalMarket-1.1.0.jar 放进服务端和客户端的 mods/ 目录;
  2. 确认 mods/ 里已经有 Pixelmon Reforged 1.12.2-8.4.3(本模组依赖它);
  3. 启动一次服务器,会自动生成:
    • 配置文件:config/GlobalMarket.cfg
    • 数据文件:config/market.db(默认就是一个文件,建表和升级全自动,不用管);
  4. 进游戏按 J 打开市场(按键可以在"选项 → 控制"里改,分类在"游戏"里), 或者输入 /globalmarket open。
如果服务器启动时报"没有可用的 SQLite 驱动":把 config/GlobalMarket.cfg 里的 database.driver 改成 embedded,并改用同版本发布的 GlobalMarket-1.1.0-embedded.jar (这个版本自带驱动)即可。

玩家上手

打开市场

按 J(或输入 /globalmarket open)就能打开市场:

市场主界面

  • 30 个商品格子(6 列 × 5 行),每张卡片只显示"图标 + 价格", 大金额会写成 15M、1.2k 这样的简写,鼠标指上去能看到完整金额;
  • 搜索框在左上角:输入关键词按回车立刻搜,停下手也会自动搜;
  • 顶部按钮:分类切换(全部 / 物品 / 宝可梦)、排序方式(最新 / 价格高低 / 等级高低)、 筛选(下一节细讲)、售卖方式(全部 / GTS 一口价 / 拍卖);
  • 右侧查看器:点选一只宝可梦后,这里会显示它的照片、等级、性格、特性、性别、 个体值、生命和六边形能力图,买之前先看个明白;
  • 鼠标操作:左键选中商品,右键可以快速买 1 个; 自己的挂单点开是"下架",不能买自己的货;
  • 右下角显示你还能上架多少件("剩余可上架数量");
  • 底部一排按钮:浏览 / 我的在售 / 上架 / 历史 / 邮箱 / 寄送,后面每个功能都有图。

找货:搜索与筛选

点顶部的「筛选」按钮打开筛选面板:

筛选面板

  • 可以按 闪光、性别、体型、等级区间、价格区间、个体值区间、特性 来筛, 每一项都能设上下限,点「清除」一键恢复不限;
  • 性格不用打字:25 种性格直接铺在面板里,点一下就选中(再点一下"不限"或当前格取消);
  • 特性因为种类太多,保留了输入框,想筛什么特性打名字进去就行;
  • 面板里那行"价格"筛的是所有商品,其余项目只对宝可梦生效;
  • 所有筛选都在服务器那边完成,不用担心列表刷不出来。

卖货:两种卖法

市场里有两种卖法:GTS(一口价) 和 拍卖。这是两套独立的界面,各填各的, 不会搞混。四个上架入口用底部导航的「上架」进,然后在界面底部换页:

卖什么 入口 要填的
物品 · 一口价 上架 → 物品页 单价 + 数量
宝可梦 · 一口价 物品页 → 底部「上架宝可梦」 单价
物品 · 拍卖 物品页 → 底部「拍卖」 只填起拍价
宝可梦 · 拍卖 拍卖物品页 → 底部「上架宝可梦」 只填起拍价

每一屏底部都是三个按钮:返回 / 换卖什么 / 换怎么卖(直接跳到另一端)。 服务器如果关掉了拍卖,「拍卖」按钮就不会出现。

① 一口价卖物品 —— 从背包格子里点选要卖的格子,填单价和数量,点「确认上架」:

上架物品

② 一口价卖宝可梦 —— 列表里直接点选(队伍里的排前面,其次 PC 里的),填单价确认:

上架宝可梦

③ 拍卖 —— 和上面选货方式一样,但填的是起拍价(这一批货整批拍卖)。 拍卖显示多长时间是服务器定好的,玩家改不了,界面上只读给你看。 确认前会弹一个二次确认,写清楚卖什么、起拍价多少、拍多久:

确认上架

不管哪种卖法,规则都一样:

  • 挂出去的货由市场代为保管(从背包 / PC 里取走并原样保存), 下架或到期没卖掉都会原样退回,不会变质不会丢;
  • 已经在市场上的宝可梦不会再出现在上架列表里;
  • 队伍里的最后一只宝可梦不能上架(PC 里的不受限);
  • 一次性最多挂多少件由服务器设定(见右下角"剩余可上架数量");
  • 上架成功后会收到一条聊天通知,点一下就能直接打开市场界面。

拍卖怎么玩

  • 出价 = 先扣钱:出价那一刻钱就从账户扣走、押在拍卖上;被别人超过会立刻退回, 所以到点开奖时不怕"中标的人临时没钱";
  • 自己给自己加价只补差价:比如你出过 1000,再出 1500 时只扣 500;
  • 被超过会收到提示:还在线的话,聊天栏会告诉你被谁超了;
  • 到点自动开奖(服务器每 10 秒扫一遍):
    • 有人出价 → 货发给最高出价者(背包放不下就进邮箱),钱扣税后付给卖家;
    • 没人出价 → 流拍,货退回卖家邮箱;
  • 放心拍:就算服务器中途崩了或重启,正在进行的拍卖也不会乱——钱不会丢, 重启后会自动接着把没做完的结算做完;
  • 卖家注意:有人出过价的拍卖不能直接下架(不然买家的钱就悬了),让它拍到结束即可;
  • 界面:拍卖卡片右下角有剩余倒计时,价格一栏显示当前最高价(青色); 选中后点底部「出价」打开出价界面,里面能看到当前价、出价次数、剩余时间、 最高出价者和最近 3 条出价记录;
  • 拍多久是服务器定的(默认 24 小时,服主可以改成 30 分钟速拍等,见配置里的 auction.duration),玩家没有任何地方能改它,命令里也不能填时长;
  • 服务器还可以开防狙击:结束前最后一会儿有人出价,就自动顺延一小段时间, 给别人反应的机会(默认关闭,服主可开)。

给别人寄东西

想直接送东西给别的玩家?用底部导航的「寄送」:

寄送物品

  • 寄物品:填收件人名字 → 从背包格子里点一格 → 填数量 → 确认寄出。 数量留空或填得比手里多,就按整组寄出;
  • 寄宝可梦:点底部「寄宝可梦」切换过去,列表里选一只(队伍优先,其次 PC)→ 确认。 队伍里的最后一只不能送出(PC 里的不受限,不影响你打架);
  • 对方不在线也能寄:他上线后到市场邮箱里领就行(来源会写"好友寄送"); 在线的话会立刻收到一句聊天提示;
  • 只能寄给"服务器认识"的玩家:也就是曾经进过这个服的玩家。名字打错会明确提示 找不到人,不会悄悄把东西寄丢;
  • 和上架一样受黑名单限制,战斗中不能寄宝可梦;
  • 每次寄送都有记录可查;万一寄的过程中出了岔子,东西会原路退回你的背包 (背包放不下就退到邮箱),绝不会凭空消失;
  • 寄出前默认有二次确认(服务器可以选择关掉)。

邮箱与历史

市场邮箱:底部导航的「邮箱」。

市场邮箱

  • 这些情况收到的东西都会进邮箱:买东西时背包满了、卖家不在线、 下架退回、挂单到期退回、系统补偿、好友寄送;
  • 按图标卡片展示,每页 5 条:左边是货物本身的图标(宝可梦显示照片, 钱显示金色 $),右边是名称、来源、金额和时间;
  • 鼠标悬停看完整信息(包括物品描述和来源挂单号),左键点这一行就领取, 底部「全部领取」一键清空。

交易历史:底部导航的「历史」,分"我的购买 / 我的出售",同样是每页 5 条的卡片。 悬停能看到货物名称和描述、买家、卖家、数量、单价、实付金额、税金、交易状态和时间。


命令

界面上能做的,命令基本都能做;反过来有些操作只有命令有(比如把手里拿着的东西寄出去)。 <> 里是必填,[] 里是可选。

命令 说明
/globalmarket open [玩家] 打开市场界面(和快捷键 J 一样;给别的玩家打开需要 OP)
/globalmarket 或 /globalmarket listings 在聊天框里列出市场(不开界面)
/globalmarket items / pokemon 只看物品 / 宝可梦
/globalmarket search <关键词> 搜索
/globalmarket selling 我的在售
/globalmarket sell <槽位0-35> <单价> [数量] 上架背包物品
/globalmarket sellpokemon party <0-5> <价格> 上架队伍宝可梦
/globalmarket sellpokemon pc <箱子> <格子> <价格> 上架 PC 宝可梦
/globalmarket auction <槽位> <起拍价> [数量] 以拍卖上架物品(起拍价是整批的价;拍多久由服务器统一设定,命令里不填)
/globalmarket auctionpokemon party <0-5> <起拍价> 以拍卖上架队伍宝可梦(时长同上)
/globalmarket auctionpokemon pc <箱子> <格子> <起拍价> 以拍卖上架 PC 宝可梦(时长同上)
/globalmarket bid <编号> <出价> 对拍卖出价(钱立刻押上)
/globalmarket buy <编号> [数量] 购买(物品可以只买一部分,按单价 × 数量算钱)
/globalmarket cancel <编号> 下架自己的挂单
/globalmarket send <玩家> [数量] 把主手拿着的物品寄进对方的市场邮箱(不填数量 = 寄整组)。对方不在线也能寄
/globalmarket sendpokemon <玩家> <队伍槽位0-5> 把队伍里的宝可梦送给对方。对方不在线也能寄
/globalmarket history <bought|sold> [页码] 交易历史(买 / 卖)
/globalmarket mail 查看 / 领取邮箱
/globalmarket info <编号> 查看某条挂单详情
/globalmarket version 查看版本、经济与数据库状态(排错第一步)
/globalmarket reload 重载配置(需要权限)
/globalmarket admin ... 管理员专用:remove(强制下架)/ release(恢复暂停挂单)/ inspect(检查)/ recover(处理遗留交易)/ audit(查记录)

服主手册

权限

权限 作用
globalmarket.admin 管理员子命令(/globalmarket admin ...)
globalmarket.reload 重载配置
globalmarket.bypass.blacklist 不受物品 / 宝可梦黑名单限制(上架与寄送都算),适合管理员和活动账号
globalmarket.bypass.limit 完全不受上架数量限制
自定义(见下) 按权限给不同玩家组分配上架额度

权限从哪来:混合端(CatServer 等)读 Bukkit 权限(LuckPerms、PermissionsEx 等都生效), 纯 Forge 端读 Forge 权限(默认按 OP 等级,装了权限模组就由它接管)。

按权限分配上架额度(limits.permission-tiers)

默认所有玩家共用 limits.max-active-listings 这个"同时在售总数"上限。 想给 VIP、MVP 更高的额度,就在 permission-tiers 里写"权限节点 = 最大在售数":

代码:
limits {
    I:daily-listing-limit=0  # 已废弃,仅为兼容旧配置保留,不用管
    I:max-active-listings=100
    # 格式:权限节点=最大在售数;0 = 不限制
    S:permission-tiers <
        globalmarket.limit.vip=100
        globalmarket.limit.mvp=300
        globalmarket.limit.staff=0
     >
}
  • 上例含义:有 globalmarket.limit.vip 的玩家最多同时在售 100 件,MVP 是 300 件, 有 globalmarket.limit.staff 的完全不限;
  • 一个玩家同时命中多个档位时,取最宽的那一档(只会放宽,不会低于 max-active-listings);
  • 档位就是普通权限节点:给玩家加权限就行,不用改配置也不用敲命令 (LuckPerms 示例:/lp user <玩家> permission set globalmarket.limit.vip true);
  • 想换权限节点的名字,改完 /globalmarket reload 即可;玩家重进服务器 (或重新打开市场界面)后,右下角的"剩余可上架数量"就会跟着变。

配置一览(config/GlobalMarket.cfg)

改完配置执行 /globalmarket reload 就能生效,不用重启(个别项除外,下面会标注)。

分类 配置项 默认 干什么用的
market enabled true 市场总开关
economy provider auto 收哪种钱:auto(有 Vault 经济就用 Vault,否则用宝可梦的 PokéDollars)/ vault / pixelmon,详见下文
tax enabled / rate true / 5.0 成交是否收税 / 税率(%)
limits daily-listing-limit 0 已废弃,不起作用了,保留只为兼容旧配置
limits max-active-listings 100 每人同时在售的总数量上限(0 = 不限制)
limits permission-tiers 空 按权限给不同玩家组更高的额度(写法见上一节)
price minimum / maximum 1 / 999999999999 允许的定价范围
listing allow-item / allow-pokemon true / true 允不允许上架物品 / 宝可梦
listing expire 0 挂单挂多久没卖掉就自动下架退回,0 = 永不过期。写法见「时长怎么写」
listing expire-check-seconds 15 服务器每隔多少秒巡查一次过期(最小 10)。商品一到期就会从市场列表里消失,这里只影响"退货运进邮箱"的快慢
listing stale-reservation-minutes 10 一笔买单如果中途出意外(比如保存瞬间断电),超过这个分钟数就会在日志里大声报警提醒你介入。模组不会自动去动玩家的货和钱(防止被人钻空子),需要管理员用 /globalmarket admin 处理
auction enabled true 拍卖行总开关。关掉后不能再出价,已经在拍中的到点按流拍处理、货退卖家
auction duration 24h 每场拍卖拍多久(玩家不可选)。范围 1 分钟 ~ 7 天,写 30m 就是 30 分钟速拍。写法见「时长怎么写」
auction min-increment / min-increment-percent 1 / 0 每次出价最少加多少:固定金额和"当前价的百分之几"两个里取大的(百分比填 0 = 关掉那一算法)
auction anti-snipe-enabled false 防狙击开关:结束前有人出价就把结束时间往后顺延
auction anti-snipe-window-seconds / anti-snipe-extend-seconds 30 / 30 结束前多少秒内出价算"最后一刻" / 每次顺延多少秒
notify listing-created true 玩家上架成功后,要不要发一条可以点击的聊天通知
notify listing-created-message 空 通知正文,留空 = 内置文案(自动跟随玩家语言)
notify listing-created-hint 空 通知末尾那截可点击的文字,留空 = 内置文案
notify listing-created-hover 空 鼠标悬停在通知上显示的说明,留空 = 内置文案
notify listing-created-command /globalmarket open 点击通知后执行什么命令;清空 = 通知不可点击
network action-cooldown-millis 300 同一玩家两次市场操作(上架 / 购买 / 下架 / 领取)之间最少隔多少毫秒,0 = 不限。看行情和操作分开计时:刚上架完马上刷新列表不会被当成"操作太频繁"
network heavy-read-cooldown-millis 1000 「列出我的宝可梦」这类重活之间最少隔多少毫秒——这个操作要给每只宝可梦生成照片,设太短会卡服务器
delivery enabled true 邮箱总开关
general timezone Asia/Shanghai 显示时间用的时区
database type sqlite 数据库类型:sqlite(本地单文件,默认)/ mysql,详见下文
database mysql-host / mysql-port 127.0.0.1 / 3306 MySQL 地址和端口
database mysql-database globalmarket 库名(不存在会自动创建)
database mysql-username / mysql-password root / 123456 MySQL 账号密码
database mysql-create-database true 库不存在时自动建库
database driver server 仅 SQLite 用:server(用服务端自带的驱动)/ embedded(用模组自带的驱动)
compat require-supported-pixelmon-version true 检测到 Pixelmon 版本不匹配时,是否自动关闭市场(防止不兼容出乱子)
blacklist items / pokemon 空 禁止上架的物品 / 宝可梦名单:物品写 modid:name,宝可梦写 Species 或 Species:Form
tooltip item-lines / pokemon-lines 空 商品悬浮说明模板,每行一条;留空 = 内置默认,详见下文

另外三件事:

  • expire 从 0 改成非 0 后,之前挂着的"永不过期"挂单也会按新设置开始算到期;
  • 升级模组后,配置里已经废弃的选项会被自动清理,日志里会列出删了哪些;
  • 只有切换数据库类型需要重启服务器,其它都能热重载。

时长怎么写

listing.expire(挂单挂多久)和 auction.duration(拍卖拍多久)用同一套写法,支持分钟:

写法 意思
30m 30 分钟
2h 2 小时
1h30m 1 小时 30 分
1d 1 天
90 纯数字按分钟算,即 90 分钟
0 关闭(对 expire 来说 = 永不过期)
  • 大小写和空格随意(1H 30M 也行),可以自由组合(1d2h30m);
  • 不支持小数:想写 1.5 小时,请写成 90m;
  • 写错了服务器也不会起不来:日志里提示一条警告,然后退回默认值 (expire → 0,auction.duration → 24h);
  • 范围:挂单过期最长 10 年,拍卖时长 1 分钟 ~ 7 天;写得太大就自动卡在上限;
  • 玩家看到的时长文案会自动挑合适的单位("2 小时" / "30 分钟" / "1 小时 30 分"), 中文客户端看中文、英文客户端看英文。
从旧版本升级:原来按小时填的 expire-hours / duration-hours(比如 6) 会在服务器启动时自动换算成新写法(6h)写回配置,设置的值不会丢, 旧键随后被自动清理(日志里会列出)。 注意换算只在启动时做一次:/globalmarket reload 不会重新换算。 所以升级后重启一次服务端即可;也不要手动把旧键名写回配置再热重载 (新键已经存在,会继续以新键为准)。

收哪种钱:Vault 还是 PokéDollars

默认 economy.provider=auto,模组自己挑:

  • 混合服务端(CatServer / Mohist 等)装了 Vault + 经济插件(EssentialsX、CMI 等) → 自动用 Vault:玩家余额、扣款、收款全走那个插件,货币名也用它(比如 Coins);
  • 纯 Forge 服务端(没有 Bukkit 那套)→ 自动用宝可梦自带的 PokéDollars,什么都不用配;
  • 想指定某一种,就把 provider 写成 vault 或 pixelmon。 强制 vault 但服务器上没挂上时,会自动退回 PokéDollars 并打一条警告, 服务器照常启动,不会崩;
  • 混合端里 Bukkit 插件比 Forge 模组加载得晚,所以市场会在服务器完全启动后、 以及每次要用钱之前自动去挂钩——启动日志里那几行 "Vault is installed but ..." 是正常现象, 插件加载完就自动用上了;
  • 排查时先看 /globalmarket version 输出里的 economy: 一行,它显示当前实际用的是哪种。

数据库:SQLite(默认)/ MySQL

默认用 SQLite,就是一个文件(config/market.db),零配置。 多台服务器想共用同一个市场,或者想集中备份时,改成 MySQL: 把 database.type 改成 mysql,同段的 mysql-* 就是连接参数 (默认 127.0.0.1:3306 / root / 123456 / 库名 globalmarket)。

  • 库不存在会自动建;已存在的直接用;
  • 需要 MySQL 5.7.6+ 或 MariaDB 10.2+;
  • 需要服务器上有 MySQL 驱动:混合端(CatServer / Spigot)一般自带; 纯 Forge 端把 mysql-connector-java-x.y.z.jar 放进 config/globalmarket/jdbc/ 即可; 两处都没有的话,启动日志会直接告诉你;
  • 改 type 要重启服务器;/globalmarket version 会显示当前用的数据库和位置;
  • 切换数据库不会自动搬旧数据,但两边表结构一致,用任何数据库工具都能导出导入。

商品悬浮说明自定义

市场里鼠标指到商品上显示的那段文字,服务器改一次、所有玩家生效(按玩家自己的语言显示):

代码:
tooltip {
    S:item-lines <
        &f{name}
        &7{icon_info}
        &a{lang:globalmarket.gui.row.price} {currency}{price}
        &7{tax_line}
        &7{lang:globalmarket.gui.row.seller} {seller}
        &8{left_line}
        -
        &8{lang:globalmarket.gui.hint.buyFast}
     >
    S:pokemon-lines <
        &f{name} {shiny}
        &7{lang:globalmarket.gui.row.level} {level}  &7{lang:globalmarket.gui.row.nature} {nature}
        &8{lang:globalmarket.gui.row.iv} {iv_hp}/{iv_atk}/{iv_def}/{iv_spa}/{iv_spd}/{iv_spe}  &8{lang:globalmarket.gui.row.iv} {iv_total}
        &8{lang:globalmarket.gui.row.held} {held}  {pokerus}
        &a{lang:globalmarket.gui.row.price} {currency}{price}
        &8{left_line}
     >
    S:auction-item-lines <
        &f{name}
        &7{icon_info}
        &b{lang:globalmarket.gui.row.auctionPrice} {auction_current}
        &7{auction_start_line}
        &7{auction_min_bid_line}
        &7{auction_leader_line}  {auction_bid_line}
        &7{auction_no_bid_line}
        &7{tax_line}
        &7{lang:globalmarket.gui.row.seller} {seller}
        &e{lang:globalmarket.gui.bid.remaining} {auction_left}
        -
        &8{lang:globalmarket.gui.hint.bidFast}
     >
    S:auction-pokemon-lines <
        &f{name} {shiny}
        &7{lang:globalmarket.gui.row.level} {level}  &7{lang:globalmarket.gui.row.nature} {nature}
        &b{lang:globalmarket.gui.row.auctionPrice} {auction_current}
        &7{auction_start_line}
        &7{auction_min_bid_line}
        &7{auction_leader_line}  {auction_bid_line}
        &7{auction_no_bid_line}
        &e{lang:globalmarket.gui.bid.remaining} {auction_left}
     >
}

规则:

  • 一共四份模板:item-lines(直购物品)、pokemon-lines(直购宝可梦)、 auction-item-lines(拍卖物品)、auction-pokemon-lines(拍卖宝可梦)。 拍卖要单独配——拍卖的价格是"整批货的当前价"、数量不可拆分、只能出价不能买, 直购模板里的"单价 / 剩余数量 / 右键快速购买"套上去全是错的;
  • 哪一份留空,那一类就走模组内置默认。不必四份都配: 拍卖的内置默认已经会显示当前价、最后出价人、出价次数、起拍价、最低可出价和剩余时间;
  • 每行一条;单独写一行 -(减号)就是一条分隔线;留空 = 用内置默认;
  • 配了模板就完全按模板显示:模组不再自动追加任何内容——名称、税收、 "右键快速购买"提示等都得靠占位符自己排(上面的示例就是完整写法);
  • 颜色代码:&7 灰、&a 绿、&c 红、&l 加粗(直接写 § 也行);
  • {lang:词条键} 会自动换成玩家客户端语言的文字,比如 {lang:globalmarket.gui.row.price} 中文显示"价格"、英文显示"Price";
  • 开了税之后,想显示"税收 ¥50(税率 5%)"这一行,用 {tax_line} 占位符;
  • 显示出来是空的行会自动省略;写错的占位符会原样露出来,方便你发现拼错了。

物品和宝可梦通用的占位符:

占位符 显示什么
{id} 商品编号
{type} 类别(物品 / 宝可梦)
{name} 名称(物品名或宝可梦名)
{price} / {price_compact} 单价(完整 / 1.2k 简写)
{currency} 货币符号(跟经济插件走)
{total} 把剩下的全买下来的总价
{quantity} / {remaining} / {sold} 总数量 / 剩余 / 已售出
{seller} 卖家名
{listed} / {expires} 上架时间 / 过期时间
{left} / {left_line} 剩余时间 / 整行"剩余 xx"(永不过期时整行消失)
{item_id} 物品注册名(modid:name,宝可梦挂单为空)
{icon_info} 物品自带的说明(附魔、lore、耐久,宝可梦照片资料等,可能多行)。模板里单独占一行,渲染时按内容展开;没内容时整行自动省略;模板里不写它就不显示(此时也不解析图标)
{tax} / {tax_total} 卖 1 个要交的税 / 剩下的全卖掉的税(没开税时为空)
{tax_rate} 税率文字(5%、2.5%;没开税时为空)
{tax_line} 整行"税收 ¥50(税率 5%)",没开税时整行消失

宝可梦专用(物品挂单上这些全是空的,所以可以共用一份模板):

占位符 显示什么
{species} / {dex} 种类名 / 全国图鉴编号
{form} / {form_name} 形态编号 / 形态名
{nickname} 昵称(没有就是空)
{level} 等级
{nature} / {ability} 性格 / 特性
{gender} 性别(♂ / ♀ / 无性别)
{growth} 体型(迷你 → 巨大 等)
{shiny} 闪光标记(§e★,非闪光为空)
{held} 携带物品名
{ball} 球种
{ot} 初训家
{iv_total} / {ev_total} 个体值总和(/186)/ 努力值总和(/510)
{hp} / {max_hp} 当前生命 / 最大生命
{moves} 招式(/ 分隔,最多 4 个)
{pokerus} / {egg} 病毒 / 蛋:有 = 绿色 ✓,没有 = 空串(整行自动省略)
{iv_hp} {iv_atk} {iv_def} {iv_spa} {iv_spd} {iv_spe} 六项个体值(生命 / 攻击 / 防御 / 特攻 / 特防 / 速度)
{ev_hp} {ev_atk} {ev_def} {ev_spa} {ev_spd} {ev_spe} 六项努力值
{stat_hp} {stat_atk} {stat_def} {stat_spa} {stat_spd} {stat_spe} 实时能力值(算上性格、努力加成后的当前数值)
{mint_nature} / {has_mint} 薄荷性格 / 有没有喂过薄荷(喂过 = ✓)
{friendship} 亲密度
{palette} 精灵皮肤(自定义材质名,没有就是空)
{ribbons} / {ribbon_count} 奖章(/ 分隔)/ 奖章数量
{dynamax} 极巨化等级(0~10)
{ability_slot} 特性槽(第一特性 / 第二特性 / 隐藏特性)
{ht_count} 被金色王冠提升过的项数(0~6)
{ht_hp} {ht_atk} {ht_def} {ht_spa} {ht_spd} {ht_spe} 对应那一项有没有用过王冠(用过 = ✓,否则空)
{base_hp} {base_atk} {base_def} {base_spa} {base_spd} {base_spe} / {base_total} 种族值六项 / 总和
{egg_cycles} 蛋的剩余孵化周期(不是蛋就是空)
{can_trade} / {can_breed} 能否交易 / 能否繁殖(✓ 或 ✗)
{legendary} / {ultra_beast} 神兽 / 异兽(是 = ★,否则空)
{lake_enchant} / {lake_enchant_max} / {lake_enchant_left} 湖之众附魔:已经附魔过几次 / 最多几次 / 还剩几次(只有由克希、艾姆利多、亚克诺姆有,其它宝可梦这三个都是空)
{mew_clones} / {mew_clone_max} / {mew_clone_left} 梦幻克隆:已经克隆几次 / 最多几次 / 还剩几次(只有梦幻有)
{meltan_ores} 美录坦熔炼掉的矿石数(只有美录坦有)
{minior_core} 小陨星的核心颜色编号 0~6(颜色名直接用 {form_name},那就是"红色核心/蓝色核心";只有小陨星有)
{shear_stage} 咩利羊 / 毛辫羊 / 毛毛角羊的羊毛生长阶段(0 = 刚剪过,越大毛越长;其它宝可梦为空)
{deoxys_sus} 代欧奇希斯是否解锁了 Sus 形态(是 = ✓)
{recoil} 野蛮鲈鱼的反作用力计数

这些是"特殊宝可梦专属属性":每项只有对应物种才有值,其余宝可梦一律为空 (模板里那一行会自动消失),所以一份模板可以通吃所有宝可梦。

注意:{lake_enchant} 是"湖之众给红宝石附魔"这个特殊宝可梦功能,不是 Minecraft 原版的物品附魔 (原版附魔不在悬浮说明里单独提供;要让模板显示,用 {icon_info} 把图标自带说明整块搬出来)。

宝可梦名字会自动翻译:{name}、{species}、{form_name}、{nature}、{mint_nature}、 {ability}、{ball}、{moves}、{growth}、{ribbons}、{held}(携带物品名)这些会优先显示 玩家客户端语言的名字(皮卡丘 / 固执 / 静电 / 十万伏特 / 精灵球 / 冠军奖章 / 钻石剑……), 该语言没有的词条退回英文名;玩家自己起的昵称、自己铁砧改过的物品名永远最优先。

拍卖专用(直购挂单上这些全是空的,写了也会整行消失):

占位符 显示什么
{auction_current} 当前价(还没人出价时就是起拍价)
{auction_start} / {auction_start_line} 起拍价 / 整行"起拍价 ¥100"
{auction_min_bid} / {auction_min_bid_line} 最低可出价 / 整行"最低可出价 ¥110"(服务端没开拍卖时为空)
{auction_count} 出价次数(还没人出价时为 0)
{auction_leader} / {auction_leader_line} 当前最高出价人 / 整行"最高出价 玩家名"(没人出价时为空)
{auction_bid_line} 整行"出价次数 3"(没人出价时为空)
{auction_no_bid_line} 整行"还没人出价"(有人出价时为空)
{auction_left} 剩余时间(紧凑写法,如 3d 4h / 45m)
{auction_line} 整行"当前价 ¥150"
{sale_type} "拍卖" 或 "一口价"
拍卖挂单上 {price} 仍是起拍价(与上架时填的一致,也是整批货的价), 想看"现在多少钱"请用 {auction_current}。 拍卖的数量不可拆分,所以 {quantity}/{remaining} 在拍卖里没有意义。

上架通知自定义

玩家上架成功后会收到一条聊天消息,点一下直接打开市场界面(默认执行 /globalmarket open):

代码:
notify {
    B:listing-created=true
    S:listing-created-message=   # 正文,留空 = 内置文案(跟随玩家语言)
    S:listing-created-hint=      # 末尾可点击的文字,留空 = 内置文案(默认「[点击打开市场]」)
    S:listing-created-hover=     # 鼠标悬停说明,留空 = 内置文案
    S:listing-created-command=/globalmarket open  # 点击后执行的命令;清空 = 不可点击
}

模板写法和悬浮说明完全一样(& 颜色代码、{占位符}、{lang:词条键}),可用占位符:

占位符 显示什么
{name} 货物名称
{quantity} 上架数量(宝可梦固定为 1)
{price} / {price_compact} 单价(完整 / 1.2k 简写)
{total} / {total_compact} 总价(单价 × 数量)
{currency} 货币符号
{id} 商品编号
{seller} 卖家名
{type} 类别(物品 / 宝可梦)

例:S:listing-created-message=&a已上架 &f{name}&a x{quantity},单价 &6{currency}{price}&a(商品 #{id})

留空时的内置文案自带中英文,玩家可以点、也可以无视,不占聊天框多少地方。


上架通知自定义

玩家上架成功后会收到一条聊天消息,点一下直接打开市场界面(默认执行 /globalmarket open):

代码:
notify {
    B:listing-created=true
    S:listing-created-message=   # 正文,留空 = 内置文案(跟随玩家语言)
    S:listing-created-hint=      # 末尾可点击的文字,留空 = 内置文案(默认「[点击打开市场]」)
    S:listing-created-hover=     # 鼠标悬停说明,留空 = 内置文案
    S:listing-created-command=/globalmarket open  # 点击后执行的命令;清空 = 不可点击
}

模板写法和悬浮说明完全一样(& 颜色代码、{占位符}、{lang:词条键}),可用占位符:

占位符 显示什么
{name} 货物名称
{quantity} 上架数量(宝可梦固定为 1)
{price} / {price_compact} 单价(完整 / 1.2k 简写)
{total} / {total_compact} 总价(单价 × 数量)
{currency} 货币符号
{id} 商品编号
{seller} 卖家名
{type} 类别(物品 / 宝可梦)

例:S:listing-created-message=&a已上架 &f{name}&a x{quantity},单价 &6{currency}{price}&a(商品 #{id})

留空时的内置文案自带中英文,玩家可以点、也可以无视,不占聊天框多少地方。


常见问题

客户端提示"GlobalMarket 客户端版本不兼容,请更新模组"? 客户端和服务端的 jar 版本不一致,两边换成同一个 jar;用 /globalmarket version 看双方版本。

界面文字显示成一串英文 key(比如 globalmarket.gui.title)? 确认客户端语言设置是中文;必要时按 F3+T 重载资源。

挂单过期了,邮箱里却没有? 先看 listing.expire 是不是 0(0 = 永不过期,永远不会退)。过期退回一律进邮箱, 卖家在线时还会收到一句聊天提示;过期退回每轮最多处理 5 条,积压多时会分几轮清完。

为什么买不了自己的挂单? 有意设计的。自己的货用"下架"拿回来就行。

宝可梦上架失败? 常见原因:这只宝可梦已经在市场上、是队伍里的最后一只、在黑名单里、正在战斗、 价格超出 price 范围、达到在售数量上限。

权限给了,但额度没变? 混合端读 Bukkit 权限(LuckPerms 等),纯 Forge 端读 Forge 权限; 确认玩家在线、权限节点和配置里写的一字不差,然后 /globalmarket reload, 再让玩家重进服务器,或用 /globalmarket version 核对。


数据与备份

  • 默认所有数据都在 config/market.db 这一个文件里,备份它就等于备份整个市场; 用 MySQL 时数据在对应的库里,按平时的数据库备份流程做即可;
  • 模组升级时数据库结构自动升级,不会丢数据;
  • 有异常挂单或遗留交易,管理员用 /globalmarket admin audit 查、/globalmarket admin recover 处理。

最近更新

最近一次更新改了什么(大白话版)见 WHATSNEW.md; 完整开发记录见 CHANGELOG.md。


许可与致谢

  • 本模组以 MIT 许可发布;
  • 不含任何 Pixelmon 的资源或代码,运行需要玩家自行安装 Pixelmon Reforged; 请遵守 Pixelmon 的授权条款,不要随包分发 Pixelmon。
作者
lapin2022
下载
217
查看
1,856
首次发布
最后更新

Ratings

5.00 星 3 星

来自lapin2022的更多资源

最新更新

  1. 功能更新

    1.5.8(当前版本 · 2026-10-15)...
  2. 功能更新

    1.4.0(最新):不再因插件崩溃、物品名全跟着语言、宝可梦信息看得更多 从...
  3. 功能更新

    1.3.1(最新):拍卖一眼认得出、说明更好读、跨服与点券 这次加了什么 ①...

最新评论

bbdlla

Lv.1 泥土
2023-12-04
8
0
0
钻石
0.00 钻石
金锭
1,721 金锭
解决问题非常迅速,孩子很爱吃!!!

胡闹闹

Lv.1 泥土
2019-01-20
2
0
0
钻石
0.00 钻石
金锭
2,903 金锭
没bug 好用

XHhao

Lv.1 泥土
2022-11-18
0
0
0
钻石
0.00 钻石
金锭
1,276 金锭
全UI傻瓜操作,不用指令上架,再也没有玩家问怎么上架东西了