Fix new players added to admin logs always defaulting to selected (#19104)

This commit is contained in:
DrSmugleaf
2023-08-13 18:53:48 -07:00
committed by GitHub
parent d4e7f443e3
commit 9094695a58

View File

@@ -420,14 +420,18 @@ public sealed partial class AdminLogsControl : Control
public void SetPlayers(Dictionary<Guid, string> players)
{
var buttons = new SortedSet<AdminLogPlayerButton>(_adminLogPlayerButtonComparer);
var allSelected = true;
foreach (var control in PlayersContainer.Children.ToArray())
{
if (control is not AdminLogPlayerButton player ||
!players.Remove(player.Id))
{
if (control is not AdminLogPlayerButton player)
continue;
if (!SelectedPlayers.Contains(player.Id))
allSelected = false;
if (!players.Remove(player.Id))
continue;
}
buttons.Add(player);
}
@@ -437,10 +441,12 @@ public sealed partial class AdminLogsControl : Control
var button = new AdminLogPlayerButton(id)
{
Text = name,
Pressed = true
Pressed = allSelected
};
SelectedPlayers.Add(id);
if (allSelected)
SelectedPlayers.Add(id);
button.OnPressed += PlayerButtonPressed;
buttons.Add(button);