Fix the admin panel only listing your character name (#3229)

This commit is contained in:
DrSmugleaf
2021-02-16 09:11:15 +01:00
committed by GitHub
parent ae5f971fc3
commit cf7ac025b4
5 changed files with 127 additions and 34 deletions

View File

@@ -10,6 +10,7 @@ using Content.Server.Interfaces.Chat;
using Content.Server.Players;
using Content.Shared;
using Content.Shared.Administration;
using Content.Shared.Administration.AdminMenu;
using Content.Shared.Network.NetMessages;
using Robust.Server.Console;
using Robust.Server.Player;
@@ -167,6 +168,8 @@ namespace Content.Server.Administration
public void Initialize()
{
_netMgr.RegisterNetMessage<MsgUpdateAdminStatus>(MsgUpdateAdminStatus.NAME);
_netMgr.RegisterNetMessage<AdminMenuPlayerListRequest>(AdminMenuPlayerListRequest.NAME, HandlePlayerListRequest);
_netMgr.RegisterNetMessage<AdminMenuPlayerListMessage>(AdminMenuPlayerListMessage.NAME);
// Cache permissions for loaded console commands with the requisite attributes.
foreach (var (cmdName, cmd) in _consoleHost.RegisteredCommands)
@@ -227,6 +230,31 @@ namespace Content.Server.Administration
}
}
private void HandlePlayerListRequest(AdminMenuPlayerListRequest message)
{
var senderSession = _playerManager.GetSessionByChannel(message.MsgChannel);
if (!_admins.ContainsKey(senderSession))
{
return;
}
var netMsg = _netMgr.CreateNetMessage<AdminMenuPlayerListMessage>();
var namesToPlayers = new Dictionary<string, string>();
foreach (var session in _playerManager.GetAllPlayers())
{
var name = session.Name;
var player = session.AttachedEntity?.Name ?? "";
namesToPlayers.Add(name, player);
}
netMsg.NamesToPlayers = namesToPlayers;
_netMgr.ServerSendMessage(netMsg, senderSession.ConnectedClient);
}
public void PromoteHost(IPlayerSession player)
{
_promotedPlayers.Add(player.UserId);