ProjectAres/PGM/src/main/java/tc/oc/pgm/start/PreMatchCountdown.java

46 lines
1.2 KiB
Java

package tc.oc.pgm.start;
import java.time.Duration;
import javax.annotation.Nullable;
import com.google.common.collect.Range;
import org.bukkit.Sound;
import tc.oc.commons.bukkit.chat.BukkitSound;
import tc.oc.pgm.countdowns.MatchCountdown;
import tc.oc.pgm.match.Match;
import tc.oc.pgm.match.MatchPlayer;
/**
* Common base for countdowns leading up to match start
*/
public abstract class PreMatchCountdown extends MatchCountdown {
protected static final BukkitSound COUNT_SOUND = new BukkitSound(Sound.BLOCK_NOTE_PLING, Float.MAX_VALUE, 1.19f);
public PreMatchCountdown(Match match) {
super(match);
}
@Override
public void onTick(Duration remaining, Duration total) {
super.onTick(remaining, total);
if(matchAboutToStart()) {
getMatch().playSound(COUNT_SOUND);
}
}
public abstract @Nullable Duration timeUntilMatchStart();
protected boolean matchAboutToStart() {
return remaining != null &&
Range.openClosed(Duration.ZERO, Duration.ofSeconds(3))
.contains(timeUntilMatchStart());
}
@Override
protected boolean shouldShowTitle(MatchPlayer viewer) {
return viewer.isParticipatingType() && matchAboutToStart();
}
}