- Баллы
- 66
- Имя в Minecraft
- LifeAngel
Суть задачи в чем: когда игрок заходит на сервер должен запустится таймер из функции onJoin. Нужно сделать так, что бы из функции onLeave можно было этот таймер убить. Сталкивался кто с такой проблемой?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
public void onEnable() {
BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
scheduler.scheduleSyncDelayedTask(this, new Runnable() {
@Override
public void run() {
// Do something
}
}, 20L);
}
int id = 0;Сам код из примера такой
Однако мне не понятно где тут его ид и как мне потом можно будет его убрать. Не подскажете?JavaScript:public void onEnable() { BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); scheduler.scheduleSyncDelayedTask(this, new Runnable() { @Override public void run() { // Do something } }, 20L); }
Уже в теме твоего плагина написал про индусский код, напишу и тут.int id = 0;
id=scheduler.scheduleSyncDelayedTask(this, new Runnable() ..
А потом по айди оффай.
Что бы можно было получать айди с любого места.Уже в теме твоего плагина написал про индусский код, напишу и тут.
Зачем ты делаешь?
Сначала int id = 0;
Потом id = .....
Если можно int id = ...
Ты так и не показал где у меня индусский код.Уже в теме твоего плагина написал про индусский код, напишу и тут.
Зачем ты делаешь?
Сначала int id = 0;
Потом id = .....
Если можно int id = ...
BukkitTask task = Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
@Override
public void run() {
}
}, 20);
task.cancel(); // Остановить
Опять же. Как мне убить его из другой функции?sheduleTask* методы устарели. Используйте runTask*.
Java:BukkitTask task = Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { @Override public void run() { } }, 20); task.cancel(); // Остановить
В чём проблема создать HashMap со ссылками на таймеры?Опять же. Как мне убить его из другой функции?
Проблема в неопытности. Понятия не имею о чем речь, если честноВ чём проблема создать HashMap со ссылками на таймеры?
Тогда сначала выучите язык, а потом пишите что-то.Проблема в неопытности. Понятия не имею о чем речь, если честно
public final HashMap<UUID,BukkitRunnable> players = new HashMap<UUID,BukkitRunnable>();
@EventHandler
public void onJoin(PlayerJohelEvent e)
{ BukkitRunnable br = new BukkitRunnableExtension(e.getPlayer());
br.runTaskTimer(plugin, 10, 20);
players.put(e.getPlayer().getUUID(),br); }
@EventHandler
public void onLeave(PlayerLevelEvent e)
{ BukkitRunnable br = players.remove(e.getPlayer().getUUID());
if(br!=null) br.cancel();
}
public final class BukkitRunnableExtension extends BukkitRunnable
{
private final Player p;
public BukkitRunnableExtension(Player p) { this.p = p; }
@Override
public void run()
{ p.damage(1); }
}