EternalTD 开发者 API
EternalTD 在 com.magmaguy.eternaltd.api 下暴露了自定义 Bukkit 事件,其他插件可以监听这些事件进行集成。
塔防事件
这些事件在玩家在关卡会话中与防御塔交互时触发。
| 事件 | 可取消 | 暴露数据 |
|---|---|---|
TowerPlaceEvent | 是 | Tower tower |
TowerSellEvent | 是 | Tower tower |
TowerUpgradeEvent | 是 | Tower tower |
取消塔防事件会阻止操作完成。
波次阶段事件
这些事件在波次生命周期转换时触发。它们都不可取消。
| 事件 | 暴露数据 |
|---|---|
WaveConstructionPhaseStartEvent | LevelSession levelSession |
WaveStartingPhaseStartEvent | LevelSession levelSession |
WaveDefensivePhaseEvent | LevelSession levelSession |
WaveEndingPhaseEvent | LevelSession levelSession |
波次实体事件
这些事件在波次实体受到伤害或死亡时触发。
| 事件 | 可取消 | 暴露数据 |
|---|---|---|
WaveEntityDamageEvent | 否 | Tower tower、WaveEntity waveEntity、boolean directDamage |
WaveEntityDeathEvent | 否 | WaveEntity waveEntity |
使用示例
import com.magmaguy.eternaltd.api.TowerPlaceEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class MyETDIntegration implements Listener {
@EventHandler
public void onTowerPlace(TowerPlaceEvent event) {
// React to tower placement
}
}
注意事项
- 所有事件都是标准的同步 Bukkit 事件。
Tower和WaveEntity是 EternalTD 内部类型。请使用它们的公共 getter 方法获取数据。LevelSession通过其公共 getter 方法暴露会话的玩家、波次编号、防御塔和配置。