1.14.4 Please Help (Error with Teams)

Discussion in 'Spigot Plugin Development' started by Th3Wh1teG0d, Jan 28, 2020.

  1. Im trying to create a sorted tablist but it gives me this error

    Error:
    Code (Text):

    [12:10:22] [Server thread/WARN]: [CityBuildSystem] Task #7530 for CityBuildSystem v1.0 generated an exception
    java.lang.NullPointerException: null
            at de.th3wh1teg0d.extras.TablisteUndScoreboard$1$1.run(TablisteUndScoreboard.java:136) ~[?:?]
            at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftTask.run(CraftTask.java:81) ~[spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at org.bukkit.craftbukkit.v1_14_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:394) [spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at net.minecraft.server.v1_14_R1.MinecraftServer.b(MinecraftServer.java:1022) [spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:393) [spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:970) [spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:815) [spigot-1.14.4.jar:git-Spigot-cbd1a1b-009d8af]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
     
    Code:

    Code (Java):

    public class TablisteUndScoreboard {
       
        private static ExecutorService executorService = Executors.newSingleThreadExecutor();

        public static void start() {
            executorService.execute(new Runnable()
            {
                public void run() {
                    Bukkit.getScheduler().scheduleSyncRepeatingTask(main.getMain(), new Runnable() {
                        @SuppressWarnings({"deprecation" })
                        @Override
                        public void run() {
                               for (Player target : Bukkit.getOnlinePlayers()) {
                               
                                //Tabliste                          
                                target.setPlayerListHeader("§9 §l\u2666 §bServer §9§l\u2666 \n \n" + "§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[");
                               
                                target.setPlayerListFooter("§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[§r" + "\n \n"
                                        + "§8TPS §7» §r" + PlaceholderAPI.setPlaceholders(target, "%server_tps_1_colored%"
                                                + " §8Ping §7» §9" + PlaceholderAPI.setPlaceholders(target, "%player_ping%")));
                               
                                //Scoreboard
                                ScoreboardManager manager = Bukkit.getScoreboardManager();
                                Scoreboard board = manager.getNewScoreboard();
                                Team team = board.registerNewTeam("anzeige");  
                               
                                Objective objective = board.getObjective("aaa");
                                if(objective == null) {
                                    objective = board.registerNewObjective("aaa", "bbb");
                                }                          
                               
                                objective.setDisplaySlot(DisplaySlot.SIDEBAR);                          
                                objective.setDisplayName("§8» §bServer §8«");
                               
                                Score score = objective.getScore("§b ");
                                score.setScore(10);
                               
                                Score score2 = objective.getScore("§f§l" + PlaceholderAPI.setPlaceholders(target, "%player_name%") + ":");
                                score2.setScore(9);
                               
                                Score score3 = objective.getScore(" §8» " + PlaceholderAPI.setPlaceholders(target, "%vault_rankprefix%"));
                                score3.setScore(8);
                               
                                Score score4 = objective.getScore("§c ");
                                score4.setScore(7);
                               
                                Score score5 = objective.getScore("§f§lMoney:");
                                score5.setScore(6);
                               
                                Score score6 = objective.getScore(" §8» §cnull");
                                score6.setScore(5);
                               
                                Score score7 = objective.getScore(" ");
                                score7.setScore(4);
                               
                                Score score8 = objective.getScore("§f§lWichtige Befehle:");
                                score8.setScore(3);
                               
                                Score score9 = objective.getScore(" §8» §b/Menü");
                                score9.setScore(2);
                               
                                Score score10 = objective.getScore("Dings 8");
                                score10.setScore(1);  
                               
                                team.addEntry(target.getName());  
                               
                                Team Owner = getTeam(board, "00");
                                Team SrModerator = getTeam(board, "01");
                                Team Moderator = getTeam(board, "02");
                                Team Supporter = getTeam(board, "03");
                                Team Trusted = getTeam(board, "04");
                                Team Premium = getTeam(board, "05");
                                Team Champion = getTeam(board, "06");
                                Team Titan = getTeam(board, "07");
                                Team Legende = getTeam(board, "08");
                                Team Ultra = getTeam(board, "09");
                                Team Hero = getTeam(board, "10");
                                Team Master = getTeam(board, "11");
                                Team Elite = getTeam(board, "12");
                                Team Spieler = getTeam(board, "13");
                               
                                if(target.hasPermission("system.owner")) {
                                    Owner.addEntry(target.getName());
                                } else {
                                    if(target.hasPermission("system.srmoderator")) {
                                        SrModerator.addEntry(target.getName());
                                    } else {
                                        if(target.hasPermission("system.moderator")) {
                                            Moderator.addEntry(target.getName());
                                        } else {
                                            if(target.hasPermission("system.supporter")) {
                                                Supporter.addEntry(target.getName());
                                            } else {
                                                if(target.hasPermission("system.trusted")) {
                                                    Trusted.addEntry(target.getName());
                                                } else {
                                                    if(target.hasPermission("system.premium")) {
                                                        Premium.addEntry(target.getName());
                                                    } else {
                                                        if(target.hasPermission("system.champion")) {
                                                            Champion.addEntry(target.getName());
                                                        } else {
                                                            if(target.hasPermission("system.titan")) {
                                                                Titan.addEntry(target.getName());
                                                            } else {
                                                                if(target.hasPermission("system.legende")) {
                                                                    Legende.addEntry(target.getName());
                                                                } else {
                                                                    if(target.hasPermission("system.ultra")) {
                                                                        Ultra.addEntry(target.getName());
                                                                    } else {
                                                                        if(target.hasPermission("system.hero")) {
                                                                            Hero.addEntry(target.getName());
                                                                        } else {
                                                                            if(target.hasPermission("system.master")) {
                                                                                Master.addEntry(target.getName());
                                                                            } else {
                                                                                if(target.hasPermission("system.elite")) {
                                                                                    Elite.addEntry(target.getName());
                                                                                } else {
                                                                                    if(target.hasPermission("system.spieler")) {
                                                                                        Spieler.addEntry(target.getName());
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }  
                                target.setScoreboard(board);
                            }
                        }
                    }, 10, 10);
                }
            });
        }
       
        public static Team getTeam(Scoreboard board, String Team) {
            Team team = board.getTeam(Team);
            if(team == null) {
                board.registerNewTeam(Team);
            }
            return team;
        }
    }
     
     
  2. Can you point out the line that the NPE occurs?
     
  3. Code (Java):
    Elite.addEntry(target.getName());
     
  4. Well, you are checking whether or not the team is null, but you are still returning the old value. Change your method getTeam to this:

    Code (Java):
    public static Team getTeam(Scoreboard board, String Team) {
        Team team = board.getTeam(Team);
        return team == null ? board.registerNewTeam(Team) : team;
    }
     
  5. Works now with no errors but the tablist isnt sorted :/
     
  6. Is there a natural ordering of that?
    If no, you'll have to implement that yourself...
     
  7. I have done this already... all teams are named from 00 to 13 but the users in this groups are not in the right position
     
  8. Are you using a permission management plugin to give your player the specific permission or are you simply giving them op. If you use a plugin, make sure, that the players do NOT have op, if you are giving them op, install a plugin like permissionsex
     
  9. Im using an Permission Plugin
     
  10. I need help please
     
  11. get rid of the executor service bit. its literally doing nothing useful.

    recompile and give the updated error, as well as the updated code for the class that has the error, with the error line pointed out

    /e Elite is null. in your getTeam method, you create a new team but you dont update the reference, so even though youve created a new team, youre still returning the null one. team = createNewTeam

    /e2 you could figure this out yourself if you just did a bit of thinking. it tells you something is null. it tells you what line something is null on. figure out which one is null. figure out why its null. correct it.
     
  12. I have made a few changes but it still doesent Work (No Errors).

    Code:

    Code (Java):

    public class TablisteUndScoreboard {

        public static void run() {
            Bukkit.getScheduler().scheduleSyncRepeatingTask(main.getMain(), new Runnable() {
                @SuppressWarnings({"deprecation" })
                @Override
                public void run() {
                    for (Player target : Bukkit.getOnlinePlayers()) {
                       
                        //Tabliste                          
                        target.setPlayerListHeader("§9 §l\u2666 §bServer §9§l\u2666 \n \n" + "§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[");
                       
                        target.setPlayerListFooter("§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[§r" + "\n \n"
                                + "§8TPS §7» §r" + PlaceholderAPI.setPlaceholders(target, "%server_tps_1_colored%"
                                        + " §8Ping §7» §9" + PlaceholderAPI.setPlaceholders(target, "%player_ping%")));
                                   
                        //Scoreboard
                        ScoreboardManager manager = Bukkit.getScoreboardManager();
                        Scoreboard board = manager.getNewScoreboard();
                        Objective objective = board.registerNewObjective("aaa", "bbb");                          
                       
                        objective.setDisplaySlot(DisplaySlot.SIDEBAR);                          
                        objective.setDisplayName("§8» §bServer §8«");
                       
                        Score score = objective.getScore("§b ");
                        score.setScore(10);
                       
                        Score score2 = objective.getScore("§f§l" + PlaceholderAPI.setPlaceholders(target, "%player_name%") + ":");
                        score2.setScore(9);
                       
                        Score score3 = objective.getScore(" §8» " + PlaceholderAPI.setPlaceholders(target, "%vault_rankprefix%"));
                        score3.setScore(8);
                       
                        Score score4 = objective.getScore("§c ");
                        score4.setScore(7);
                       
                        Score score5 = objective.getScore("§f§lMoney:");
                        score5.setScore(6);
                       
                        Score score6 = objective.getScore(" §8» §b" + new Random().nextInt(1000));
                        score6.setScore(5);
                       
                        Score score7 = objective.getScore(" ");
                        score7.setScore(4);
                       
                        Score score8 = objective.getScore("§f§lWichtige Befehle:");
                        score8.setScore(3);
                       
                        Score score9 = objective.getScore(" §8» §b/Menü");
                        score9.setScore(2);
                       
                        Score score10 = objective.getScore("Dings 8");
                        score10.setScore(1);  
                       
                        target.setScoreboard(board);
                       
                        //Tablist Sortierung
                       
                        Scoreboard ts = manager.getNewScoreboard();
                       
                        Team Owner = getTeam(ts, "000");
                        Team SrModerator = getTeam(ts, "010");
                        Team Moderator = getTeam(ts, "020");
                        Team Supporter = getTeam(ts, "030");
                        Team Trusted = getTeam(ts, "040");
                        Team YouTuber = getTeam(ts, "050");
                        Team Premium = getTeam(ts, "060");
                        Team Champion = getTeam(ts, "070");
                        Team Titan = getTeam(ts, "080");
                        Team Legende = getTeam(ts, "090");
                        Team Ultra = getTeam(ts, "100");
                        Team Hero = getTeam(ts, "110");
                        Team Master = getTeam(ts, "120");
                        Team Elite = getTeam(ts, "130");
                        Team Spieler = getTeam(ts, "140");
                       
                        if(target.hasPermission("system.owner")) {                              
                            Owner.addEntry(target.getName());
                        } else {
                            if(target.hasPermission("system.srmoderator")) {
                                SrModerator.addEntry(target.getName());
                            } else {
                                if(target.hasPermission("system.moderator")) {
                                    Moderator.addEntry(target.getName());
                                } else {
                                    if(target.hasPermission("system.supporter")) {
                                        Supporter.addEntry(target.getName());
                                    } else {
                                        if(target.hasPermission("system.trusted")) {
                                            Trusted.addEntry(target.getName());
                                        } else {
                                            if(target.hasPermission("system.youtuber")) {
                                                YouTuber.addEntry(target.getName());
                                            } else {
                                                if(target.hasPermission("system.premium")) {
                                                    Premium.addEntry(target.getName());
                                                } else {
                                                    if(target.hasPermission("system.champion")) {
                                                        Champion.addEntry(target.getName());
                                                    } else {
                                                        if(target.hasPermission("system.titan")) {
                                                            Titan.addEntry(target.getName());
                                                        } else {
                                                            if(target.hasPermission("system.legende")) {
                                                                Legende.addEntry(target.getName());
                                                            } else {
                                                                if(target.hasPermission("system.ultra")) {
                                                                    Ultra.addEntry(target.getName());
                                                                } else {
                                                                    if(target.hasPermission("system.hero")) {
                                                                        Hero.addEntry(target.getName());
                                                                    } else {
                                                                        if(target.hasPermission("system.master")) {
                                                                            Master.addEntry(target.getName());
                                                                        } else {
                                                                            if(target.hasPermission("system.elite")) {
                                                                                Elite.addEntry(target.getName());
                                                                            } else {
                                                                                if(target.hasPermission("system.spieler")) {
                                                                                    Spieler.addEntry(target.getName());
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }  
                    }
                }
            }, 10, 10);
        }
        public static Team getTeam(Scoreboard board, String Team) {
            Team team = board.getTeam(Team);
            return team == null ? board.registerNewTeam(Team) : team;
        }
    }

     
     
  13. you need to give everyone the scoreboard that youre making, otherwise nobody will see anything. a player cant have more than one scoreboard at a time
     
  14. So?

    Code (Java):

    public class TablisteUndScoreboard {

        public static void run() {
            Bukkit.getScheduler().scheduleSyncRepeatingTask(main.getMain(), new Runnable() {
                @SuppressWarnings({"deprecation" })
                @Override
                public void run() {
                    for (Player target : Bukkit.getOnlinePlayers()) {
                       
                        //Tabliste                          
                        target.setPlayerListHeader("§9 §l\u2666 §bServer §9§l\u2666 \n \n" + "§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[");
                       
                        target.setPlayerListFooter("§8§m]§7§m====================§8§m[§b \u2666§8 §m]§7§m====================§8§m[§r" + "\n \n"
                                + "§8TPS §7» §r" + PlaceholderAPI.setPlaceholders(target, "%server_tps_1_colored%"
                                        + " §8Ping §7» §9" + PlaceholderAPI.setPlaceholders(target, "%player_ping%")));
                                   
                        //Scoreboard
                        ScoreboardManager manager = Bukkit.getScoreboardManager();
                        Scoreboard board = manager.getNewScoreboard();
                        Objective objective = board.getObjective("aaa");
                        if(objective == null) {
                            objective = board.registerNewObjective("aaa", "bbb");
                        }
                        Team team = board.registerNewTeam("anzeige");
                       
                        objective.setDisplaySlot(DisplaySlot.SIDEBAR);                          
                        objective.setDisplayName("§8» §bServer §8«");
                       
                        Score score = objective.getScore("§b ");
                        score.setScore(10);
                       
                        Score score2 = objective.getScore("§f§l" + PlaceholderAPI.setPlaceholders(target, "%player_name%") + ":");
                        score2.setScore(9);
                       
                        Score score3 = objective.getScore(" §8» " + PlaceholderAPI.setPlaceholders(target, "%vault_rankprefix%"));
                        score3.setScore(8);
                       
                        Score score4 = objective.getScore("§c ");
                        score4.setScore(7);
                       
                        Score score5 = objective.getScore("§f§lMoney:");
                        score5.setScore(6);
                       
                        Score score6 = objective.getScore(" §8» §b" + new Random().nextInt(1000));
                        score6.setScore(5);
                       
                        Score score7 = objective.getScore(" ");
                        score7.setScore(4);
                       
                        Score score8 = objective.getScore("§f§lWichtige Befehle:");
                        score8.setScore(3);
                       
                        Score score9 = objective.getScore(" §8» §b/Menü");
                        score9.setScore(2);
                       
                        Score score10 = objective.getScore("Dings 8");
                        score10.setScore(1);  
                       
                        target.setScoreboard(board);
                       
                        //Tablist Sortierung
                       
                        Team Owner = getTeam(board, "000");
                        Team SrModerator = getTeam(board, "010");
                        Team Moderator = getTeam(board, "020");
                        Team Supporter = getTeam(board, "030");
                        Team Trusted = getTeam(board, "040");
                        Team YouTuber = getTeam(board, "050");
                        Team Premium = getTeam(board, "060");
                        Team Champion = getTeam(board, "070");
                        Team Titan = getTeam(board, "080");
                        Team Legende = getTeam(board, "090");
                        Team Ultra = getTeam(board, "100");
                        Team Hero = getTeam(board, "110");
                        Team Master = getTeam(board, "120");
                        Team Elite = getTeam(board, "130");
                        Team Spieler = getTeam(board, "140");
                       
                        if(target.hasPermission("system.owner")) {                              
                            Owner.addEntry(target.getName());
                        } else {
                            if(target.hasPermission("system.srmoderator")) {
                                SrModerator.addEntry(target.getName());
                            } else {
                                if(target.hasPermission("system.moderator")) {
                                    Moderator.addEntry(target.getName());
                                } else {
                                    if(target.hasPermission("system.supporter")) {
                                        Supporter.addEntry(target.getName());
                                    } else {
                                        if(target.hasPermission("system.trusted")) {
                                            Trusted.addEntry(target.getName());
                                        } else {
                                            if(target.hasPermission("system.youtuber")) {
                                                YouTuber.addEntry(target.getName());
                                            } else {
                                                if(target.hasPermission("system.premium")) {
                                                    Premium.addEntry(target.getName());
                                                } else {
                                                    if(target.hasPermission("system.champion")) {
                                                        Champion.addEntry(target.getName());
                                                    } else {
                                                        if(target.hasPermission("system.titan")) {
                                                            Titan.addEntry(target.getName());
                                                        } else {
                                                            if(target.hasPermission("system.legende")) {
                                                                Legende.addEntry(target.getName());
                                                            } else {
                                                                if(target.hasPermission("system.ultra")) {
                                                                    Ultra.addEntry(target.getName());
                                                                } else {
                                                                    if(target.hasPermission("system.hero")) {
                                                                        Hero.addEntry(target.getName());
                                                                    } else {
                                                                        if(target.hasPermission("system.master")) {
                                                                            Master.addEntry(target.getName());
                                                                        } else {
                                                                            if(target.hasPermission("system.elite")) {
                                                                                Elite.addEntry(target.getName());
                                                                            } else {
                                                                                if(target.hasPermission("system.spieler")) {
                                                                                    Spieler.addEntry(target.getName());
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        team.addEntry(target.getName());
                    }
                }
            }, 10, 10);
        }
        public static Team getTeam(Scoreboard board, String Team) {
            Team team = board.getTeam(Team);
            return team == null ? board.registerNewTeam(Team) : team;
        }
    }

     
     
  15. youre giving each of them their own board. they cant see the data from others boards if they all have their own. you need to create 1 board for every person