Jump to content

Scoreboard mit updater


Empfohlene Beiträge

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 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

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);
        }
    }

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B