Mr_Redstone19
Schafhirte
Hallo.
Ich programmier gerade ein Scoreboard für mein KnockFFA-System.
Ich lasse über das Scoreboard farbige Spielernamen und ein Scoreboard laufen. In dem Scoreboard wird dann aus der MySQL ausgelesen, wie viele Tode der Spieler hat. Diese werden bei einem DeathListener gesetzt. Wenn der Spieler einen Tod dazu bekommt, dann wird ihm kurz danach das Scoreboard gesetzt. Wenn im Scoreboard z.B. schon Tode : 1 steht, dann sieht der Todesabschnitt danach so aus:
Tode : 1
Tode : 2
Das System fügt also immer eine Zeile hinzu, anstatt sie zu updaten. Hier der Code dazu:
Woran liegt das?
Und ich habe eine weitere Frage.
Gibt es noch eine andere Möglichkeit Scoreboards zu erstellen? Weil bei dieser methode ist mir aufgefallen, dass sie immer flackern beim Updaten... jedenfalls wenn ich sie mache.
Vielen Dank,
Mr_Redstone_19
Ich programmier gerade ein Scoreboard für mein KnockFFA-System.
Ich lasse über das Scoreboard farbige Spielernamen und ein Scoreboard laufen. In dem Scoreboard wird dann aus der MySQL ausgelesen, wie viele Tode der Spieler hat. Diese werden bei einem DeathListener gesetzt. Wenn der Spieler einen Tod dazu bekommt, dann wird ihm kurz danach das Scoreboard gesetzt. Wenn im Scoreboard z.B. schon Tode : 1 steht, dann sieht der Todesabschnitt danach so aus:
Tode : 1
Tode : 2
Das System fügt also immer eine Zeile hinzu, anstatt sie zu updaten. Hier der Code dazu:
Java:
package me.madebyproxxy.spigot.knockffa.utils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import me.madebyproxxy.spigot.coinsystem.util.SQLStats;
public class NameTags {
static Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
public static void setNameTag(Player p, String prefix) {
Team random = scoreboard.getTeam(prefix);
if(random == null) {
random = scoreboard.registerNewTeam(prefix);
}
random.setPrefix(prefix);
random.addPlayer(p);
for(Player all : Bukkit.getOnlinePlayers()) {
all.setScoreboard(scoreboard);
}
}
public static void setScoreboard(Player p) {
final Objective obj = scoreboard.getObjective("test") != null ? scoreboard.getObjective("test") : scoreboard.registerNewObjective("test", "dummy");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("§b§lKnockFFA");
obj.getScore("§a").setScore(10);
obj.getScore("§7Coins:").setScore(9);
obj.getScore(" §e» " + SQLStats.getCoins(p.getUniqueId().toString())).setScore(8);
obj.getScore("§b").setScore(7);
obj.getScore("§7Kills:").setScore(6);
obj.getScore(" §e» " + me.madebyproxxy.spigot.knockffa.utils.SQLStats.getKills(p.getUniqueId().toString())).setScore(5);
obj.getScore("§c").setScore(4);
obj.getScore("§7Deaths:").setScore(3);
obj.getScore(" §e» " + me.madebyproxxy.spigot.knockffa.utils.SQLStats.getDeaths(p.getUniqueId().toString())).setScore(2);
}
public static void updateScoreboard(Player p){
Objective obj = p.getScoreboard().getObjective("test") != null ? p.getScoreboard().getObjective("test") : p.getScoreboard().registerNewObjective("test", "dummy");
}
}
Woran liegt das?
Und ich habe eine weitere Frage.
Gibt es noch eine andere Möglichkeit Scoreboards zu erstellen? Weil bei dieser methode ist mir aufgefallen, dass sie immer flackern beim Updaten... jedenfalls wenn ich sie mache.
Vielen Dank,
Mr_Redstone_19