Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Mincraft, Jawa, script

markabuziarov Ученик (106), на голосовании 4 месяца назад
как сделать так что бы когда переменная будет 0 то перестанет уменьшатся

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);
}
}
Голосование за лучший ответ
Татьяна Просветленный (36377) 5 месяцев назад
В вашем коде отсутствует проверка на значение переменной 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);
}
}
markabuziarovУченик (106) 5 месяцев назад
спасибо большое
Похожие вопросы