Cobblemon的Pokebuilder

Cobblemon的Pokebuilder

这个项目是一个针对cobblemon的自定义插件,让玩家可以使用Impactor插件货币来使用特殊的pokebuilder。

经济

PokeBuilder

服务端 Cobblemon 配套模组,将宝可梦属性编辑变成付费的游戏内功能 —— 你的玩家通过完全可点击的 GUI 消耗 Impactor 货币,来优化个体值、锁定性格、切换特性、更改太晶属性、提升极巨化等级、重命名宝可梦、补充亲密度、治愈异常状态,甚至编辑存储在 PC 中的宝可梦。无需记忆命令,无需发放 /op,没有半成品的编辑工具。

PokeBuilder 1.3.3 —— 适用于 Minecraft 1.21.1 / Fabric。需要 Cobblemon 1.7+ 和 Impactor 5.3+。推荐安装 Mega Showdown 以获得极巨化 / 超极巨化 / 太晶显示叠加层。


功能简介

运行 /pb(或 /pokebuilder、/pokebuild)打开队伍界面 —— 每个槽位渲染的是你宝可梦的实际 Cobblemon 模型,而非通用图标。点击其中一个进入编辑器,付费打造你想要的配置:

核心属性:

  • 个体值(IVs) —— 将任意单项属性设为 31 或 0,或一次性将六项全部拉满
  • 努力值(EVs) —— 将任意属性设为 252 或 0,或完全清空分配
  • 性格 —— 从 25 种性格中任选(每次更改统一计价)
  • 特性 —— 切换普通特性或解锁隐藏特性 (单独计价 + 权限)
  • 闪光 —— 开启或关闭闪光标志
  • 性别 —— 在物种允许时切换为相反性别
  • 捕获球 —— 更改宝可梦被捕获时使用的精灵球

Mega Showdown 特殊机制:

  • 极巨化等级 —— 将等级从 0 提升至服务器 Cobblemon 配置的上限 (按等级计价)
  • 超极巨化因子 —— 授予或移除超极巨化权限
  • 太晶属性 —— 将宝可梦的属性改为 19 种属性之一(18 种元素属性 + 星晶)

**便捷功能 (1.3.0 新增):**

  • 昵称 —— 聊天输入提示,带长度与颜色代码校验;输入 reset 恢复为物种名称
  • 亲密度 —— 步进器 GUI(+10 / +50 / 最大 / 重置),用于进化条件和报恩/迁怒
  • 状态治愈 —— 一键治愈中毒 / 灼伤 / 麻痹 / 冰冻 / 睡眠

每次修改都是一次真实的 Impactor withdraw() —— 不存在影子钱包。大额购买超过可配置阈值时会弹出确认界面,避免有人一键花光积蓄。

PC 存储访问 (1.3.0 新增,需主动开启)

无需将宝可梦从箱子中取出即可编辑存储在 PC 中的宝可梦。队伍界面上新增的"切换到 PC"按钮会打开一个分页浏览的箱子界面 —— 点击任意宝可梦即可进入相同的编辑流程。默认关闭;管理员在配置中设置 features.pc-access = true 并授予每玩家 pokebuilder.use.pc 权限来启用(功能开启后默认允许,可通过 LuckPerms 按组拒绝以实现仅限 VIP 访问)。

同样的每笔交易安全网也保护 PC 编辑:如果宝可梦在"点击编辑"和"点击购买"之间被交易或移动,交易会中止并自动退款。

处处使用主题化的模组物品图标

PokeBuilder 为每个菜单使用 Cobblemon 和 Mega Showdown 中的实际物品 —— 而非原版占位符。部分亮点:

  • 队伍界面通过 Cobblemon 的 PokemonItem 渲染真实的宝可梦模型
  • 个体值编辑器为六项属性分别使用极限特训糖果
  • 努力值编辑器使用维生素(HP 增强剂、蛋白质、铁、钙、锌、碳素)
  • 性格选择器为每个条目显示对应的性格薄荷
  • 特性选择器使用特性胶囊 / 特性膏药
  • 精灵球选择器显示实际的 Cobblemon 精灵球物品
  • 极巨化等级选择器为按等级缩放的极巨糖果堆叠
  • 超极巨化开关为极巨腕带 + 极巨蘑菇
  • 太晶属性选择器为对应的 Mega Showdown 太晶碎块
  • 昵称图标为命名牌,亲密度为虞美人,状态治愈为蜂蜜瓶
  • 当前宝可梦标题栏显示该物种的捕获球

自定义

基于权限的价格层级 (1.3.0 新增) —— 在 config.conf 中为每层设置乘数:

tiers {
  default = 1.0
  vip     = 0.80    # 20 % 折扣
  mvp     = 0.60
}

玩家获得的第一个持有 pokebuilder.tier.<id> 权限的层级生效,按声明顺序。层级解析按每笔交易进行 —— LuckPerms 的授予/撤销在下一笔购买时即生效。审计日志同时记录标价和解析后的价格,因此 VIP 收据不会令人困惑。

i18n / 语言文件 (1.3.0 新增) —— 每个 UI 字符串位于 assets/pokebuilder/lang/<locale>.json,可通过将 config/pokebuilder/lang/<locale>.json 放入服务器配置目录来覆盖。message-locale 配置键选择语言("auto" = JVM 默认语言,回退到英语)。管理员 GUI 消息编辑叠加在语言基础之上,只有实际增量会持久化到磁盘 —— 你的 config.conf 保持精简。

游戏内管理面板 —— 每个设置都可点击

运行 /pokebuilder admin(默认 OP 4 或 pokebuilder.admin.gui 权限)打开控制面板。每个部分都是可点击的 GUI,无需在聊天中刷配置:

  • 价格 —— 每个费用的 +/- 步进器,Shift+点击进行 ×10 跳跃
  • 功能 —— 逐个开启或关闭购买项;禁用的功能会从 /pb 中隐藏并在服务端拒绝。1.3.0 后有 17 个开关(每个编辑器 + 每个快捷方式 + 昵称 / 亲密度 / 状态治愈 / PC 访问 4 个新增项)
  • 安全 —— 点击冷却、每分钟最大修改次数、创造模式开关、濒死宝可梦开关
  • 限制 —— 阻止传说 / 幻之 / 究极异兽 / 悖谬;聊天输入管理的禁用水种列表
  • 音效 —— 主开关、音量、音调
  • 消息 —— 左键点击任意消息在聊天中用 & 颜色代码重写;右键重置
  • 保存到磁盘 —— 原子化 tmp + rename 写入,有未保存编辑时会发光
  • 从磁盘重新加载 —— 丢弃未保存的内存编辑,重新读取文件;实时重新绑定 Impactor 经济,使货币更改无需重启即可生效

编辑对所有玩家立即生效,但只有点击 保存到磁盘(或运行 /pokebuilder save)后才会持久化。

防御性构建

由于此模组允许玩家付费进行不可逆的游戏状态更改,交易层在设计上极度谨慎:

  • 每玩家锁 —— 每次修改都在以玩家 UUID 为键的同步块中运行,因此两次同时点击不会双重扣费
  • 原子购买 —— 顺序为 余额检查 → 扣款 → 修改 → 审计。如果 Cobblemon 修改抛出异常,货币会自动退还
  • 余额差值验证 —— 每次 withdraw / deposit 都会检查玩家操作前后的余额,如果 Impactor 报告 SUCCESS 但余额实际未变(另一模组取消事件、虚拟账户、缓存账户等),则记录 WARN。捕获"一切看起来正常但货币未扣除"这类否则不可见的 bug。
  • 宝可梦身份检查 —— 如果你的目标在编辑过程中被交易、放生或存入箱子(无论在队伍还是 PC 中),交易会中止并退款,而不是编辑过期的引用
  • 点击冷却 + 每分钟速率限制 —— 阻止快速点击和宏漏洞
  • GUI 槽位拦截 —— 菜单中显示的物品无法被拖拽、交换、丢弃、克隆或提取到你的背包
  • 每次点击重新检查权限 —— 会话中途降级玩家会立即将其锁定在外
  • 交易收据 (1.3.0 新增) —— 每次成功购买都会获得一个唯一的 8 字符 base36 ID 写入审计日志。玩家在 /pb history 中查看;管理员在支持工单中引用。
  • 原子配置写入 —— 临时文件 + 重命名,因此保存中途崩溃绝不会损坏配置
  • 审计日志 —— 每笔交易(玩家、宝可梦 UUID、物种、操作、费用、操作前后余额、成功/失败、折扣时的层级和标价)追加到 logs/pokebuilder-transactions.log。每次管理员 GUI 更改都会记录其旧值和新值
  • 功能门控 —— 禁用的功能在 GUI 层、子菜单层和交易层都会检查 —— 纵深防御,无单一绕过

权限(Fabric Permissions API / LuckPerms)

节点 默认值 作用
pokebuilder.use true 打开 GUI
pokebuilder.modify.iv / .ev / .nature / .ability / .shiny / .gender / .ball true 各功能的编辑权限
pokebuilder.modify.ability.hidden true 切换到隐藏特性
pokebuilder.modify.dynamax / .gmax / .tera true 极巨化 / 超极巨化 / 太晶修改
pokebuilder.modify.nickname / .friendship / .status_cure true 1.3.0 新功能
pokebuilder.use.pc true (一旦 features.pc-access 开启) 通过 /pb 浏览自己的 PC
pokebuilder.tier.<id> — 价格层级成员资格(例如 .vip、.mvp)
pokebuilder.bypass.cooldown false 忽略点击冷却
pokebuilder.bypass.cost false 免费修改(管理员测试)
pokebuilder.admin.gui OP 4 打开管理面板
pokebuilder.admin.save OP 4 保存配置到磁盘
pokebuilder.admin.reload OP 3 从磁盘重新加载配置
pokebuilder.admin.debug OP 4 运行 /pokebuilder debug
pokebuilder.admin.history OP 3 查看任意玩家的 /pokebuilder history

绕过节点默认不授予任何人。授予 OP 不会自动授予绕过 —— 如需使用请借助权限插件。

命令

/pokebuilder                       打开队伍选择器
/pokebuild  /pb                    别名
/pb history [page]                 玩家自己的购买历史(含交易 ID)
/pokebuilder version               显示已安装版本
/pokebuilder admin                 打开管理面板                     (需要权限)
/pokebuilder save                  将实时编辑持久化到磁盘               (需要权限)
/pokebuilder reload                重新读取 config.conf + 重新挂钩经济    (需要权限)
/pokebuilder debug                 导出实时经济状态用于诊断              (需要权限)
/pokebuilder history player <name> 任意玩家的购买历史                  (需要权限)

配置

config/pokebuilder/config.conf 是一个 HOCON 文件。手动编辑后运行 /pokebuilder reload,或使用管理 GUI 并点击 保存到磁盘。该文件在首次启动时以合理默认值生成。

重要子节:

  • economy —— currency-id(留空 = 服务器主货币)、显示名称覆盖、格式
  • prices —— 每个操作的费用
  • features —— 17 个开/关切换
  • tiers —— 基于权限的价格乘数
  • restrictions —— 阻止传说 / 幻之 / 究极异兽 / 悖谬 + 按物种阻止列表
  • security —— 冷却、速率限制、创造 / 濒死开关
  • message-locale —— "auto" 或特定语言如 "en_us" / "fr_fr"

审计日志位于 logs/pokebuilder-transactions.log。

需求

硬依赖:

  • Minecraft 1.21.1
  • Fabric Loader ≥ 0.17.2
  • Fabric API
  • Cobblemon 1.7+
  • Impactor (Fabric) 5.3+ —— 提供经济后端

推荐(仅当你想要宝可梦概要界面上的极巨化 / 超极巨化 / 太晶显示叠加层时需要;PokeBuilder 的购买流程无需它即可工作,因为底层字段是 Cobblemon 原生的):

  • Mega Showdown 1.7.3+
  • Architectury API 13.0.8+ (Mega Showdown 的硬依赖)
  • Accessories 1.1.0+ (Mega Showdown 的硬依赖)
  • owo-lib 0.12.15+ (Accessories 的硬依赖)

PokeBuilder 是仅服务端的。玩家客户端只需安装 Cobblemon 和 Fabric API;他们无需安装 PokeBuilder、Impactor、Mega Showdown、accessories、owo-lib 或 architectury 即可使用其任何功能。一切都通过标准背包数据包传递。

它刻意不是什么

  • 不是客户端模组 —— 仅服务端运行,无需客户端安装
  • 不是商店 —— 不售卖宝可梦、物品或精灵球;只修改你已拥有的宝可梦
  • 不是经济插件 —— Impactor 是余额的唯一真实来源;PokeBuilder 不铸造任何货币
  • 不是宝可梦编辑器替代品 —— 只暴露精选的安全编辑子集。物种 / 等级 / 招式 / 携带物品 / 经验值等刻意不在范围内,以免玩家轻易获得未应得的内容

目标用户

已经运行 Impactor 经济,并希望为玩家提供付费、自助的方式来完善具有竞技可行性的宝可梦的 Cobblemon 服务器服主 —— 无需编写自定义命令,无需发放 /op,也无需信任管理员在聊天中手动兑现"5 万换 6V"的请求。借助 1.3.0 的 PC 访问和新的生物编辑功能(昵称 / 亲密度 / 状态治愈),该模组现在覆盖了完整的自助"打磨我的收藏"工作流,且全程无需将宝可梦取出存储。


许可证: MIT 作者: souljagger