Fix wrong team names being sent in packets to joining players

This commit is contained in:
William 2023-02-26 20:34:21 +00:00
parent 6cea56364e
commit 10e02233f3
No known key found for this signature in database
2 changed files with 5 additions and 5 deletions

View File

@ -27,11 +27,11 @@ public class ScoreboardManager {
roleMappings.remove(player.getUniqueId());
}
public void sendTeamPackets(@NotNull Player player, @NotNull Map<Player, String> playerRoles) {
public void setRoles(@NotNull Player player, @NotNull Map<String, String> playerRoles) {
playerRoles.entrySet().stream()
.collect(Collectors.groupingBy(
Map.Entry::getValue,
Collectors.mapping(entry -> entry.getKey().getUsername(), Collectors.toList())
Collectors.mapping(Map.Entry::getKey, Collectors.toList())
))
.forEach((role, players) -> updateRoles(player, role, players.toArray(new String[0])));
}

View File

@ -56,9 +56,9 @@ public class PlayerTabList {
plugin.getServer().getScheduler()
.buildTask(plugin, () -> {
final TabList tabList = joined.getTabList();
final Map<Player, String> playerRoles = new HashMap<>();
final Map<String, String> playerRoles = new HashMap<>();
players.forEach(player -> {
playerRoles.put(player.getPlayer(), tabPlayer.getTeamName());
playerRoles.put(player.getPlayer().getUsername(), player.getTeamName());
tabList.getEntries().stream()
.filter(e -> e.getProfile().getId().equals(player.getPlayer().getUniqueId())).findFirst()
.ifPresentOrElse(
@ -68,7 +68,7 @@ public class PlayerTabList {
addPlayerToTabList(player, tabPlayer);
player.sendHeaderAndFooter(this);
});
plugin.getScoreboardManager().sendTeamPackets(joined, playerRoles);
plugin.getScoreboardManager().setRoles(joined, playerRoles);
})
.delay(500, TimeUnit.MILLISECONDS)
.schedule();