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()); 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() playerRoles.entrySet().stream()
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(
Map.Entry::getValue, 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]))); .forEach((role, players) -> updateRoles(player, role, players.toArray(new String[0])));
} }

View File

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