// Path: src/main/java/tc/oc/tracker/base/AbstractDamageInfo.java
// public abstract class AbstractDamageInfo implements DamageInfo {
//     protected AbstractDamageInfo(@Nullable LivingEntity resolvedDamager) {
//         this.resolvedDamager = resolvedDamager;
//     }
// 
//     public @Nullable LivingEntity getResolvedDamager() {
//         return this.resolvedDamager;
//     }
// 
//     protected final @Nullable LivingEntity resolvedDamager;
// }
// 
// Path: src/main/java/tc/oc/tracker/damage/FallDamageInfo.java
// public interface FallDamageInfo extends DamageInfo {
//     /**
//      * Gets the distance that the entity fell in order to earn this damage.
//      *
//      * Contract states that distance will always be greater than or equal to 0.
//      *
//      * @return Distance fallen in blocks
//      */
//     float getFallDistance();
// }


import javax.annotation.Nullable;
import org.bukkit.entity.LivingEntity;
import tc.oc.tracker.base.AbstractDamageInfo;
import tc.oc.tracker.damage.FallDamageInfo;
import com.google.common.base.Preconditions;
package tc.oc.tracker.damage.base;





public class SimpleFallDamageInfo extends AbstractDamageInfo implements FallDamageInfo {
    public SimpleFallDamageInfo(@Nullable LivingEntity resolvedDamager, float fallDistance) {
        super(resolvedDamager);

        Preconditions.checkArgument(fallDistance >= 0, "fall distance must be >= 0");

        this.fallDistance = fallDistance;
    }

// Path: src/main/java/tc/oc/tracker/base/AbstractDamageInfo.java
// public abstract class AbstractDamageInfo implements DamageInfo {
//     protected AbstractDamageInfo(@Nullable LivingEntity resolvedDamager) {
//         this.resolvedDamager = resolvedDamager;
//     }
// 
//     public @Nullable LivingEntity getResolvedDamager() {
//         return this.resolvedDamager;
//     }
// 
//     protected final @Nullable LivingEntity resolvedDamager;
// }
// 
// Path: src/main/java/tc/oc/tracker/damage/FallDamageInfo.java
// public interface FallDamageInfo extends DamageInfo {
//     /**
//      * Gets the distance that the entity fell in order to earn this damage.
//      *
//      * Contract states that distance will always be greater than or equal to 0.
//      *
//      * @return Distance fallen in blocks
//      */
//     float getFallDistance();
// }


// Path: src/main/java/tc/oc/tracker/damage/base/SimpleFallDamageInfo.java
import javax.annotation.Nullable;
import org.bukkit.entity.LivingEntity;
import tc.oc.tracker.base.AbstractDamageInfo;
import tc.oc.tracker.damage.FallDamageInfo;
import com.google.common.base.Preconditions;

package tc.oc.tracker.damage.base;





public class SimpleFallDamageInfo extends AbstractDamageInfo implements FallDamageInfo {
    public SimpleFallDamageInfo(@Nullable LivingEntity resolvedDamager, float fallDistance) {
        super(resolvedDamager);

        Preconditions.checkArgument(fallDistance >= 0, "fall distance must be >= 0");

        this.fallDistance = fallDistance;
    }

    public float getFallDistance() {