package at.er.ytbattle.plugin.timer.timeables;
import at.er.ytbattle.plugin.BattlePlugin;
import at.er.ytbattle.plugin.player.BattlePlayer;
import at.er.ytbattle.plugin.team.Team;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.World;
public class GraceTimer implements Runnable {
private int time;
public GraceTimer(int timeSec) {
this.time = timeSec;
Bukkit.getScheduler().scheduleSyncRepeatingTask(BattlePlugin.instance(), this, 0, 20);
}
@Override
public void run() {
if (time >= 600 && time % 600 == 0) {
broadcastTime();
}
if (time <= 300 && time % 60 == 0 && time > 60) {
broadcastTime();
}
if (time <= 60 && time % 15 == 0 && time > 0) {
broadcastTime();
}
if (time <= 10 && time > 0) {
broadcastTime();
if (time <= 3)
note();
}
if (time == 0) {
for (Team t : BattlePlugin.game().getTeamManager().getTeams()) {
for (BattlePlayer p : t.getPlayers()) {
if (p.hasPlayer()) {
p.playSound(p.getLocation(), Sound.AMBIENCE_THUNDER, 10, 1);
}
}
}
for (World w : Bukkit.getServer().getWorlds()) {
w.setPVP(true);
}
Bukkit.broadcastMessage(BattlePlugin.prefix() + "The grace period has ended!");
}
if (time >= 0) {
time = time - 1;
}
}
private void note() {
for (Team t : BattlePlugin.game().getTeamManager().getTeams()) {
for (BattlePlayer p : t.getPlayers()) {
if (p.hasPlayer()) {
p.playSound(p.getLocation(), Sound.NOTE_SNARE_DRUM, 10, 1);
}
}
}
}
private void broadcastTime() {
if (time > 60) {
Bukkit.broadcastMessage(BattlePlugin.prefix() + "The grace period will end in " + time / 60 + " Minutes");
} else {
Bukkit.broadcastMessage(BattlePlugin.prefix() + "The grace period will end in " + time + " Seconds");
}
}
public int getTime() {
return this.time;
}
}