@@ -0,0 +1,881 @@
+package deterno.fight.tgm.damage.tracker.damage.base;%0A%0Aimport com.google.common.base.Preconditions;%0Aimport deterno.fight.tgm.damage.tracker.base.AbstractDamageInfo;%0Aimport deterno.fight.tgm.damage.tracker.damage.BlockDamageInfo;%0Aimport org.bukkit.block.BlockState;%0Aimport org.bukkit.entity.LivingEntity;%0A%0Aimport javax.annotation.Nonnull;%0Aimport javax.annotation.Nullable;%0A%0Apublic class AbstractBlockDamageInfo extends AbstractDamageInfo implements BlockDamageInfo %7B%0A    public AbstractBlockDamageInfo(@Nullable LivingEntity resolvedDamager, @Nonnull BlockState blockDamager) %7B%0A        super(resolvedDamager);%0A%0A        Preconditions.checkNotNull(blockDamager, %22block damager%22);%0A%0A        this.blockDamager = blockDamager;%0A    %7D%0A%0A    public @Nonnull%0A    BlockState getBlockDamager() %7B%0A        return this.blockDamager;%0A    %7D%0A%0A    private final @Nonnull%0A    BlockState blockDamager;%0A%7D%0A

Create AbstractBlockDamageInfo.java