forked from Upstream/Velocitab
Fix wrong team names being sent in packets to joining players
This commit is contained in:
parent
6cea56364e
commit
10e02233f3
@ -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])));
|
||||
}
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user