API para Desenvolvedores do EternalTD
O EternalTD expõe eventos Bukkit personalizados em com.magmaguy.eternaltd.api que outros plugins podem escutar para integração.
Eventos de Torres
Estes eventos são disparados quando um jogador interage com torres durante uma sessão de nível.
| Evento | Cancelável | Dados expostos |
|---|---|---|
TowerPlaceEvent | Sim | Tower tower |
TowerSellEvent | Sim | Tower tower |
TowerUpgradeEvent | Sim | Tower tower |
Cancelar um evento de torre impede a ação de ser concluída.
Eventos de Fase de Onda
Estes eventos são disparados durante transições de ciclo de vida de onda. Nenhum deles é cancelável.
| Evento | Dados expostos |
|---|---|
WaveConstructionPhaseStartEvent | LevelSession levelSession |
WaveStartingPhaseStartEvent | LevelSession levelSession |
WaveDefensivePhaseEvent | LevelSession levelSession |
WaveEndingPhaseEvent | LevelSession levelSession |
Eventos de Entidade de Onda
Estes eventos são disparados quando entidades de onda recebem dano ou morrem.
| Evento | Cancelável | Dados expostos |
|---|---|---|
WaveEntityDamageEvent | Não | Tower tower, WaveEntity waveEntity, boolean directDamage |
WaveEntityDeathEvent | Não | WaveEntity waveEntity |
Exemplo de Uso
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) {
// Reagir à colocação de torre
}
}
Notas
- Todos os eventos são eventos Bukkit síncronos padrão.
TowereWaveEntitysão tipos internos do EternalTD. Use seus getters públicos para acesso a dados.LevelSessionexpõe o jogador da sessão, número da onda, torres e configuração através dos seus getters públicos.