Solved Plugin not loading

Discussion in 'Plugin Development' started by danichef, Jul 17, 2017.

Thread Status:
Not open for further replies.
  1. Hello everyone,
    It's been a while since I dont code and I'm getting this error:
    View attachment 29887
    Since the plugin is quite big, what part of it will you need?
     
  2. Offline

    Machine Maker

    @danichef The Main.class file and the BoosterCommands file
     
  3. K, so:
    Main:
    Code:
    public class Main extends JavaPlugin implements Listener {
      
        BoosterCommands bo = new BoosterCommands();
        public static Main plugin;
        SettingsManager settings = SettingsManager.getInstance();
        TokenRain Tk = new TokenRain();
        Lag Lg = new Lag();
    
      
        public void onEnable(){
            BoosterDataBase.createFile();
            registerCommands();
            settings.setup(this);
            plugin = this;
            getServer().getPluginManager().registerEvents(new AntiFallDamage(), this);
            getServer().getPluginManager().registerEvents(new BowBooster(), this);
            getServer().getPluginManager().registerEvents(new LiveBooster(), this);
            getServer().getPluginManager().registerEvents(new Blood(), this);
            getServer().getPluginManager().registerEvents(new AntiLog(), this);
            getServer().getPluginManager().registerEvents(new JoinLoc(), this);
            getServer().getPluginManager().registerEvents(new ScoreboardManager(), this);
            getServer().getPluginManager().registerEvents(new TokenRain(), this);
            getServer().getPluginManager().registerEvents(new DoubleJumpBooster(), this);
            getServer().getPluginManager().registerEvents(new PvpGrief(), this);
            this.Rain();
            this.Lag();
        }
          
      
        public void onDisable(){
            bo.onFireBow = false;
            bo.onDoubleLives = false;
            bo.onDoubleJump = false;
        }
          private void registerCommands() {
                getCommand("booster").setExecutor(new BoosterCommands());
                getCommand("setloc").setExecutor(new JoinLoc());
                getCommand("setcenter").setExecutor(new TokenRain());
          }    
        public void Rain(){
            BukkitScheduler scheduler = getServer().getScheduler();
            scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
                @Override
                public void run() {
                    Tk.onRandomSpawn();
                }
            }, 0L, 3600L);
        }
        public void Lag(){
            BukkitScheduler scheduler = getServer().getScheduler();
            scheduler.scheduleSyncRepeatingTask(this, new Runnable() {
                @Override
                public void run() {
                    Lg.removeItems();
                }
            }, 0L, 10000L);
        }
      
    
    }
    
    BoosterCommands:
    Code:
       public static boolean onDoubleLives = false;
        public static boolean onFireBow = false;
        public static boolean onDoubleJump = false;
        Main mn = new Main(); //*Err
    
      
        String prefix = ChatColor.DARK_RED + "" + ChatColor.BOLD + "Krazium" + ChatColor.WHITE + "" + ChatColor.BOLD + "Booster" + ChatColor.DARK_GRAY + "" + ChatColor.BOLD + "> ";
    
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player p = (Player) sender;
            if ((args.length == 2) && (args[0].equalsIgnoreCase("add"))){
            if (args[1].equalsIgnoreCase("doublelive")){
                if(CurrencyMethods.hasLessMoney(1, p)){
                    p.sendMessage(prefix + "§cYou don't have any boosters!"); //*Err
                }
                    if(onDoubleLives == true){
                        p.sendMessage(prefix + "Theres already a double live booster!");
                    }else {
                        if(onDoubleLives == false){
                            onDoubleLives = true;
                            p.sendMessage(prefix + ChatColor.GREEN + "You've used 1 booster!");
                            CurrencyMethods.subtractMoney(p.getName(), 1);
                            giveLiveDelay();
                            Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                            for (Player players : onlinePlayerList) {
                                Title title = new Title (ChatColor.DARK_GREEN + "Booster Activation!", ChatColor.GREEN + p.getName() + " has activated double live booster!", 40, 120, 40);
                                title.send(players);
                                return true;
                            }
    
                        }
                    }
                }
                else if (args[1].equalsIgnoreCase("explosivearrows")){
                    if(onFireBow == true){
                        p.sendMessage(prefix + "Theres already an explosive arrows booster!");
                    }else {
                        if(onFireBow == false){
                            onFireBow = true;
                            p.sendMessage(prefix + ChatColor.GREEN + "You've used 1 explosive arrow booster!");
                            CurrencyMethods.subtractMoney(p.getName(), 1);
                            giveBowDelay();
                            Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                            for (Player players : onlinePlayerList) {
                                players.sendMessage(prefix + ChatColor.GREEN + p.getName() +  " has activated a fire ball bow booster!");
                                Title title = new Title (ChatColor.GOLD + "Booster Activation!", ChatColor.YELLOW + p.getName() + " has activated explosive arrows!", 40, 120, 40);
                                title.send(players);
                              
                            }
    
                        }
                    }
    
                } else if (args[1].equalsIgnoreCase("doublejump")){
                    if(onDoubleJump == true){
                        p.sendMessage(prefix + "Theres already a double jump booster!");
                    }else {
                        if(onDoubleJump == false){
                            onDoubleJump = true;
                            p.sendMessage(prefix + ChatColor.GREEN + "You've used 1 a booster!");
                            CurrencyMethods.subtractMoney(p.getName(), 1);
                            giveJumpDelay();
                            Collection<? extends Player> online = Bukkit.getServer().getOnlinePlayers();
                            for (Player players : online) {
                                players.sendMessage(prefix + ChatColor.BLUE + p.getName() +  " has activated a double jump booster!");
                                Title title = new Title (ChatColor.DARK_BLUE + "Booster Activation!", ChatColor.BLUE + p.getName() + " has activated double jump booster!", 40, 120, 40);
                                title.send(players);
    
                            }
    
                        }
                    }
                } else {
                    p.sendMessage(ChatColor.GOLD + "-=-=-=CustomKitPvP v.1=-=-=-");
                    p.sendMessage(ChatColor.YELLOW + "/booster add [ExplosiveBow/DoubleLive/DoubleJump]");
                    p.sendMessage(ChatColor.GREEN + "Developed by danichef for Project Krazium");
                    p.sendMessage(ChatColor.GOLD + "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                    return true;
                }
    
              
            } else  if ((args.length == 3) && (args[0].equalsIgnoreCase("give"))){
                if (!sender.hasPermission("ckitpvp.giveb")) {
                    sender.sendMessage(prefix + ChatColor.RED + "You are not permitted to do this!");
                    return true;
            }
                if(args.length == 3){
                        if(Double.parseDouble(args[2]) <=0){
                            sender.sendMessage(prefix + "§cUse of negative integers is prohibited");
                            return false;
                        }
                        sender.sendMessage(prefix + "§aBooster given successfuly");
                        CurrencyMethods.addMoney(args[1], Double.parseDouble(args[2]));
                      
                    } else {
                        sender.sendMessage(ChatColor.GOLD + "-=-=-=CustomKitPvP v.1=-=-=-");
                        sender.sendMessage(ChatColor.YELLOW + "/booster give [player] [Amount]");
                        sender.sendMessage(ChatColor.GREEN + "Developed by danichef for Project Krazium");
                        sender.sendMessage(ChatColor.GOLD + "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                            return true;
                    }
              
            } else  if ((args.length == 2) && ((args[0].equalsIgnoreCase("stop")) && p.isOp())){
                if (!sender.hasPermission("ckitpvp.stopb")) {
                    sender.sendMessage(ChatColor.RED + "You are not permitted to do this!");
                    return true;
            }
                if(args[1].equalsIgnoreCase("fireballbow")){
                    onFireBow = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.RED + "Fireball bow booster has been stopped by " + p.getName() + "!" );
                        Title title = new Title (ChatColor.DARK_RED + "Booster Stopped!", ChatColor.RED + "Fireball bow booster has been stopped by " + p.getName() + "!", 40, 120, 40);
                        title.send(players);
                  
                }
                }else if(args[1].equalsIgnoreCase("doublelive")){
                    onDoubleLives = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.RED + "Double live booster has been stopped by " + p.getName() + "!" );
                        Title title = new Title (ChatColor.DARK_RED + "Booster Stopped!", ChatColor.RED + "Double live booster has been stopped by " + p.getName() + "!", 40, 120, 40);
                        title.send(players);
                  
                }  
                  
                } else if(args[1].equalsIgnoreCase("doublejump")){
                    onDoubleJump = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.BLUE + "Double jump booster has been stopped by " + p.getName() + "!" );
                        Title title = new Title (ChatColor.DARK_RED + "Booster Stopped!", ChatColor.RED + "Double jump booster has been stopped by " + p.getName() + "!", 40, 120, 40);
                        title.send(players);
                    }
                }  else {
                    p.sendMessage(ChatColor.GOLD + "-=-=-=CustomKitPvP v.1=-=-=-");
                    p.sendMessage(ChatColor.YELLOW + "/booster stop [ExplosiveBow/DoubleLive/DoubleJump]");
                    p.sendMessage(ChatColor.GREEN + "Developed by danichef for Project Krazium");
                    p.sendMessage(ChatColor.GOLD + "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                    return true;
            }
                } else {
                    p.sendMessage(ChatColor.GOLD + "-=-=-=CustomKitPvP v.1=-=-=-");
                    p.sendMessage(ChatColor.YELLOW + "/booster [add/stop/give] [ExplosiveBow/DoubleLive/DoubleJump/Player] (Amount)");
                    p.sendMessage(ChatColor.GREEN + "Developed by danichef for Project Krazium");
                    p.sendMessage(ChatColor.GOLD + "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
                    return true;
                }
            return false;
                  
                }
      
        public void giveLiveDelay() {
            Bukkit.getScheduler().scheduleSyncDelayedTask(mn, new Runnable() {
                public void run() {
                    BoosterCommands.onDoubleLives = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.RED + "Double live booster has expired!");
                        Title title = new Title (ChatColor.DARK_RED + "Booster Expiration!", ChatColor.RED + "Double live booster has expired =(", 40, 120, 40);
                        title.send(players);
                      
                    }
                  
    
                }
            }, 72000); // 20 ticks = 1 second. So 72000 ticks = 1 hour.
        }
        public void giveBowDelay() {
            Bukkit.getScheduler().scheduleSyncDelayedTask(mn, new Runnable() {
                public void run() {
                    BoosterCommands.onFireBow = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.RED + "Explosive arrows booster has expired!");
                        Title title = new Title (ChatColor.DARK_RED + "Booster Expiration!", ChatColor.RED + "Explosive arrows booster has expired =(", 40, 120, 40);
                        title.send(players);
                      
                    }
                  
    
                }
            }, 72000); // 20 ticks = 1 second. So 72000 ticks = 1 hour.
        }
        public void giveJumpDelay() {
            Bukkit.getScheduler().scheduleSyncDelayedTask(mn, new Runnable() {
                public void run() {
                    BoosterCommands.onDoubleJump = false;
                    Collection<? extends Player> onlinePlayerList = Bukkit.getServer().getOnlinePlayers();
                    for (Player players : onlinePlayerList) {
                        players.sendMessage(prefix + ChatColor.RED + "Double jump booster has expired!");
                        Title title = new Title (ChatColor.DARK_RED + "Booster Expiration!", ChatColor.RED + "Double jump booster has expired =(", 40, 120, 40);
                        title.send(players);
                      
                    }
                  
    
                }
            }, 72000); // 20 ticks = 1 second. So 72000 ticks = 1 hour.
        }
    
    }
              
    
     
    Last edited: Jul 17, 2017
  4. Offline

    Machine Maker

    @danichef Wait, you're registering these as events, but they look a lot like commands. Does booster commands implement Listener? If not, then you are trying to register events that aren't events at all.
     
  5. @danichef
    Issue is pretty simple. You are not allowed to have more than one instance of your plugin (and that instance is created automatically, so you should not create any). Instead of creating a new instance of your Main class, pass the instance from your main class somehow. In this case, I'd say passing it through a constructor would be appropriate.
     
  6. I tryed adding he schedulers as events since I thought that was the error but it didnt work before eighther

    @AlvinB What do u mean by instance?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
  7. Offline

    Machine Maker

    @danichef Also, don't use Bukkit Schedulers. Use Bukkit Runnables instead.


    @AlvinB Is there a place where he is creating another instance? I can't find one.

    He is creating one! in booster commands a couple lines down. There is a /Err** comment next to it
     
  8. Offline

    Horsey

    You can also use the getPlugin method in the JavaPlugin class, like: JavaPlugin.getPlugin(YourMainClassName.class);
     
  9. @Horsey
    No, that is way slower than it needs to be. That method should only be used by other plugins which don't control the code of the plugin.
     
  10. @AlvinB
    Thx that worked!
     
Thread Status:
Not open for further replies.

Share This Page