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; } }
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; }
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
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
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.
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; } }
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
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; } }
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