Display the administrator's title in ahelp and ahelp relay (#30075)

* Adding the admin prefix to the ahelp

* Updating the admin prefix

* The second update of the admin prefix

* Configuration correction
This commit is contained in:
to4no_fix
2024-08-03 06:59:20 +03:00
committed by GitHub
parent 893180038f
commit 64273cb914
4 changed files with 50 additions and 5 deletions

View File

@@ -458,7 +458,7 @@ namespace Content.Server.Administration.Managers
Flags = flags Flags = flags
}; };
if (dbData.Title != null) if (dbData.Title != null && _cfg.GetCVar(CCVars.AdminUseCustomNamesAdminRank))
{ {
data.Title = dbData.Title; data.Title = dbData.Title;
} }

View File

@@ -565,16 +565,23 @@ namespace Content.Server.Administration.Systems
var escapedText = FormattedMessage.EscapeText(message.Text); var escapedText = FormattedMessage.EscapeText(message.Text);
string bwoinkText; string bwoinkText;
string adminPrefix = "";
//Getting an administrator position
if (_config.GetCVar(CCVars.AhelpAdminPrefix) && senderAdmin is not null && senderAdmin.Title is not null)
{
adminPrefix = $"[bold]\\[{senderAdmin.Title}\\][/bold] ";
}
if (senderAdmin is not null && if (senderAdmin is not null &&
senderAdmin.Flags == senderAdmin.Flags ==
AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently.
{ {
bwoinkText = $"[color=purple]{senderSession.Name}[/color]"; bwoinkText = $"[color=purple]{adminPrefix}{senderSession.Name}[/color]";
} }
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp)) else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
{ {
bwoinkText = $"[color=red]{senderSession.Name}[/color]"; bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
} }
else else
{ {
@@ -597,6 +604,13 @@ namespace Content.Server.Administration.Systems
RaiseNetworkEvent(msg, channel); RaiseNetworkEvent(msg, channel);
} }
string adminPrefixWebhook = "";
if (_config.GetCVar(CCVars.AhelpAdminPrefixWebhook) && senderAdmin is not null && senderAdmin.Title is not null)
{
adminPrefixWebhook = $"[bold]\\[{senderAdmin.Title}\\][/bold] ";
}
// Notify player // Notify player
if (_playerManager.TryGetSessionById(message.UserId, out var session)) if (_playerManager.TryGetSessionById(message.UserId, out var session))
{ {
@@ -611,11 +625,11 @@ namespace Content.Server.Administration.Systems
senderAdmin.Flags == senderAdmin.Flags ==
AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently.
{ {
overrideMsgText = $"[color=purple]{_overrideClientName}[/color]"; overrideMsgText = $"[color=purple]{adminPrefixWebhook}{_overrideClientName}[/color]";
} }
else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp)) else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp))
{ {
overrideMsgText = $"[color=red]{_overrideClientName}[/color]"; overrideMsgText = $"[color=red]{adminPrefixWebhook}{_overrideClientName}[/color]";
} }
else else
{ {

View File

@@ -902,6 +902,15 @@ namespace Content.Shared.CCVar
public static readonly CVarDef<bool> AdminBypassMaxPlayers = public static readonly CVarDef<bool> AdminBypassMaxPlayers =
CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY); CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY);
/// <summary>
/// Determine if custom rank names are used.
/// If it is false, it'd use the actual rank name regardless of the individual's title.
/// </summary>
/// <seealso cref="AhelpAdminPrefix"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AdminUseCustomNamesAdminRank =
CVarDef.Create("admin.use_custom_names_admin_rank", true, CVar.SERVERONLY);
/* /*
* AHELP * AHELP
*/ */
@@ -921,6 +930,24 @@ namespace Content.Shared.CCVar
public static readonly CVarDef<int> AhelpRateLimitCount = public static readonly CVarDef<int> AhelpRateLimitCount =
CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY); CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in ahelp.
/// If it is is false, only the admin's ckey will be displayed in the ahelp.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefixWebhook"/>
public static readonly CVarDef<bool> AhelpAdminPrefix =
CVarDef.Create("ahelp.admin_prefix", true, CVar.SERVERONLY);
/// <summary>
/// Should the administrator's position be displayed in the webhook.
/// If it is is false, only the admin's ckey will be displayed in webhook.
/// </summary>
/// <seealso cref="AdminUseCustomNamesAdminRank"/>
/// <seealso cref="AhelpAdminPrefix"/>
public static readonly CVarDef<bool> AhelpAdminPrefixWebhook =
CVarDef.Create("ahelp.admin_prefix_webhook", true, CVar.SERVERONLY);
/* /*
* Explosions * Explosions
*/ */

View File

@@ -39,5 +39,9 @@ deadmin_on_join = true
new_player_threshold = 600 new_player_threshold = 600
alert.min_players_sharing_connection = 2 alert.min_players_sharing_connection = 2
[ahelp]
admin_prefix = false
admin_prefix_webhook = false
[worldgen] [worldgen]
enabled = true enabled = true