Plugin Résolu [JAVA] Bukkit Scheduler : Not scheduled yet

Kenda

Architecte en herbe
16 Juillet 2016
292
1
2
125
32
www.youtube.com
Bonjour/Bonsoir,

Actuellement en développement d'un plugin, et d'un système de cooldown, j'aimerai savoir d'où proviens cette erreur :


Bash:
[15:28:43 WARN]: [TicketAdmin] Task #22 for TicketAdmin vdev generated an exception
java.lang.IllegalStateException: Not scheduled yet
        at org.bukkit.scheduler.BukkitRunnable.getTaskId(BukkitRunnable.java:134) ~[1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at org.bukkit.scheduler.BukkitRunnable.cancel(BukkitRunnable.java:18) ~[1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at fr.kenda.ticket.tasks.Cooldown.run(Cooldown.java:17) ~[?:?]
        at org.bukkit.craftbukkit.v1_9_R1.scheduler.CraftTask.run(CraftTask.java:71) ~[1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at org.bukkit.craftbukkit.v1_9_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:729) [1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [1.9.jar:git-Spigot-d20369f-7fc5cd8]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]

Et j'ai fais des recherches mais je ne sais pas trop comment corrigé cette erreur.
Voici la ligne :
Java:
Bukkit.getScheduler().runTaskTimer(Main.getInstance(), new Cooldown(), 20,20);


Merci d'une aide :)
 

Kenda

Architecte en herbe
16 Juillet 2016
292
1
2
125
32
www.youtube.com
Salut,

Qu'est-ce que tu as ligne 17 du fichier "Cooldown.java" ?


Cordialement,
Detobel36

Voici ma class :

Java:
package fr.kenda.ticket.tasks;

import fr.kenda.ticket.Main;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

public class Cooldown extends BukkitRunnable {

    public static int timer = 30;
    public static Player player;

    @Override
    public void run() {

        if(timer == 0){
            Main.getCooldown().remove(player);
            cancel();
        }
        timer--;
    }

    //Methode pour vérifier la durée restante
    public static String CheckDuration(){
        int minutes = 0;
        int secondes = timer;
        while(secondes >= 60){
            minutes++;
            secondes-=60;
        }
        return "§cIl reste §b" + minutes + "minute(s) §cet §b" + secondes + " seconde(s)";
    }
}

Donc c'est
Java:
cancel();
à la ligne 17
 
Dernière édition:

Niz

l | l | l | l | l
18 Août 2013
1 064
1
639
267
Hey !

Juste une petite remarque pour cette méthode qui pourrait être, je pense, bien plus optimisée:
Java:
    //Methode pour vérifier la durée restante
    public static String CheckDuration(){
        return String.format("§cIl reste §b%d minute(s) §cet §b%d seconde(s)",timer/60,timer%60);
    }

Tu en fais ce que tu veux, c'est juste un petit coup de main !

En espérant avoir aidé.