EternalTD Developer API
EternalTD exposes custom Bukkit events under com.magmaguy.eternaltd.api that other plugins can listen to for integration.
Tower Events
These events fire when a player interacts with towers during a level session.
| Event | Cancellable | Exposed data |
|---|---|---|
TowerPlaceEvent | Yes | Tower tower |
TowerSellEvent | Yes | Tower tower |
TowerUpgradeEvent | Yes | Tower tower |
Cancelling a tower event prevents the action from completing.
Wave Phase Events
These events fire during wave lifecycle transitions. None of them are cancellable.
| Event | Exposed data |
|---|---|
WaveConstructionPhaseStartEvent | LevelSession levelSession |
WaveStartingPhaseStartEvent | LevelSession levelSession |
WaveDefensivePhaseEvent | LevelSession levelSession |
WaveEndingPhaseEvent | LevelSession levelSession |
Wave Entity Events
These events fire when wave entities take damage or die.
| Event | Cancellable | Exposed data |
|---|---|---|
WaveEntityDamageEvent | No | Tower tower, WaveEntity waveEntity, boolean directDamage |
WaveEntityDeathEvent | No | WaveEntity waveEntity |
Usage Example
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
}
}
Notes
- All events are standard synchronous Bukkit events.
TowerandWaveEntityare EternalTD internal types. Use their public getters for data access.LevelSessionexposes the session's player, wave number, towers, and config through its public getters.