PlayerJoinEvent 的记分牌问题

问题描述 投票:0回答:0

我在使用 PlayerJoinEvent 时使用记分牌更改玩家头顶上的昵称时遇到问题。最初我认为我的代码花费了很多时间并且事件结束了它的生命周期,但是简化它在记分牌上留下了同样的问题,尽管 setDisplayName 工作正常。在 PlayerDeathEvent 记分牌上使用相同的结构效果很好。 问题是如何在不使用第三方api的情况下,在服务器入口处更改玩家头顶的昵称。

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    String playerEventName = event.getPlayer().getDisplayName();
    Player player = Bukkit.getPlayer(playerEventName);
    String playerName = player.getDisplayName();

    Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();


    Team team = scoreboard.registerNewTeam("user");
    player.setDisplayName("[USER] " + playerName);
    player.setPlayerListName("[USER] " + playerName);
    team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.ALWAYS);
    team.addEntry(playerName);
    team.setPrefix("[USER]");
    player.setScoreboard(scoreboard);
    player.sendMessage("Welcome back " + playerName + "!");
}
java minecraft bukkit spigot
© www.soinside.com 2019 - 2024. All rights reserved.