Solved Why my scheduler remove two by two.

Discussion in 'Spigot Plugin Help' started by dbzjp, May 18, 2016.

Thread Status:
Not open for further replies.
  1. Hi, I actually have a problem with my plugin and especially with the scheduler of methods.
    Code (Text):
    package com.dbzjp;

    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.Plugin;

    public class StartListener {

        static Plugin plugin = Bukkit.getPluginManager().getPlugin("Arrow");
        static int co = Bukkit.getOnlinePlayers().size();
        static int task = 1;
        static int countdown = 10;
        static int timer = 2;
        static int timesecondes = 1800;
       
        public static void Start() {
            if(Arrow.ingame == true) {
               
            }
            else {
            if(co > 1) {
                task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {

                    @SuppressWarnings("deprecation")
                    @Override
                    public void run() {
                        countdown--;
                        if(countdown == 120 || countdown == 90 || countdown == 60 || countdown == 30 || countdown <= 10) {
                            Bukkit.broadcastMessage("§7[§6Arrow§7] §6La partie démmare dans §e" + countdown + " §6secondes !");
                            for(Player all1 : Bukkit.getOnlinePlayers()) {
                                all1.sendTitle("", "§6La partie démmare dans §e" + countdown + " §6secondes !");
                            }
                        }
                      if(countdown == 0) {
                            Bukkit.getScheduler().cancelTask(task);
                            for(Player all : Bukkit.getOnlinePlayers()) {
                                all.sendTitle("", "§aLa partie démmare, bonne chance !");
                                all.sendMessage("§7[§6Arrow§7] §aLa partie démmare, bonne chance !");
                                countdown = 121;
                                Arrow.ingame = true;
                                temps();
                                plugin.getConfig().set(all.getName() + ".deaths", 0);
                                plugin.saveConfig();
                            }
                        }
                       

                    }
                   
                }, 20L, 20L);
            }
            }
        }
       
       
        public static void StartCancel() {
            if(Arrow.ingame == true) {
               
            }
            else {
            if(co < 10) {
                if(countdown < 120) {
                    Bukkit.broadcastMessage("§7[§6Arrow§7] §6Pas assez de joueurs pour commencer la partie, compte à rebours annulé");
                    countdown = 10;
                    Bukkit.getScheduler().cancelTask(task);;

                }
            }
            }
        }
       
    public static void temps() {
           
        timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {

            @Override
            public void run() {
                timesecondes--;
                Arrow.scoreboard();
               
              if(timesecondes == -60) {
                    for(Player p : Bukkit.getOnlinePlayers()) {
                        p.kickPlayer("§cMerci d'avoir joué ! :)");
                    }
                }
               

            }
           
        }, 20L, 20L);

    }
    }
    The two first methods works whitout any problem, but the last method cause a bug, i show the timer of the last method in a scoreboard ( with convert in minuts and seconds ) but, the scheduler removes the number two by two, not one by one.

    Can someone help me ? x)
     
Thread Status:
Not open for further replies.