zTrouble Posted August 24, 2019 Posted August 24, 2019 Moin Moin, Ich arbeite momentan an einem Scoreboard Plugin bei dem die Coins angezeigt werden sollen, das ganze funktioniert auch jedoch möchte ich das es sich etwa jede Sekunde updatet, also das wenn man jetzt einem Spieler Geld gibt es sofort im Scoreboard angezeigt wird, mein Problem ist jetzt, das es einfach nicht klappen will. Zunächst habe ich es versucht selber zu machen jedoch hat das nicht funktioniert, auch wenn ich es nicht gerne mache habe ich ein Tutorial nach programmiert und es ging auch nicht. Ich habe auch versucht das ganze mal mit Leveln zu machen - ebenfalls gescheitert. Ich kann nicht ganz nachvollziehen was da nicht klappt, es gibt keine Errors und die Debug Nachricht funktioniert auch problemlos, ich habe übrigens auch 2 weitere Tutorials nach programmiert, auch wenn ich sowas nicht mag. Ich hoffe mir kann jemand helfen das Problem zu lösen: public class Scoreboards extends JavaPlugin implements Listener { Map<Scoreboard, Player> scoreboards = new HashMap<>(); @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); updater(); } @Override public void onDisable() { } @EventHandler public void handleJoin(final PlayerJoinEvent event) { final Player player = event.getPlayer(); Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard(); Objective o = scoreboard.registerNewObjective("aaa", "dummy"); for(Player players : Bukkit.getOnlinePlayers()) setScoreboard(players); Team adminPrefix = scoreboard.registerNewTeam("1-Admin"); adminPrefix.setPrefix("§4"); Bukkit.getOnlinePlayers().forEach(players -> { if(players.isOp()) adminPrefix.addEntry(players.getName()); }); String Player = player.getName(); CoinPlayer player1 = CoinSystem.getInstance().getPlayerManager().getPlayer(Player); Team playercoins = scoreboard.registerNewTeam("PCoins"); playercoins.setPrefix("§f" + player.getLevel()); playercoins.addEntry("§6§l ".toString()); o.setDisplaySlot(DisplaySlot.SIDEBAR); o.setDisplayName("§8« §6§lInto§f§lbuild §8»"); o.getScore("§a§l ").setScore(13); o.getScore("§e§lMünzen").setScore(12); o.getScore("§f" + player.getLevel()).setScore(11); scoreboards.put(scoreboard, player); player.setScoreboard(scoreboard); } private void setScoreboard(Player players) { } public void updater() { new BukkitRunnable() { @Override public void run() { for(Scoreboard scoreboard : scoreboards.keySet()) { Player player = scoreboards.get(scoreboard); String Player = player.getName(); CoinPlayer player1 = CoinSystem.getInstance().getPlayerManager().getPlayer(Player); scoreboard.getTeam("PCoins").setPrefix("§f" + player.getLevel()); } } }.runTaskTimerAsynchronously(this, 0L, 10L); } } Das ist mein erster Beitrag in einem Forum, falls ich also Infos vergessen habe, schreibt es einfach :c
Matzuake Posted November 9, 2019 Posted November 9, 2019 Ich habe das in etwa so gelöst o.getScore("§6» §f§lSilberlinge").setScore(7); o.getScore(updateTeam(sb, "Money", "§e" + coinsFormat.format(coins), "", ChatColor.RED)).setScore(6); public static String updateTeam(Scoreboard sb, String Team, String prefix, String suffix, ChatColor entery) { Team team = sb.getTeam(Team); if (team == null) { team = sb.registerNewTeam(Team); } team.setPrefix(prefix); team.setSuffix(suffix); team.addEntry(entery.toString()); return entery.toString(); } public static void updateteam() { String pattern = "#,###,###"; DecimalFormat coinsFormat = new DecimalFormat(pattern); for (Player p : Bukkit.getOnlinePlayers()) { String uuid = p.getUniqueId().toString(); int coins = LetsPlayMCSilberlinge.getCoins(p.getPlayer().getUniqueId().toString()); Scoreboard sb = p.getScoreboard(); Objective o = sb.getObjective("stats"); o.getScore(updateTeam(sb, "Money", "§e" + coinsFormat.format(coins), "", ChatColor.RED)).setScore(6); } }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now