From 6f7885164724d09b65dcc60a123884d4992fafe9 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 1 Nov 2020 23:56:35 +0100 Subject: [PATCH] Send messages on admin/deadmin. --- Content.Server/Administration/AdminManager.cs | 11 +++++++--- Content.Server/Chat/ChatManager.cs | 22 ++++++++++++++++--- .../Interfaces/Chat/IChatManager.cs | 1 + 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Content.Server/Administration/AdminManager.cs b/Content.Server/Administration/AdminManager.cs index 1b4862bfe6..119405c289 100644 --- a/Content.Server/Administration/AdminManager.cs +++ b/Content.Server/Administration/AdminManager.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Net; using System.Reflection; using Content.Server.Database; +using Content.Server.Interfaces.Chat; using Content.Server.Players; using Content.Shared; using Content.Shared.Administration; @@ -35,6 +36,7 @@ namespace Content.Server.Administration [Dependency] private readonly IConGroupController _conGroup = default!; [Dependency] private readonly IResourceManager _res = default!; [Dependency] private readonly IConsoleShell _consoleShell = default!; + [Dependency] private readonly IChatManager _chat = default!; private readonly Dictionary _admins = new Dictionary(); @@ -69,12 +71,13 @@ namespace Content.Server.Administration return; } + _chat.SendAdminAnnouncement(Loc.GetString("{0} de-adminned themselves.", session.Name)); + _chat.DispatchServerMessage(session, Loc.GetString("You are now a normal player.")); + var plyData = session.ContentData()!; plyData.ExplicitlyDeadminned = true; reg.Data.Active = false; - // TODO: Send messages to all admins. - UpdateAdminStatus(session); } @@ -85,11 +88,13 @@ namespace Content.Server.Administration throw new ArgumentException($"Player {session} is not an admin"); } + _chat.DispatchServerMessage(session, Loc.GetString("You are now an admin.")); + var plyData = session.ContentData()!; plyData.ExplicitlyDeadminned = true; reg.Data.Active = true; - // TODO: Send messages to all admins. + _chat.SendAdminAnnouncement(Loc.GetString("{0} re-adminned themselves.", session.Name)); UpdateAdminStatus(session); } diff --git a/Content.Server/Chat/ChatManager.cs b/Content.Server/Chat/ChatManager.cs index df2b087372..1d35847a94 100644 --- a/Content.Server/Chat/ChatManager.cs +++ b/Content.Server/Chat/ChatManager.cs @@ -124,7 +124,7 @@ namespace Content.Server.Chat // Capitalize first letter message = message[0].ToString().ToUpper() + - message.Remove(0,1); + message.Remove(0, 1); if (source.TryGetComponent(out InventoryComponent inventory) && inventory.TryGetSlotItem(EquipmentSlotDefines.Slots.EARS, out ItemComponent item) && @@ -141,7 +141,7 @@ namespace Content.Server.Chat { // Capitalize first letter message = message[0].ToString().ToUpper() + - message.Remove(0,1); + message.Remove(0, 1); } var listeners = EntitySystem.Get(); @@ -211,7 +211,10 @@ namespace Content.Server.Chat return; } - var clients = _playerManager.GetPlayersBy(x => x.AttachedEntity != null && x.AttachedEntity.HasComponent()).Select(p => p.ConnectedClient);; + var clients = _playerManager + .GetPlayersBy(x => x.AttachedEntity != null && x.AttachedEntity.HasComponent()) + .Select(p => p.ConnectedClient); + ; var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.Dead; @@ -240,6 +243,19 @@ namespace Content.Server.Chat _netManager.ServerSendToMany(msg, clients.ToList()); } + public void SendAdminAnnouncement(string message) + { + var clients = _adminManager.ActiveAdmins.Select(p => p.ConnectedClient); + + var msg = _netManager.CreateNetMessage(); + + msg.Channel = ChatChannel.AdminChat; + msg.Message = message; + msg.MessageWrap = $"{Loc.GetString("ADMIN")}: {{0}}"; + + _netManager.ServerSendToMany(msg, clients.ToList()); + } + public void SendHookOOC(string sender, string message) { var msg = _netManager.CreateNetMessage(); diff --git a/Content.Server/Interfaces/Chat/IChatManager.cs b/Content.Server/Interfaces/Chat/IChatManager.cs index 9faee496eb..5dfcdbc458 100644 --- a/Content.Server/Interfaces/Chat/IChatManager.cs +++ b/Content.Server/Interfaces/Chat/IChatManager.cs @@ -31,5 +31,6 @@ namespace Content.Server.Interfaces.Chat delegate string TransformChat(IEntity speaker, string message); void RegisterChatTransform(TransformChat handler); + void SendAdminAnnouncement(string message); } }