跳至主要内容

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 方法公開該場次的玩家、波次編號、防禦塔和設定。