- ◆ 游戏版本
- 1.21.1
- ◆ 服务端核心
- Arclight
- ◆ 前置/依赖
- Cobblemon
介绍
LCCobbleMarket 是一款基于 Cobblemon 开发的宝可梦全球交易站(GTS)插件。支持Arclight[Fabirc]/[NeoForge]玩家可以把队伍中的宝可梦和背包里的道具挂到市场上出售,用宝可币或点券定价,其他玩家在宝可梦市场或道具市场里浏览、确认后即可购买。上架的宝可梦会完整保留等级、个体值、努力值、性格、特性、技能、持有物等全部数据,成交后原样交给买家;下架时也能随时取回。插件支持两种界面:安装 LCCore 客户端模组时,使用专属的模组交易界面,直接还原显示宝可梦,还能查看成交记录;未安装时,自动改用插件自带的箱子界面,界面的标题、布局、按钮、物品和描述文字都可以在 ui.yml 中自由定制。宝可梦名称、性格、特性、技能等信息会按服务器设置的语言本地化显示。
此外,插件支持 SQLite 单服存储,也支持 MySQL 多服共享同一个交易站,开启 Redis 后各子服的市场变动会实时同步刷新。插件还提供丰富的配置选项,可以自定义每人上架上限(管理员可按玩家单独调整)、挂单有效期、成交手续费、价格区间、两种货币对接的经济插件,以及禁止上架的物品和宝可梦(支持按属性表达式匹配,比如 100 级的闪光皮卡丘)
指令列表
| 命令 | 权限要求 | 功能 |
|---|---|---|
| /lcm open [pokemon|item|sell] | lccobblemarket.command.open | 打开 全球市场界面 |
| /lcm setlimit <player> <amount> | lccobblemarket.command.setlimit | 独设置某玩家的上架数量上限,优先于全局默认的 |
| /lcm resetlimit <player> | lccobblemarket.command.resetlimit | 清除该玩家的个人上限,恢复为全局默认值 |
| /lcm reload | lccobblemarket.command.reload | 重载 |
| /lcm help | 无 | 显示帮助信息 |
配置文件
YAML:
# 是否启动模组界面[需要LCcore 模组]
# 不启用则使用插件的箱子界面
mod: true
# 服务端显示宝可梦 / 性格 / 特性 / 技能等名称所用的语言(读取各模组 jar 内的 assets/<模组>/lang/<语言>.json)
# 可在 plugins/LCCobbleMarket/lang/<语言>.json 放置额外译文覆盖(例如放入原版 minecraft 的中文语言文件)
language: zh_cn
market:
# 每位玩家最大同时上架数量
maxListingsPerPlayer: 12
# 上架有效期(天),超过后自动下架(由购买/打开时惰性清理)
listingExpiryDays: 7
# 成交手续费百分比(从卖家所得中扣除)
taxPercent: 5.0
# 最低 / 最高定价
minPrice: 1
.................
YAML:
# 箱子界面样式(仅 config.yml 中 mod: false 时生效)
# 宝可梦市场
pokemon:
title: "§8GTS §7- §a宝可梦市场 §7({page}/{maxPage})"
rows: 6
listing:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]
item:
name: "§a{name} §7[§fLv.{level}§7]"
lore:
- "§a ▶ §b宝可梦卖家: §f{playerName}"
- "§a ▶ §b宝可梦售价: §f{vault}"
- "§a ▶ §b个体信息§7[§e进度: §f{ivProgress}%§7]"
- "§f ▪ §a血量:§f {ivHp} §a速度:§f {ivSpeed}"
- "§f ▪ §a攻击:§f {ivAttack} §a防御:§f {ivDefence}"
- "§f ▪ §a特攻:§f {ivSpAttack} §a特防:§f {ivSpDefence}"
- "§a ▶ §b努力值信息§7[§e进度: §f{evProgress}%§7]"
- "§f ▪ §a血量:§f {evHp} §a速度:§f {evSpeed} §a攻击:§f {evAttack}"
- "§f ▪ §a防御:§f {evDefence} §a特攻:§f {evSpAttack} §a特防:§f {evSpDefence}"
- "§a ▶ §b基础信息:"
- "§f ▪ §a昵称: §f{nickname} §a属性: §f{type}"
- "§f ▪ §a性别: §f{gender} §a性格: §f{nature}§7[{natureType}§7]"
- "§f ▪ §a性格薄荷: §f{mintedNature}§7[{mintedNatureType}§7]"
- "§f ▪ §a特性: §f{ability} §a闪光: §f{shiny}"
- "§f ▪ §a持有物: §f{heldItem}"
- "§a ▶ §b技能信息:"
- "§f ▪ §a一技能: §f{move1} §a二技能: §f{move2}"
- "§f ▪ §a三技能: §f{move3} §a四技能: §f{move4}"
- ""
- "§e左键点击购买"
previous_page:
slot: 45
item:
material: "ARROW"
name: "§f« 上一页 §7[§f{page}/{maxPage}§7]"
pokemon_tab:
slot: 46
item:
material: "ENDER_EYE"
name: "§a宝可梦市场"
enchantments:
- "unbreaking:1"
flag:
- "HIDE_ENCHANTS"
item_tab:
slot: 47
item:
material: "CHEST"
name: "§a道具市场"
sell_tab:
slot: 48
item:
material: "WRITABLE_BOOK"
name: "§e我的上架"
balance:
slot: 49
item:
material: "GOLD_INGOT"
name: "§b我的余额"
lore:
- "§7宝可币: §f{pokedollar}"
- "§7点券: §f{credit}"
refresh:
slot: 50
item:
material: "CLOCK"
name: "§b刷新"
close:
slot: 52
item:
material: "BARRIER"
name: "§c关闭"
next_page:
slot: 53
item:
material: "ARROW"
name: "§f下一页 » §7[§f{page}/{maxPage}§7]"
border:
slot: [45, 46, 47, 48, 49, 50, 51, 52, 53]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
item:
title: "§8GTS §7- §a道具市场 §7({page}/{maxPage})"
rows: 6
listing:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]
item:
# 不写 name 时由玩家客户端按其语言显示物品原名(原版物品也是中文);写了 {name} 则用服务端译名
# name: "§f{name} §7x{amount}"
lore:
- "{lore}"
- "§a ▶ §b物品卖家: §f{playerName}"
- "§a ▶ §b物品售价: §f{vault}"
- ""
- "§e左键点击购买"
previous_page:
slot: 45
item:
material: "ARROW"
name: "§f« 上一页 §7[§f{page}/{maxPage}§7]"
pokemon_tab:
slot: 46
item:
material: "ENDER_EYE"
name: "§a宝可梦市场"
item_tab:
slot: 47
item:
material: "CHEST"
name: "§a道具市场"
enchantments:
- "unbreaking:1"
flag:
- "HIDE_ENCHANTS"
sell_tab:
slot: 48
item:
material: "WRITABLE_BOOK"
name: "§e我的上架"
balance:
slot: 49
item:
material: "GOLD_INGOT"
name: "§b我的余额"
lore:
- "§7宝可币: §f{pokedollar}"
- "§7点券: §f{credit}"
refresh:
slot: 50
item:
material: "CLOCK"
name: "§b刷新"
close:
slot: 52
item:
material: "BARRIER"
name: "§c关闭"
next_page:
slot: 53
item:
material: "ARROW"
name: "§f下一页 » §7[§f{page}/{maxPage}§7]"
border:
slot: [45, 46, 47, 48, 49, 50, 51, 52, 53]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
sell:
title: "§8GTS §7- §e我的上架 §7({page}/{maxPage})"
rows: 6
listing:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]
# 自己上架的宝可梦
pokemon:
name: "§a{name} §7[§fLv.{level}§7]"
lore:
- "§a ▶ §b售价: §f{vault}"
- "§a ▶ §b个体进度: §f{ivProgress}% §b闪光: §f{shiny}"
- ""
- "§e左键点击下架并取回"
# 自己上架的道具
item:
# 不写 name 时由玩家客户端按其语言显示物品原名
# name: "§f{name} §7x{amount}"
lore:
- "{lore}"
- "§a ▶ §b售价: §f{vault}"
- ""
- "§e左键点击下架并取回"
previous_page:
slot: 45
item:
material: "ARROW"
name: "§f« 上一页 §7[§f{page}/{maxPage}§7]"
pokemon_tab:
slot: 46
item:
material: "ENDER_EYE"
name: "§a宝可梦市场"
item_tab:
slot: 47
item:
material: "CHEST"
name: "§a道具市场"
sell_pokemon:
slot: 48
item:
material: "ENDER_PEARL"
name: "§a上架队伍宝可梦"
sell_item:
slot: 49
item:
material: "HOPPER"
name: "§a上架背包物品"
# {used}=已上架数 {max}=上架上限
info:
slot: 50
item:
material: "PAPER"
name: "§e我的上架"
lore:
- "§7已上架: §f{used}§7/§f{max}"
close:
slot: 52
item:
material: "BARRIER"
name: "§c关闭"
next_page:
slot: 53
item:
material: "ARROW"
name: "§f下一页 » §7[§f{page}/{maxPage}§7]"
border:
slot: [45, 46, 47, 48, 49, 50, 51, 52, 53]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
party:
title: "§8选择要上架的宝可梦"
rows: 3
# 依次对应队伍第 1~6 只
pokemon:
slot: [10, 11, 12, 13, 14, 15]
item:
name: "§a{name} §7[§fLv.{level}§7]"
lore:
- "§a ▶ §b个体进度: §f{ivProgress}% §b闪光: §f{shiny}"
- "§a ▶ §b性格: §f{nature} §b特性: §f{ability}"
- ""
- "{tip}"
# {tip} 的取值
tip:
normal: "§e左键 = 用宝可币上架 §e右键 = 用点券上架"
untradeable: "§c该宝可梦不可交易"
banned: "§c已被禁止上架"
back:
slot: 22
item:
material: "ARROW"
name: "§f« 返回"
border:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
bag:
title: "§8选择要上架的物品"
rows: 6
# 必须 36 个:依次对应背包第 0~35 格(0~8 为快捷栏)
item:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
item:
lore:
- "{lore}"
- ""
- "{tip}"
tip:
normal: "§f[§e左键§f]用宝可币上架 §e[§e右键§f]用点券上架"
banned: "§c已被禁止上架"
back:
slot: 49
item:
material: "ARROW"
name: "§f« 返回"
close:
slot: 53
item:
material: "BARRIER"
name: "§c关闭"
border:
slot: [36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
confirm:
title: "§8确认购买"
rows: 3
# 被购买的挂单(沿用市场界面里的样式)
listing:
slot: 13
# {name}=挂单名称 {price}=价格 {currency}=货币
confirm:
slot: 11
item:
material: "LIME_DYE"
name: "§a确认购买"
lore:
- "§7以 §f{price}{currency} §7购买 §f{name}"
cancel:
slot: 15
item:
material: "RED_DYE"
name: "§c取消"
border:
slot: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
item:
material: "GRAY_STAINED_GLASS_PANE"
name: "§r"
插件界面
模组界面[存在LCCore 且mod:true时]
浏览附件17166
结语
感谢使用 LCCobbleMarket 插件,我们持续更新更多功能。如果你有任何问题或建议,请加入官方插件交流群:966720491。