bukkit
엔티티 이벤트
수색…
소개
모든 Entity Events는 EntityEvent의 상위 클래스 인 EntityEvent를 확장합니다.
알려진 EntityEvents는 모두 아래에서 확인할 수 있으며이 문서에서 다룹니다.
EntityDamage 이벤트
엔티티가 손상되면 EntityDamage 이벤트가 발생합니다.
EntityDamageEvent
@EventHandler
public void onEntityDamage(EntityDamageEvent e) {
DamageCause cause = e.getCause(); //Get the event DamageCause
double rawDamage = e.getDamage(); //Returns the damage before any calculation
double damageModified = e.getDamage(DamageModifier.X); //Returns the damage that would be caused with the specified modifier
double finalDamage = e.getFinalDamage(); //Gets the final damage of this event, with all the calculations included
e.setCancelled(boolean x); //If for any reasons you want the event to not happen, you can cancel it
e.setDamage(double damage); //You can change the full damage the event will cause
e.setDamage(DamageModifier modifier, double damage); //Changes the damage considering any possible modifier
}
대부분의 경우 EntityDamageEvent는 사용되지 않습니다. 대신 EntityDamageByEntityEvent 또는 EntityDamageByBlockEvent 와 같은 하위 클래스가 사용됩니다. 두 가지 모두 아래에서 볼 수 있습니다.
EntityDamageByEntityEvent
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent e) {
//Retrieving the Entity that dealt damage
Entity damageDealer = e.getDamager();
//Retrieving the Entity that took damage
Entity damageTaker = e.getEntity();
//Retrieving the cause of the damage
DamageCause cause = e.getDamageCause();
//damage is the double value of the damage before all the resistances and modifiers have been applied
double damage = e.getDamage();
//FinalDamage is the double value of the damage after all the resistances and modifiers have been applied
double finalDamage = e.getFinalDamage();
//You can also set the raw damage (before modifiers) for the event to a different value
e.setDamage(20.0);
}
EntityDamageByBlockEvent
EntityDamageEvent에 대한 간단한 확장이지만 하나의 다른 메서드가 있습니다.
Block b = event.getDamager(); //Returns the block that dealt damage to the entity
EntityEvent (수퍼 클래스)
엔티티 이벤트의 알려진 하위 클래스는 다음과 같습니다.
하위 클래스 | 하위 클래스 | 하위 클래스 |
---|---|---|
CreatureSpawnEvent | CreeperPowerEvent | EntityChangeBlockEvent |
EntityCombustEvent | EntityCreatePortalEvent | EntityDamageEvent |
EntityDeathEvent | EntityExplodeEvent | EntityInteractEvent |
EntityPortalEnterEvent | EntityRegainHealthEvent | EntityShootBowEvent |
EntityTameEvent | EntityTargetEvent | EntityTeleportEvent |
EntityUnleashEvent | ExplosionPrimeEvent | FoodLevelChangeEvent |
HorseJumpEvent | ItemDespawnEvent | ItemSpawnEvent |
PigZapEvent | ProjectileHitEvent | ProjectileLaunchEvent |
SheepDyeWool 이벤트 | SheepRegrowWoolEvent | SlimeSplitEvent |
이 외에도 모든 하위 클래스는 다음 메소드를 상속합니다.
Entity getEntity(); //Entity who is involved in this event
EntityType getEntityType(); //EntityType of the Entity involved in this event
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow