Hey Leute.
Ich arbeite derzeit an einem kleinem Minigame.
Es funktioniert soweit super und nähert sich der Fertigstellung.
Nur habe ich noch ein paar Probleme beim Updaten des Scoreboards.
Hier erstmal der Code (bitte nicht an dem Sinn sowie der Strukturierung des Codes zweifeln
)
Mein Problem ist dann, wenn ich das Scoreboard updaten möchte, dass dann das: http://prnt.sc/dlf6yn passiert.
Jetzt bitte ich Euch um Ratschlag.
Wie kann ich dieses Problem lösen?
Danke im Voraus!
LG.
Ich arbeite derzeit an einem kleinem Minigame.
Es funktioniert soweit super und nähert sich der Fertigstellung.
Nur habe ich noch ein paar Probleme beim Updaten des Scoreboards.
Hier erstmal der Code (bitte nicht an dem Sinn sowie der Strukturierung des Codes zweifeln
Code:
package net.gamemanager.util;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Scoreboard;
import net.gamemanager.main.Game;
public class ScoreboardManager implements Listener {
public static Scoreboard sb;
@EventHandler
public void onJoin(PlayerJoinEvent e) {
File file = new File("plugins/Game", "mapinformation.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
Bukkit.getScheduler().scheduleSyncDelayedTask(Game.getInstance(), new Runnable() {
@Override
public void run() {
setPrefix(e.getPlayer());
}
}, 4);
e.getPlayer().setScoreboard(sb);
Objective obj = ScoreboardManager.sb.registerNewObjective("aaa", "bbv");
obj.setDisplayName(" §8» §f§lSERVER.NET ");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.getScore("§a ").setScore(9);
obj.getScore("§a✦ Am Leben").setScore(8);
obj.getScore(" §8» §c" + Game.alive.size()).setScore(7);
obj.getScore("§f ").setScore(6);
obj.getScore("§6✪ §eCoins").setScore(5);
if (Game.playerCoins.get(e.getPlayer()) != null) {
obj.getScore(" §8» §9" + Game.playerCoins.get(e.getPlayer())).setScore(4);
} else {
obj.getScore(" §8» §90").setScore(4);
}
obj.getScore("§c ").setScore(3);
obj.getScore("§3❖ §bMap").setScore(2);
obj.getScore(" §8» §2" + cfg.getString("MapInformation.Mapname")).setScore(1);
obj.getScore("§f ").setScore(0);
}
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player player = e.getEntity();
Bukkit.getScheduler().scheduleSyncDelayedTask(Game.getInstance(), new Runnable() {
@Override
public void run() {
setPrefix(player);
}
}, 10);
}
@SuppressWarnings("deprecation")
private void setPrefix(Player p) {
String team = "";
if (!Game.alive.contains(p)) {
team = "00012Dead";
sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());
for (Player all : Bukkit.getOnlinePlayers()) {
all.setScoreboard(sb);
}
return;
}
if (p.hasPermission("rank.owner")) {
team = "00000Owner";
} else if (p.hasPermission("rank.admin")) {
team = "00001Admin";
} else if (p.hasPermission("rank.hdev")) {
team = "00002HeadDev";
} else if (p.hasPermission("rank.dev")) {
team = "00003Dev";
} else if (p.hasPermission("rank.content")) {
team = "00004Content";
} else if (p.hasPermission("rank.srmod")) {
team = "00005SrMod";
} else if (p.hasPermission("rank.mod")) {
team = "00006Mod";
} else if (p.hasPermission("rank.sup")) {
team = "00007Sup";
} else if (p.hasPermission("rank.builder")) {
team = "00008Builder";
} else if (p.hasPermission("rank.vip")) {
team = "00009VIP";
} else if (p.hasPermission("system.premium")) {
team = "00010Premium";
} else {
team = "00011Spieler";
}
sb.getTeam(team).addPlayer(p);
p.setDisplayName(sb.getTeam(team).getPrefix() + p.getName());
for (Player all : Bukkit.getOnlinePlayers()) {
all.setScoreboard(sb);
}
}
@SuppressWarnings("deprecation")
public static void updateScoreBoard(Player player) {
File file = new File("plugins/Game", "mapinformation.yml");
FileConfiguration cfg = YamlConfiguration.loadConfiguration(file);
player.setScoreboard(sb);
// Objective obj = ScoreboardManager.sb.registerNewObjective("aaa",
// "bbv");
Objective obj = ScoreboardManager.sb.getObjective("aaa");
obj.setDisplayName(" §8» §f§lSERVER.NET ");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.getScore("§a ").setScore(9);
obj.getScore("§a✦ Am Leben").setScore(8);
obj.getScore(" §8» §c" + Game.alive.size()).setScore(7);
obj.getScore("§f ").setScore(6);
obj.getScore("§6✪ §eCoins").setScore(5);
if (Game.playerCoins.get(player) != null) {
obj.getScore(Bukkit.getOfflinePlayer(" §8» §9" + Game.playerCoins.get(player))).setScore(4);
} else {
obj.getScore(" §8» §90").setScore(4);
}
obj.getScore("§c ").setScore(3);
obj.getScore("§3❖ §bMap").setScore(2);
obj.getScore(" §8» §2" + cfg.getString("MapInformation.Mapname")).setScore(1);
obj.getScore("§f ").setScore(0);
return;
}
}
Mein Problem ist dann, wenn ich das Scoreboard updaten möchte, dass dann das: http://prnt.sc/dlf6yn passiert.
Jetzt bitte ich Euch um Ratschlag.
Wie kann ich dieses Problem lösen?
Danke im Voraus!
LG.
Zuletzt bearbeitet: