Player list now lists antagonists. (#3826)
This commit is contained in:
committed by
GitHub
parent
67e7d49806
commit
2fac6b1089
@@ -68,7 +68,7 @@ namespace Content.Client.UserInterface.AdminMenu
|
||||
|
||||
private void HandlePlayerListMessage(AdminMenuPlayerListMessage msg)
|
||||
{
|
||||
_window?.RefreshPlayerList(msg.NamesToPlayers);
|
||||
_window?.RefreshPlayerList(msg.PlayersInfo);
|
||||
}
|
||||
|
||||
public void ResetWindow()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using Content.Client.UserInterface.AdminMenu.Tabs;
|
||||
using Content.Shared.Administration.AdminMenu;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
@@ -49,9 +50,9 @@ namespace Content.Client.UserInterface.AdminMenu
|
||||
_gameHud.AdminButtonDown = false;
|
||||
}
|
||||
|
||||
public void RefreshPlayerList(Dictionary<string, string> namesToPlayers)
|
||||
public void RefreshPlayerList(IEnumerable<AdminMenuPlayerListMessage.PlayerInfo> players)
|
||||
{
|
||||
PlayerTabControl.RefreshPlayerList(namesToPlayers);
|
||||
PlayerTabControl.RefreshPlayerList(players);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#nullable enable
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Content.Shared.Administration.AdminMenu;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Player;
|
||||
@@ -31,7 +32,7 @@ namespace Content.Client.UserInterface.AdminMenu.Tabs
|
||||
OnPlayerListRefresh?.Invoke();
|
||||
}
|
||||
|
||||
public void RefreshPlayerList(Dictionary<string, string> namesToPlayers)
|
||||
public void RefreshPlayerList(IEnumerable<AdminMenuPlayerListMessage.PlayerInfo> players)
|
||||
{
|
||||
PlayerList.RemoveAllChildren();
|
||||
var playerManager = IoCManager.Resolve<IPlayerManager>();
|
||||
@@ -48,16 +49,23 @@ namespace Content.Client.UserInterface.AdminMenu.Tabs
|
||||
{
|
||||
new Label
|
||||
{
|
||||
Text = "Name",
|
||||
Text = "Username",
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true
|
||||
},
|
||||
new VSeparator(),
|
||||
new Label
|
||||
{
|
||||
Text = "Player",
|
||||
Text = "Character",
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true
|
||||
},
|
||||
new VSeparator(),
|
||||
new Label()
|
||||
{
|
||||
Text = "Antagonist",
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true,
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -75,7 +83,7 @@ namespace Content.Client.UserInterface.AdminMenu.Tabs
|
||||
PlayerList.AddChild(new HSeparator());
|
||||
|
||||
var useAltColor = false;
|
||||
foreach (var (name, player) in namesToPlayers)
|
||||
foreach (var player in players)
|
||||
{
|
||||
var hBox = new HBoxContainer
|
||||
{
|
||||
@@ -85,7 +93,7 @@ namespace Content.Client.UserInterface.AdminMenu.Tabs
|
||||
{
|
||||
new Label
|
||||
{
|
||||
Text = name,
|
||||
Text = player.Username,
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true,
|
||||
ClipText = true
|
||||
@@ -93,10 +101,18 @@ namespace Content.Client.UserInterface.AdminMenu.Tabs
|
||||
new VSeparator(),
|
||||
new Label
|
||||
{
|
||||
Text = player,
|
||||
Text = player.CharacterName,
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true,
|
||||
ClipText = true
|
||||
},
|
||||
new VSeparator(),
|
||||
new Label()
|
||||
{
|
||||
Text = player.Antag ? "YES" : "NO",
|
||||
SizeFlagsStretchRatio = 2f,
|
||||
HorizontalExpand = true,
|
||||
ClipText = true,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -245,18 +245,18 @@ namespace Content.Server.Administration
|
||||
}
|
||||
|
||||
var netMsg = _netMgr.CreateNetMessage<AdminMenuPlayerListMessage>();
|
||||
var namesToPlayers = new Dictionary<string, string>();
|
||||
|
||||
netMsg.PlayersInfo.Clear();
|
||||
|
||||
foreach (var session in _playerManager.GetAllPlayers())
|
||||
{
|
||||
var name = session.Name;
|
||||
var player = session.AttachedEntity?.Name ?? "";
|
||||
var username = session.AttachedEntity?.Name ?? "";
|
||||
var antag = session.ContentData()?.Mind?.AllRoles.Any(r => r.Antagonist) ?? false;
|
||||
|
||||
namesToPlayers.Add(name, player);
|
||||
netMsg.PlayersInfo.Add(new AdminMenuPlayerListMessage.PlayerInfo(name, username, antag));
|
||||
}
|
||||
|
||||
netMsg.NamesToPlayers = namesToPlayers;
|
||||
|
||||
_netMgr.ServerSendMessage(netMsg, senderSession.ConnectedClient);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,32 +13,36 @@ namespace Content.Shared.Administration.AdminMenu
|
||||
public AdminMenuPlayerListMessage(INetChannel channel) : base(NAME, GROUP) { }
|
||||
#endregion
|
||||
|
||||
public Dictionary<string, string> NamesToPlayers = default!;
|
||||
public List<PlayerInfo> PlayersInfo = new();
|
||||
|
||||
public override void ReadFromBuffer(NetIncomingMessage buffer)
|
||||
{
|
||||
var pairs = buffer.ReadInt32();
|
||||
var count = buffer.ReadInt32();
|
||||
|
||||
NamesToPlayers = new Dictionary<string, string>();
|
||||
PlayersInfo.Clear();
|
||||
|
||||
for (var i = 0; i < pairs; i++)
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var name = buffer.ReadString();
|
||||
var player = buffer.ReadString();
|
||||
var username = buffer.ReadString();
|
||||
var characterName = buffer.ReadString();
|
||||
var antag = buffer.ReadBoolean();
|
||||
|
||||
NamesToPlayers.Add(name, player);
|
||||
PlayersInfo.Add(new PlayerInfo(username, characterName, antag));
|
||||
}
|
||||
}
|
||||
|
||||
public override void WriteToBuffer(NetOutgoingMessage buffer)
|
||||
{
|
||||
buffer.Write(NamesToPlayers.Count);
|
||||
buffer.Write(PlayersInfo.Count);
|
||||
|
||||
foreach (var (name, player) in NamesToPlayers)
|
||||
foreach (var player in PlayersInfo)
|
||||
{
|
||||
buffer.Write(name);
|
||||
buffer.Write(player);
|
||||
buffer.Write(player.Username);
|
||||
buffer.Write(player.CharacterName);
|
||||
buffer.Write(player.Antag);
|
||||
}
|
||||
}
|
||||
|
||||
public record PlayerInfo(string Username, string CharacterName, bool Antag);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user