Compte à rebours

RedHeadEmile

Codeur Java qui code en Java
6 Novembre 2015
121
1
130
Bonjour j'ai besoin de faire un compte à rebours pour mon plugin, voici le code :
Code:
    public int task;
    public void start(final int i){
       
        task = Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){

            @Override
            public void run() {
               
                int time = i;
               
                if(time != 0){
                    Bukkit.getServer().broadcastMessage("§6La partie commence dans §a"+time+" §6seconde(s)");
                }
               
                if(time == 0){
                    Bukkit.getServer().broadcastMessage("§6La partie §acommence §6!");
                    Bukkit.getScheduler().cancelTask(task);
                }
               
            }
           
        },20);
    }

Mais je ne sais pas comment faire pour l’exécuter, voici le début du code :
Code:
            if(args[0].equalsIgnoreCase("/start")){
            int i = 15;
            "exécution du compte à rebours"
        }

Et voila, vous pouvez m'aider, merci.
 
Tu m'expliques comment tu veux faire un compte à rebours avec un scheduleSyncDelayedTask? La ce que tu viens de faire c'est juste de faire exécuter une action dans 1 secondes. Si tu veux un compte à rebours utilise ScheduleSyncReapeatingTask(). Et en plus tu si tu veux avoir un compte à rebours il faut que tu décrémente ta variable temps.

Code:
    public static void onStart(final int i)
    {
        time = i;
        task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("Nom du plugin"), new Runnable(){

            @Override
            public void run() {
                time--;
               
                if(time != 0)
                {
                   
                }
               
                if(time == 0)
                {
                   
                }
               
            }
           
        }, 20, 20);
}
 
Dernière édition:
La variable task indique une erreure:
Code:
 public static void start(final int i)
       {
          task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("SkyWars"), new Runnable(){

               @Override
               public void run() {
                   
                    int time = 15;
                    time --;
                 
                   if(time != 0)
                   {
                      Bukkit.getServer().broadcastMessage("§6La partie commence dans §a"+time+" §6seconde(s)");
                   }
                 
                   if(time == 0)
                   {
                      Bukkit.getServer().broadcastMessage("§6La partie §acommence §6!");
                        Bukkit.getScheduler().cancelTask(i);
                   }
                 
               }
             
           }, 20, 20);
    }
 
Quel est l'erreur? Est si tu redéfini time à 15 a chaque fois que le boucle recommence sa ne marchera pas.
 
Pour la variable ? ça ne marche pas
Code:
public int task;
    public static void start(final int i)
       {
         
        final int time = 15;
        task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("SkyWars"), new Runnable(){
 
Dernière édition: