Cobblemon KubeJS

Cobblemon KubeJS

Cobblemon KubeJS 将 Cobblemon 的数据和事件暴露给了 KubeJS 脚本。

KubeJS

Cobblemon KubeJS Bridge

将 Cobblemon 的数据、事件、存储查询、管理工具和客户端图鉴显示集成到 KubeJS 中。

Cobblemon KubeJS Bridge 让模组包开发者能够使用 JavaScript 构建自定义的成长路径、任务、奖励、指令、界面、战斗系统和服务器机制。

功能特性

Cobblemon 事件

监听服务端事件,例如:

  • 图鉴进度变化
  • 宝可梦扫描与捕捉
  • 宝可梦放出、收回、濒死、获得、治疗或放生
  • 经验获得与升级
  • 进化完成
  • 战斗胜利与失败
  • 战斗逃跑与认输
CobblemonEvents.pokemonCaptured(event => {
  event.player.tell(
    `你捕捉到了一只 ${event.species},等级为 ${event.level}!`
  )
})

图鉴 API

查询玩家的图鉴进度:

  • 检查某物种是否已看见或捕捉
  • 统计已看见或已捕捉的物种总数
  • 按元素属性统计进度
  • 读取单个物种的进度
var caughtFire = CobblemonJS.pokedex.countCaughtByType(
  player,
  'fire'
)

物种 API

  • 验证物种 ID
  • 列出已实现的物种
  • 读取物种属性
  • 验证元素属性
  • 查找某属性的所有物种

支持短 ID 和命名空间 ID:

CobblemonJS.species.exists('charizard')
CobblemonJS.species.exists('cobblemon:charizard')

同行与 PC API

从玩家的同行队伍和 PC 中读取安全的宝可梦快照:

  • 按 UUID 搜索宝可梦
  • 按物种或属性统计宝可梦数量
  • 保留同行、PC、盒子及槽位信息
  • 读取等级、HP、性格、特性、技能、个体值、努力值、状态、携带物品等
var party = CobblemonJS.pokemon.getParty(player)
var pokemon = CobblemonJS.pokemon.getByUuid(player, pokemonUuid)

管理工具

可信的服务端脚本可以:

  • 给予玩家一只宝可梦
  • 治疗玩家的同行队伍
  • 在玩家附近生成一只宝可梦
  • 在指定坐标生成一只宝可梦,不分配主人
CobblemonJS.admin.givePokemon(
  player,
  'charizard level=50 shiny=true'
)

CobblemonJS.admin.spawnPokemon(
  player.serverLevel,
  'rayquaza level=70',
  100,
  80,
  -50
)

客户端图鉴同步

服务端将只读的图鉴缓存同步到所属客户端。客户端脚本可以无需每帧向服务端请求数据,直接使用该缓存实现实时提示框和其他界面。

CobblemonClientJS.pokedex.countSeen()
CobblemonClientJS.pokedex.countCaught()
CobblemonClientJS.pokedex.countCaughtByType('fire')

附带的示例包含一个经过测试的动态望远镜提示框。

需求

  • Cobblemon
  • KubeJS
  • Rhino(KubeJS 所需)
  • Java 21

在使用同步的客户端图鉴 API 时,需要同时在客户端和服务端安装本桥接组件。

加载器支持

目前支持 NeoForge。

Fabric 支持尚不可用。Fabric 模块仅是一个编译时存根,不暴露事件、API 或客户端同步功能。

文档与示例

本项目包含:

  • 完整的 API 文档
  • 每个函数的参数和返回值
  • 完整的事件字段参考
  • 宝可梦与技能数据模型参考
  • 服务端与客户端脚本示例
  • 故障排除指南

链接

注意事项

  • 返回给脚本的宝可梦快照是只读的。
  • 管理方法会修改游戏状态,应仅通过具有适当权限检查的可信脚本暴露。
  • 图鉴计数代表唯一已实现的物种,而非重复捕捉数。
  • 未知物种、属性、格式错误的 UUID 和无效的生成属性会产生描述性的脚本错误。
  • 替换模组 jar 文件或网络代码需要完全重启。