ouusdnvonsv
ouusdnvonsv

Reputation: 1

bukkit scoreboard with teams is not displaying for other players

this is the code that executes whenever a player joins the server:

Team nametag = s.registerNewTeam("nametag");
nametag.setPrefix("§d");
nametag.addEntry(player.getName());

this code is supposed to make every player in the playerlist's name to pink, and their in-game nametags to pink. however, the pink names only display to the individual player, & not everyone else online.

Upvotes: 0

Views: 599

Answers (1)

Linny
Linny

Reputation: 1

It looks like you're making a new team for each player. Try having one instance of the nametag and removing/adding to it on player join/leave. Remember to send it to each player each time the nametag updates.

Edit:

private final Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
private Team nameTag;

public void setScoreboard(Player player) {
    if (nameTag == null) {
        nameTag = board.registerNewTeam("nametag");
    }

    nameTag.setPrefix("§d");
    if (player.isOnline()) {
        nameTag.addEntry(player.getName());
    } else {
        nameTag.removeEntry(player.getName());
    }

    for (Player p : Bukkit.getOnlinePlayers()) {
        p.setScoreboard(board);
    }
}

Upvotes: 0

Related Questions