@@ -0,0 +1,1216 @@
+package deterno.fight.tgm.damage.tracker;%0A%0Aimport org.bukkit.Location;%0Aimport org.joda.time.Instant;%0A%0Aimport javax.annotation.Nonnull;%0A%0A/**%0A * Represents a single instance of damage to an entity.%0A *%0A * Implementations should be immutable.%0A */%0Apublic interface Damage %7B%0A    /**%0A     * Gets the amount of damage that was inflicted.%0A     *%0A     * Note that this is the raw damage in half-hearts before dampeners (armor,%0A     * potion effects) are applied.%0A     *%0A     * Contract specifies that the result is 0 or greater.%0A     *%0A     * @return Amount of damage inflicted%0A     */%0A    int getDamage();%0A%0A    /**%0A     * Gets the location where the damage occurred.%0A     *%0A     * Contract specifies that the result is never null.%0A     *%0A     * @return Location of damage%0A     */%0A    @Nonnull%0A    Location getLocation();%0A%0A    /**%0A     * Gets the time that the damage occurred.%0A     *%0A     * Contract specifies that the result is never null.%0A     *%0A     * @return Time of damage%0A     */%0A    @Nonnull%0A    Instant getTime();%0A%0A    /**%0A     * Gets additional information regarding this damage.%0A     *%0A     * @return %7B@link DamageInfo%7D subclass describing the damage in more detail%0A     */%0A    @Nonnull%0A    DamageInfo getInfo();%0A%7D%0A

Create Damage.java