/** @param event */
  @EventHandler(priority = EventPriority.NORMAL)
  public void OnEntityDamanged(EntityDamageByEntityEvent event) {

    final Entity entity = event.getEntity();
    final Entity damager = event.getDamager();
    FundamentalPlayer player = null;

    if (entity instanceof Player) {
      // Defence
      player = SurvivalPlus.Players.getPlayer((Player) entity);
    } else if (damager instanceof Player) {
      // Attack
      player = SurvivalPlus.Players.getPlayer((Player) damager);
    } else if (damager instanceof Projectile) {
      // Archery
      final ProjectileSource source = ((Projectile) damager).getShooter();
      if (source instanceof Player) {
        player = SurvivalPlus.Players.getPlayer((Player) source);
      }
    }

    if (player == null) {
      return;
    }

    PlayerSkillData data = (PlayerSkillData) player.getPlayerData(this.getPlayerDataClass());
    if (data == null) {
      return;
    }

    final int oldlevel = data.getLevel();
    data.addXP(1L);
    final int level = data.getLevel();

    // Have we leveld up? give more health
    if (level != oldlevel) {
      setPlayerHitpoints(player.getPlayer(), level);
    }
  }