package tc.oc.pgm.broadcast;

import java.time.Duration;
import net.kyori.text.Component;
import net.kyori.text.TextComponent;
import tc.oc.pgm.api.match.Match;
import tc.oc.pgm.api.player.MatchPlayer;
import tc.oc.pgm.countdowns.MatchCountdown;

public class BroadcastCountdown extends MatchCountdown {
  private final Broadcast broadcast;

  public BroadcastCountdown(Match match, Broadcast broadcast) {
    super(match);
    this.broadcast = broadcast;
  }

  @Override
  protected boolean showBossBar() {
    return false;
  }

  @Override
  protected boolean showChat() {
    return false;
  }

  @Override
  protected Component formatText() {
    return TextComponent.empty();
  }

  @Override
  public void onEnd(Duration total) {
    super.onEnd(total);
    for (MatchPlayer player : this.getMatch().getPlayers()) {
      if (this.broadcast.filter == null
          || this.broadcast.filter.query(player.getQuery()).isAllowed()) {
        player.sendMessage(this.broadcast.getFormattedMessage());
        player.playSound(this.broadcast.getSound());
      }
    }
  }
}