跳到主要内容

EternalTD 开发者 API

EternalTD 在 com.magmaguy.eternaltd.api 下暴露了自定义 Bukkit 事件,其他插件可以监听这些事件进行集成。

塔防事件

这些事件在玩家在关卡会话中与防御塔交互时触发。

事件可取消暴露数据
TowerPlaceEventTower tower
TowerSellEventTower tower
TowerUpgradeEventTower tower

取消塔防事件会阻止操作完成。

波次阶段事件

这些事件在波次生命周期转换时触发。它们都不可取消。

事件暴露数据
WaveConstructionPhaseStartEventLevelSession levelSession
WaveStartingPhaseStartEventLevelSession levelSession
WaveDefensivePhaseEventLevelSession levelSession
WaveEndingPhaseEventLevelSession levelSession

波次实体事件

这些事件在波次实体受到伤害或死亡时触发。

事件可取消暴露数据
WaveEntityDamageEventTower towerWaveEntity waveEntityboolean directDamage
WaveEntityDeathEventWaveEntity 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 事件。
  • TowerWaveEntity 是 EternalTD 内部类型。请使用它们的公共 getter 方法获取数据。
  • LevelSession 通过其公共 getter 方法暴露会话的玩家、波次编号、防御塔和配置。