Add stealthmins (#26263)

* Add stealthmin command.

* Update Content.Server/Administration/Commands/AdminWhoCommand.cs

As suggested by CE.

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Add admin notifications for admins toggling stealthmin.

* Localize stealthmin command

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
This commit is contained in:
nikthechampiongr
2024-03-24 17:39:53 +02:00
committed by GitHub
parent 3731cc3c50
commit dca0c6694b
11 changed files with 197 additions and 10 deletions

View File

@@ -125,9 +125,23 @@ namespace Content.Server.Chat.Managers
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server message to {player:Player}: {message}");
}
public void SendAdminAnnouncement(string message)
public void SendAdminAnnouncement(string message, AdminFlags? flagBlacklist, AdminFlags? flagWhitelist)
{
var clients = _adminManager.ActiveAdmins.Select(p => p.Channel);
var clients = _adminManager.ActiveAdmins.Where(p =>
{
var adminData = _adminManager.GetAdminData(p);
DebugTools.AssertNotNull(adminData);
if (adminData == null)
return false;
if (flagBlacklist != null && adminData.HasFlag(flagBlacklist.Value))
return false;
return flagWhitelist == null || adminData.HasFlag(flagWhitelist.Value);
}).Select(p => p.Channel);
var wrappedMessage = Loc.GetString("chat-manager-send-admin-announcement-wrap-message",
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), ("message", FormattedMessage.EscapeText(message)));