Hallo, gibt mehrere Möglichkeiten das ganze zu updaten.
Aber erstmal zu den kleinen Problemen:
- Fett: Farbcodes müssen IMMER vor Text-Edit-Codes stehen. Wenn du zuvor §l sagst und danach die Farbe änderst, wird §l überschrieben. Mach es also §3§l und nicht §l§3.
- Leerzeile: Gleiche Zeilen werden gelöscht. Daher bietet es sich an immer einen anderen Farbcode ohne Text in den String zu schreiben, dann ist die Zeile nicht mehr gleich, wird aber leer angezeigt.
Zu dem eigentlichen Problem/Frage:
Es gibt mehrere Möglichkeiten. Für deine Methode, die du verwendest, gibt es aber glaube ich nur eine: Das Scoreboard immer wieder neu setzten. Nachteil: Es flackert.
Am besten wäre es, wenn du alle Zeilen, die geupdatet werden sollen, ein sogenanntes Team erstellst. Dort einfach den Prefix und/oder Suffix setzen und dann in einer updateScoreboard-Methode erneut setzen.
Dass die updateScoreboard-Methode etwa so aussieht:
public static void updateScoreBoard(Player player) throws SQLException{
Scoreboard board = player.getScoreboard();
board.getTeam("coins").setPrefix("§7» §6" + SQLStats.getCoins(player.getUniqueId().toString()));
}
Hab das mal aus meinem System genommen für das Team "coins". Hier noch der Aufbau eines Teams:
Team coins = board.registerNewTeam("coins");
coins.addEntry(ChatColor.BLACK + "" + ChatColor.WHITE);
coins.setPrefix("§7» §6" + SQLStats.getCoins(player.getUniqueId().toString()));
obj.getScore(ChatColor.BLACK + "" + ChatColor.WHITE).setScore(12);
Wenn du noch Fragen hast, kannst du sie mir gerne schreiben,
LG