Sn0wBlizz4rd
Braumeister
Hey, ich code grade ein Scoreboard plugin.
Jedoch habe ich ein Problem; Es funktioniert zwar alles,
und der Score etc. wird rechts angezeigt, aber ich versuche
nun die Werte rechts zu updaten. Mein Code ist folgender:
Wenn ich einfach versuche, die Packets neu zu senden, erhalte ich eine NullPointerException.
Deswegen bitte ich um eure Hilfe.
PS: Mir ist aufgefallen, wenn man vom Server geht, wird das Scoreboard von diesem
Spieler entfernt, also wäre es warscheinlich die beste Lösung dies ausnutzen(Scoreboard
löschen, dann neu erstellen) - nur wie das geht, weiß ich nicht so recht.
Danke im Voraus, Cubos.
Jedoch habe ich ein Problem; Es funktioniert zwar alles,
und der Score etc. wird rechts angezeigt, aber ich versuche
nun die Werte rechts zu updaten. Mein Code ist folgender:
Code:
public void showScoreboard(final Player player) {
getServer().getScheduler().runTask(this, new Runnable() {
@Override
public void run() {
int k = getConfig().getInt(player.getName() + ".Kills");
int d = getConfig().getInt(player.getName() + ".Deaths");
String name = "§c§lScore";
Scoreboard sb = new Scoreboard();
sb.registerObjective(name, new ScoreboardBaseCriteria(name));
Packet206SetScoreboardObjective packet = new Packet206SetScoreboardObjective(sb.getObjective(name), 0);
Packet208SetScoreboardDisplayObjective display = new Packet208SetScoreboardDisplayObjective(1, sb.getObjective(name));
sendPacket(player, packet);
sendPacket(player, display);
ScoreboardScore scoreItem1 = sb.getPlayerScoreForObjective("§7Kills§r", sb.getObjective(name));
ScoreboardScore scoreItem2 = sb.getPlayerScoreForObjective("§7Deaths§r", sb.getObjective(name));
scoreItem1.setScore(k);
scoreItem2.setScore(d);
Packet207SetScoreboardScore pScoreItem1 = new Packet207SetScoreboardScore(scoreItem1, 0);
Packet207SetScoreboardScore pScoreItem2 = new Packet207SetScoreboardScore(scoreItem2, 0);
sendPacket(player, pScoreItem1);
sendPacket(player, pScoreItem2);
}
});
}
public static void sendPacket(Player player, Packet packet) {
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
}
Wenn ich einfach versuche, die Packets neu zu senden, erhalte ich eine NullPointerException.
Deswegen bitte ich um eure Hilfe.
PS: Mir ist aufgefallen, wenn man vom Server geht, wird das Scoreboard von diesem
Spieler entfernt, also wäre es warscheinlich die beste Lösung dies ausnutzen(Scoreboard
löschen, dann neu erstellen) - nur wie das geht, weiß ich nicht so recht.
Danke im Voraus, Cubos.