Solved new Runnable() doesnt work.

Discussion in 'Plugin Development' started by Kargond, May 22, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    Kargond

  2. Offline

    Zombie_Striker

    You messed up the Runnable. This is how it should look.

    Code:
    new Runnable(){
    
       @Override
       public void run(){
    
       }
    }
     
  3. Offline

    Kargond

    Should it look like this?
    Code:
    package me.kargond.tetronimo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.scheduler.BukkitScheduler;
    
    public class game implements Listener{
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            p.teleport(main.instance.getLobby());
        }
        public void gameStart(String string){
            int onlinePlayers = Bukkit.getServer().getOnlinePlayers().size();
            if(onlinePlayers >=2){
                BukkitScheduler gameStarter = Bukkit.getServer().getScheduler();
                gameStarter.scheduleSyncRepeatingTask(new main(), new Runnable(), 0L, 20L);{
                    @Override
                    public void run(){
                        for (int i = 30; i <= 0; i--){
                            for(Player p : Bukkit.getOnlinePlayers()){
                                p.teleport(main.instance.getGame());
                            }
                        }
                    }
                }
            }
        }
    }
    
     
  4. Offline

    Zombie_Striker

    @Kargond
    You still have not fixed the runnable. Do you know what you're doing?
     
  5. Offline

    Kargond

    Um, as say as truth I dont understand how schedulers work at all.

    Code:
    package me.kargond.tetronimo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.scheduler.BukkitScheduler;
    
    public class game implements Listener{
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            p.teleport(main.instance.getLobby());
        }
        public void gameStart(String string){
            int onlinePlayers = Bukkit.getServer().getOnlinePlayers().size();
            if(onlinePlayers >=2){
                BukkitScheduler gameStarter = Bukkit.getServer().getScheduler();
                gameStarter.scheduleSyncRepeatingTask(new main(), new Runnable(){
                    @Override
                    public void run(){
                        for (int i = 30; i <= 0; i--){
                            for(Player p : Bukkit.getOnlinePlayers()){
                                p.teleport(main.instance.getGame());
                            }
                        }
                    }
                }, 0L, 20L);
            }
        }
    }
    
    Right?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
  6. Offline

    Zombie_Striker

    Yes, that should work. The only thing is you should reference the main class once, instead of using a new main. Use a constructor to get the instance of main and use that for the Plugin variable.

    Also, follow Java Naming Conventions.
     
Thread Status:
Not open for further replies.

Share This Page