В вашем коде отсутствует проверка на значение переменной myNumber, что приводит к тому, что она продолжает уменьшаться даже при достижении нуля. Чтобы это исправить, можно добавить проверку внутри метода run, и если значение переменной myNumber равно нулю, остановить задачу с помощью метода cancel.
package handler;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import time_undo.time.Time;
public class nadleriv implements Listener {
int myNumber = 10;
public void timer(Player player) {
BukkitTask task = new BukkitRunnable() {
@Override
public void run() {
if (myNumber <= 0) {
player.sendMessage("Время истекло!");
cancel(); // Останавливаем задачу, если myNumber равно нулю или меньше
return;
}
myNumber -= 1;
player.sendMessage("" + myNumber + " минут осталось");
}
}.runTaskTimer(Time.getInstance(), 0, 60);
}
@EventHandler
public void nadleriv(PlayerJoinEvent e) {
Player p = e.getPlayer();
timer(p);
}
}
package handler;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.server.ServiceEvent;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import time_undo.time.Time;
public class nadleriv implements Listener {
int myNumber= 10;
public void timer(Player player){
BukkitTask task = new BukkitRunnable() {
@Override
public void run(){
myNumber-=1;
player.sendMessage("" + myNumber +" минут осталось");
}
}.runTaskTimer(Time.getInstance(), 0, 60);
}
@EventHandler
public void nadleriv(PlayerJoinEvent e) {
Player p = e.getPlayer();
timer(p);
}
}