Skip to content

Events and Runtime API

hp-1e edited this page Jul 15, 2026 · 1 revision

Events and Runtime API / 事件与运行时 API

Gateway events / 网关事件

All events are server-side KubeJS events under GatewaysEvents.

所有事件都是 GatewaysEvents 下的服务端 KubeJS 事件。

Event Trigger / 触发时机
opened Gateway opens / 网关打开
waveStarted A wave starts / 波次开始
waveEnded A wave is cleared / 波次结束
waveEntitySpawned A wave entity spawns / 波次实体生成
completed Gateway completes / 网关完成
failed Gateway fails / 网关失败
// 输出网关生命周期日志
GatewaysEvents.opened(event => {
  console.info('Gateway opened: ' + event.getGatewayId())
})

GatewaysEvents.waveEnded(event => {
  console.info('Wave ended: ' + event.getWave())
  event.addReward('minecraft:apple', 1)
})

GatewaysEvents.failed(event => {
  console.info('Gateway failed: ' + event.getFailureReason())
})

Useful event values include getGatewayId, getEntity, wave indexes, active enemy counts, spawned entity IDs/names, and failure reason text.

常用事件值包括 getGatewayIdgetEntity、波次索引、存活敌人数、生成实体 ID/名称和失败原因文本。

Gateway query API / 网关查询 API

  • Gateway.getAllGatewayIds([sortBy])
  • Gateway.getGatewayCount()
  • Gateway.exists(id)
  • Gateway.getGateway(id)
  • Gateway.getGatewayType(id)
  • Gateway.getNormalGatewayIds()
  • Gateway.getEndlessGatewayIds()
  • Gateway.getGatewaysBySize(size)

These methods query the Gateways dynamic registry after registration.

这些方法用于查询注册完成后的 Gateways 动态注册表。

Spawning gateways / 生成网关

Use the static API or an existing-gateway builder. Spawning must happen with a server level.

可以使用静态 API 或已有网关 Builder 生成网关,并且必须传入服务端世界。

// 在玩家当前位置生成已经注册的网关
Gateway.builder('kubejs:test_gate')
  .pos(event.player.blockPosition())
  .summoner(event.player)
  .spawn(event.level)

The static alternatives are Gateway.createGateway(level, id, x, y, z, player) and Gateway.createGatewayAtPos(level, id, pos, player).

静态替代方法为 Gateway.createGateway(...)Gateway.createGatewayAtPos(...)

Gateway entity wrapper / 网关实体包装

event.getEntity() exposes gateway position, dimension, current wave, active enemies, timings, summoner information, custom name, sound/particle helpers, item spawning, teleporting, and removal.

event.getEntity() 可读取位置、维度、当前波次、存活敌人、计时、召唤者、自定义名称,并可播放声音/粒子、生成物品、传送或移除网关。