Add job column to PlayerTab (#6181)

This commit is contained in:
ShadowCommander
2022-01-15 05:17:33 -08:00
committed by GitHub
parent d1a033644b
commit a3c1d8f22a
5 changed files with 20 additions and 6 deletions

View File

@@ -51,6 +51,7 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
PlayerList.AddChild(new PlayerTabEntry("Username", PlayerList.AddChild(new PlayerTabEntry("Username",
"Character", "Character",
"Job",
"Antagonist", "Antagonist",
new StyleBoxFlat(altColor), new StyleBoxFlat(altColor),
true)); true));
@@ -61,6 +62,7 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
{ {
var entry = new PlayerTabEntry(player.Username, var entry = new PlayerTabEntry(player.Username,
player.CharacterName, player.CharacterName,
player.StartingJob,
player.Antag ? "YES" : "NO", player.Antag ? "YES" : "NO",
new StyleBoxFlat(useAltColor ? altColor : defaultColor), new StyleBoxFlat(useAltColor ? altColor : defaultColor),
player.Connected); player.Connected);

View File

@@ -6,12 +6,17 @@
HorizontalExpand="True" HorizontalExpand="True"
SeparationOverride="4"> SeparationOverride="4">
<Label Name="UsernameLabel" <Label Name="UsernameLabel"
SizeFlagsStretchRatio="2" SizeFlagsStretchRatio="3"
HorizontalExpand="True" HorizontalExpand="True"
ClipText="True"/> ClipText="True"/>
<customControls:VSeparator/> <customControls:VSeparator/>
<Label Name="CharacterLabel" <Label Name="CharacterLabel"
SizeFlagsStretchRatio="2" SizeFlagsStretchRatio="3"
HorizontalExpand="True"
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="JobLabel"
SizeFlagsStretchRatio="3"
HorizontalExpand="True" HorizontalExpand="True"
ClipText="True"/> ClipText="True"/>
<customControls:VSeparator/> <customControls:VSeparator/>

View File

@@ -11,13 +11,14 @@ public partial class PlayerTabEntry : ContainerButton
{ {
public EntityUid? PlayerUid; public EntityUid? PlayerUid;
public PlayerTabEntry(string username, string character, string antagonist, StyleBox styleBox, bool connected) public PlayerTabEntry(string username, string character, string job, string antagonist, StyleBox styleBox, bool connected)
{ {
RobustXamlLoader.Load(this); RobustXamlLoader.Load(this);
UsernameLabel.Text = username; UsernameLabel.Text = username;
if (!connected) if (!connected)
UsernameLabel.StyleClasses.Add("Disabled"); UsernameLabel.StyleClasses.Add("Disabled");
JobLabel.Text = job;
CharacterLabel.Text = character; CharacterLabel.Text = character;
AntagonistLabel.Text = antagonist; AntagonistLabel.Text = antagonist;
BackgroundColorPanel.PanelOverride = styleBox; BackgroundColorPanel.PanelOverride = styleBox;

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq; using System.Linq;
using Content.Server.Administration.Managers; using Content.Server.Administration.Managers;
using Content.Server.Players; using Content.Server.Players;
@@ -112,11 +113,16 @@ namespace Content.Server.Administration
if (session.AttachedEntity != null) if (session.AttachedEntity != null)
username = EntityManager.GetComponent<MetaDataComponent>(session.AttachedEntity.Value).EntityName; username = EntityManager.GetComponent<MetaDataComponent>(session.AttachedEntity.Value).EntityName;
var antag = session.ContentData()?.Mind?.AllRoles.Any(r => r.Antagonist) ?? false; var mind = session.ContentData()?.Mind;
var job = mind?.AllRoles.FirstOrDefault(role => role is Job);
var startingRole = job != null ? CultureInfo.CurrentCulture.TextInfo.ToTitleCase(job.Name) : string.Empty;
var antag = mind?.AllRoles.Any(r => r.Antagonist) ?? false;
var connected = session.Status is SessionStatus.Connected or SessionStatus.InGame; var connected = session.Status is SessionStatus.Connected or SessionStatus.InGame;
return new PlayerInfo(name, username, antag, session.AttachedEntity.GetValueOrDefault(), session.UserId, return new PlayerInfo(name, username, startingRole, antag, session.AttachedEntity.GetValueOrDefault(), session.UserId,
connected); connected);
} }
} }

View File

@@ -6,5 +6,5 @@ using Robust.Shared.Serialization;
namespace Content.Shared.Administration namespace Content.Shared.Administration
{ {
[Serializable, NetSerializable] [Serializable, NetSerializable]
public record PlayerInfo(string Username, string CharacterName, bool Antag, EntityUid EntityUid, NetUserId SessionId, bool Connected); public record PlayerInfo(string Username, string CharacterName, string StartingJob, bool Antag, EntityUid EntityUid, NetUserId SessionId, bool Connected);
} }