수색…


소개

모든 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