Остановка getScheduler

GoldenSunsetMine

Пользователь
Сообщения
117
Решения
2
Только начал изучать Java, пытаюсь сейчас в этом коде останавливать getScheduler, когда Level и Exp доходят до нуля.
Как это сделать?
Код:
package com.bodya.ua;

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {
    public void onEnable(){
        getLogger().info("Enabled!");
        getServer().getPluginManager().registerEvents(this, this);
    }
    public void onDisable() {
        getLogger().info("Goodbye!");
    }
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        e.getPlayer().setLevel(121);
        e.getPlayer().setExp(1.0f);
        Bukkit.getScheduler().runTaskTimer(this, () -> {
            e.getPlayer().setLevel(e.getPlayer().getLevel() - 1);
            e.getPlayer().setExp(e.getPlayer().getExp() - 0.0082f);
            }, 0, 20);
    }
}
 
Java:
final Player player = e.getPlayer();
player.setLevel(121);
player.setExp(1.0f);
new BukkitRunnable({
    @Override
    void run() {
        player.setLevel(player.getLevel() - 1);
        player.setExp(player.getExp() - 0.0082f);
        if (player.getLevel() <= 0 || player.getExp() <= 0) {
            cancel();
        }
    }
}).runTaskTimer(plugin, 0, 20);
Нечто подобное, по памяти писал
 
Java:
final Player player = e.getPlayer();
player.setLevel(121);
player.setExp(1.0f);
new BukkitRunnable({
@Override
void run() {
player.setLevel(player.getLevel() - 1);
player.setExp(player.getExp() - 0.0082f);
if (player.getLevel() <= 0 || player.getExp() <= 0) {
cancel();
}
}
}).runTaskTimer(plugin, 0, 20);
Нечто подобное, по памяти писал
Вот что нужно было сделать для решения проблемы.
Объединено

Закройте пожалуйста тему.
 

Вложения

  • изображение_2022-10-10_091300668.png
    изображение_2022-10-10_091300668.png
    127.8 KB · Просмотры: 22
GoldenSunsetMine, то, что у тебя на скрине, работать не будет, насколько я помню. При попытке отмены будет исключение not scheduled yet
offtop Тему закрывать не нужно, просто выбери лучший ответ

Edit. судя по всему, ты используешь это
Если оно работает, хорошо. А то в моей юности таких вещей не было, это из новых версий метод
 
Назад
Сверху Снизу