Revert "Add stealthmins (#26263)"
This reverts commit dca0c6694b.
# Conflicts:
# Content.Server/Administration/Commands/AdminWhoCommand.cs
# Content.Server/Administration/Managers/AdminManager.cs
# Content.Server/Chat/Managers/IChatManager.cs
This commit is contained in:
@@ -1,39 +0,0 @@
|
|||||||
using Content.Server.Administration.Managers;
|
|
||||||
using Content.Shared.Administration;
|
|
||||||
using JetBrains.Annotations;
|
|
||||||
using Robust.Shared.Console;
|
|
||||||
using Robust.Shared.Utility;
|
|
||||||
|
|
||||||
namespace Content.Server.Administration.Commands;
|
|
||||||
|
|
||||||
[UsedImplicitly]
|
|
||||||
[AdminCommand(AdminFlags.Stealth)]
|
|
||||||
public sealed class StealthminCommand : LocalizedCommands
|
|
||||||
{
|
|
||||||
public override string Command => "stealthmin";
|
|
||||||
|
|
||||||
public override void Execute(IConsoleShell shell, string argStr, string[] args)
|
|
||||||
{
|
|
||||||
var player = shell.Player;
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
shell.WriteLine(Loc.GetString("cmd-stealthmin-no-console"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var mgr = IoCManager.Resolve<IAdminManager>();
|
|
||||||
|
|
||||||
var adminData = mgr.GetAdminData(player);
|
|
||||||
|
|
||||||
DebugTools.AssertNotNull(adminData);
|
|
||||||
|
|
||||||
if (!adminData!.Stealth)
|
|
||||||
{
|
|
||||||
mgr.Stealth(player);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mgr.UnStealth(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,6 @@ using System.Reflection;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Content.Server.Chat.Managers;
|
using Content.Server.Chat.Managers;
|
||||||
using Content.Server.Database;
|
using Content.Server.Database;
|
||||||
using Content.Server.Players;
|
|
||||||
using Content.Shared.Administration;
|
using Content.Shared.Administration;
|
||||||
using Content.Shared.CCVar;
|
using Content.Shared.CCVar;
|
||||||
using Content.Shared.Players;
|
using Content.Shared.Players;
|
||||||
@@ -98,44 +97,6 @@ namespace Content.Server.Administration.Managers
|
|||||||
UpdateAdminStatus(session);
|
UpdateAdminStatus(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stealth(ICommonSession session)
|
|
||||||
{
|
|
||||||
if (!_admins.TryGetValue(session, out var reg))
|
|
||||||
{
|
|
||||||
throw new ArgumentException($"Player {session} is not an admin");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reg.Data.Stealth)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var playerData = session.ContentData()!;
|
|
||||||
playerData.Stealthed = true;
|
|
||||||
reg.Data.Stealth = true;
|
|
||||||
|
|
||||||
_chat.DispatchServerMessage(session, Loc.GetString("admin-manager-stealthed-message"));
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-self-de-admin-message", ("exAdminName", session.Name)), AdminFlags.Stealth);
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-self-enable-stealth", ("stealthAdminName", session.Name)), flagWhitelist: AdminFlags.Stealth);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UnStealth(ICommonSession session)
|
|
||||||
{
|
|
||||||
if (!_admins.TryGetValue(session, out var reg))
|
|
||||||
{
|
|
||||||
throw new ArgumentException($"Player {session} is not an admin");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reg.Data.Stealth)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var playerData = session.ContentData()!;
|
|
||||||
playerData.Stealthed = false;
|
|
||||||
reg.Data.Stealth = false;
|
|
||||||
|
|
||||||
_chat.DispatchServerMessage(session, Loc.GetString("admin-manager-unstealthed-message"));
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-self-re-admin-message", ("newAdminName", session.Name)), flagBlacklist: AdminFlags.Stealth);
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-self-disable-stealth", ("exStealthAdminName", session.Name)), flagWhitelist: AdminFlags.Stealth);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ReAdmin(ICommonSession session)
|
public void ReAdmin(ICommonSession session)
|
||||||
{
|
{
|
||||||
if (!_admins.TryGetValue(session, out var reg))
|
if (!_admins.TryGetValue(session, out var reg))
|
||||||
@@ -215,11 +176,6 @@ namespace Content.Server.Administration.Managers
|
|||||||
|
|
||||||
_chat.DispatchServerMessage(player, Loc.GetString("admin-manager-admin-permissions-updated-message"));
|
_chat.DispatchServerMessage(player, Loc.GetString("admin-manager-admin-permissions-updated-message"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.ContentData()!.Stealthed)
|
|
||||||
{
|
|
||||||
aData.Stealth = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SendPermsChangedEvent(player);
|
SendPermsChangedEvent(player);
|
||||||
@@ -342,19 +298,9 @@ namespace Content.Server.Administration.Managers
|
|||||||
}
|
}
|
||||||
else if (e.NewStatus == SessionStatus.Disconnected)
|
else if (e.NewStatus == SessionStatus.Disconnected)
|
||||||
{
|
{
|
||||||
if (_admins.Remove(e.Session, out var reg ) && _cfg.GetCVar(CCVars.AdminAnnounceLogout))
|
if (_admins.Remove(e.Session) && _cfg.GetCVar(CCVars.AdminAnnounceLogout))
|
||||||
{
|
{
|
||||||
if (reg.Data.Stealth)
|
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-logout-message", ("name", e.Session.Name)));
|
||||||
{
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-logout-message",
|
|
||||||
("name", e.Session.Name)), flagWhitelist: AdminFlags.Stealth);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-logout-message",
|
|
||||||
("name", e.Session.Name)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -377,27 +323,13 @@ namespace Content.Server.Administration.Managers
|
|||||||
|
|
||||||
_admins.Add(session, reg);
|
_admins.Add(session, reg);
|
||||||
|
|
||||||
if (session.ContentData()!.Stealthed)
|
|
||||||
reg.Data.Stealth = true;
|
|
||||||
|
|
||||||
if (!session.ContentData()!.ExplicitlyDeadminned)
|
if (!session.ContentData()!.ExplicitlyDeadminned)
|
||||||
{
|
{
|
||||||
reg.Data.Active = true;
|
reg.Data.Active = true;
|
||||||
|
|
||||||
if (_cfg.GetCVar(CCVars.AdminAnnounceLogin))
|
if (_cfg.GetCVar(CCVars.AdminAnnounceLogin))
|
||||||
{
|
{
|
||||||
if (reg.Data.Stealth)
|
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-login-message", ("name", session.Name)));
|
||||||
{
|
|
||||||
|
|
||||||
_chat.DispatchServerMessage(session, Loc.GetString("admin-manager-stealthed-message"));
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-login-message",
|
|
||||||
("name", session.Name)), flagWhitelist: AdminFlags.Stealth);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_chat.SendAdminAnnouncement(Loc.GetString("admin-manager-admin-login-message",
|
|
||||||
("name", session.Name)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SendPermsChangedEvent(session);
|
SendPermsChangedEvent(session);
|
||||||
|
|||||||
@@ -41,16 +41,6 @@ namespace Content.Server.Administration.Managers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void ReAdmin(ICommonSession session);
|
void ReAdmin(ICommonSession session);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Make admin hidden from adminwho.
|
|
||||||
/// </summary>
|
|
||||||
void Stealth(ICommonSession session);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Unhide admin from adminwho.
|
|
||||||
/// </summary>
|
|
||||||
void UnStealth(ICommonSession session);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Re-loads the permissions of an player in case their admin data changed DB-side.
|
/// Re-loads the permissions of an player in case their admin data changed DB-side.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -152,23 +152,9 @@ namespace Content.Server.Chat.Managers
|
|||||||
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server message to {player:Player}: {message}");
|
_adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server message to {player:Player}: {message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendAdminAnnouncement(string message, AdminFlags? flagBlacklist, AdminFlags? flagWhitelist)
|
public void SendAdminAnnouncement(string message)
|
||||||
{
|
{
|
||||||
var clients = _adminManager.ActiveAdmins.Where(p =>
|
var clients = _adminManager.ActiveAdmins.Select(p => p.Channel);
|
||||||
{
|
|
||||||
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",
|
var wrappedMessage = Loc.GetString("chat-manager-send-admin-announcement-wrap-message",
|
||||||
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), ("message", FormattedMessage.EscapeText(message)));
|
("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), ("message", FormattedMessage.EscapeText(message)));
|
||||||
|
|||||||
@@ -14,11 +14,6 @@ namespace Content.Shared.Administration
|
|||||||
|
|
||||||
public bool Stealth; // WD
|
public bool Stealth; // WD
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Whether the admin is in stealth mode and won't appear in adminwho to admins without the Stealth flag.
|
|
||||||
/// </summary>
|
|
||||||
public bool Stealth;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The admin's title.
|
/// The admin's title.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -63,14 +58,6 @@ namespace Content.Shared.Administration
|
|||||||
return HasFlag(AdminFlags.Admin);
|
return HasFlag(AdminFlags.Admin);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Check if this admin can be hidden and see other hidden admins.
|
|
||||||
/// </summary>
|
|
||||||
public bool CanStealth()
|
|
||||||
{
|
|
||||||
return HasFlag(AdminFlags.Stealth);
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanAdminReloadPrototypes()
|
public bool CanAdminReloadPrototypes()
|
||||||
{
|
{
|
||||||
return HasFlag(AdminFlags.Host);
|
return HasFlag(AdminFlags.Host);
|
||||||
|
|||||||
@@ -104,11 +104,6 @@ namespace Content.Shared.Administration
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
MassBan = 1 << 17,
|
MassBan = 1 << 17,
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Allows you to remain hidden from adminwho except to other admins with this flag.
|
|
||||||
/// </summary>
|
|
||||||
Stealth = 1 << 16,
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Dangerous host permissions like scsi.
|
/// Dangerous host permissions like scsi.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Content.Shared.Administration;
|
using Content.Shared.GameTicking;
|
||||||
using Content.Shared.GameTicking;
|
|
||||||
using Content.Shared.Mind;
|
using Content.Shared.Mind;
|
||||||
using Robust.Shared.Network;
|
using Robust.Shared.Network;
|
||||||
|
|
||||||
@@ -38,11 +37,6 @@ public sealed class ContentPlayerData
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ExplicitlyDeadminned { get; set; }
|
public bool ExplicitlyDeadminned { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// If true, the admin will not show up in adminwho except to admins with the <see cref="AdminFlags.Stealth"/> flag.
|
|
||||||
/// </summary>
|
|
||||||
public bool Stealthed { get; set; }
|
|
||||||
|
|
||||||
public ContentPlayerData(NetUserId userId, string name)
|
public ContentPlayerData(NetUserId userId, string name)
|
||||||
{
|
{
|
||||||
UserId = userId;
|
UserId = userId;
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
cmd-stealthmin-desc = Toggle whether others can see you in adminwho.
|
|
||||||
cmd-stealthmin-help = Usage: stealthmin\nUse stealthmin to toggle whether you appear in the output of the adminwho command.
|
|
||||||
cmd-stealthmin-no-console = You cannot use this command from the server console.
|
|
||||||
@@ -7,7 +7,3 @@ admin-manager-admin-permissions-updated-message = Your admin permission have bee
|
|||||||
admin-manager-admin-logout-message = Admin logout: {$name}
|
admin-manager-admin-logout-message = Admin logout: {$name}
|
||||||
admin-manager-admin-login-message = Admin login: {$name}
|
admin-manager-admin-login-message = Admin login: {$name}
|
||||||
admin-manager-admin-data-host-title = Host
|
admin-manager-admin-data-host-title = Host
|
||||||
admin-manager-stealthed-message = You are now a hidden admin.
|
|
||||||
admin-manager-unstealthed-message = You are no longer hidden.
|
|
||||||
admin-manager-self-enable-stealth = {$stealthAdminName} is now hidden.
|
|
||||||
admin-manager-self-disable-stealth = {$exStealthAdminName} is no longer hidden.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user