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