package tc.oc.pgm.filters.query;
import javax.annotation.Nullable;
import org.bukkit.event.Event;
import tc.oc.pgm.tracker.damage.DamageInfo;
import static com.google.common.base.Preconditions.checkNotNull;
public class DamageQuery extends PlayerEventQuery implements IDamageQuery {
private final IPlayerQuery victim;
private final DamageInfo damageInfo;
protected DamageQuery(IPlayerQuery player, Event event, IPlayerQuery victim, DamageInfo damageInfo) {
super(player, event);
this.damageInfo = checkNotNull(damageInfo);
this.victim = checkNotNull(victim);
}
public static DamageQuery victimDefault(@Nullable Event event, IPlayerQuery victim, DamageInfo damageInfo) {
return new DamageQuery(victim, event, victim, damageInfo);
}
public static DamageQuery attackerDefault(@Nullable Event event, IPlayerQuery victim, DamageInfo damageInfo) {
return new DamageQuery(damageInfo.getAttacker(), event, victim, damageInfo);
}
@Override
public IPlayerQuery getVictim() {
return victim;
}
@Override
public DamageInfo getDamageInfo() {
return damageInfo;
}
}