Помогите Уничтожится ли экземпляр таймера?

Novichock

Активный участник
Пользователь
Баллы
76
Уничтожится ли экземпляр сам или его надо будет уничтожить?Если не уничтожается,то как уничтожить.
Вот класс таймера:
Код:
package ru.Novichock.HideAndSeek;

import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

public class MyTime extends BukkitRunnable {
private int counter;
private HideAndSeek plugin;

public MyTime(HideAndSeek plugin,int counter){
     this.counter=counter;
     this.plugin=plugin;
}
    @Override
    public void run() {
       if(counter>0){
           for(Player p : plugin.JoinInGame){
               plugin.Messager("Игра начнётся через: "+counter, p);
               counter--;
           }
       } 
       if(counter==0){
        for(Player p : plugin.JoinInGame){
        plugin.Messager("Игра началась!", p);
        }
        this.cancel();
       }
    }

}

Вот так запускаю:
MyTime mytime = new MyTime(plugin,5);
mytime.runTaskTimer(plugin, 0, 20);
 
в Java все объекты существуют лишь до тех пор, пока на них существует хотя-бы одна ссылка.

в случае однократного вызова run() - MyTime будет уничтожен после исполнения.

в данном случае исполняет его таймер, вызывая run() когда ему захочется (задан период). Для уничтожения объекта нужно остановить таймер. Для этого нужно знать его айди.

BukkitTask.getTaskId();
Scheduler.cancelTask(id);
 
в Java все объекты существуют лишь до тех пор, пока на них существует хотя-бы одна ссылка.

в случае однократного вызова run() - MyTime будет уничтожен после исполнения.

в данном случае исполняет его таймер, вызывая run() когда ему захочется (задан период). Для уничтожения объекта нужно остановить таймер. Для этого нужно знать его айди.

BukkitTask.getTaskId();
Scheduler.cancelTask(id);
В моём случае таймер останавливается когда выполняется условие counter==0 ?
 
Назад
Верх