Skip to content

Commit

Permalink
Display the administrator's title in ahelp and ahelp relay (space-wiz…
Browse files Browse the repository at this point in the history
…ards#30075)

* Adding the admin prefix to the ahelp

* Updating the admin prefix

* The second update of the admin prefix

* Configuration correction
  • Loading branch information
chavonadelal authored Aug 3, 2024
1 parent 8931800 commit 64273cb
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Content.Server/Administration/Managers/AdminManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ private async void LoginAdminMaybe(ICommonSession session)
Flags = flags
};

if (dbData.Title != null)
if (dbData.Title != null && _cfg.GetCVar(CCVars.AdminUseCustomNamesAdminRank))
{
data.Title = dbData.Title;
}
Expand Down
22 changes: 18 additions & 4 deletions Content.Server/Administration/Systems/BwoinkSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -565,16 +565,23 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes
var escapedText = FormattedMessage.EscapeText(message.Text);

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 &&
senderAdmin.Flags ==
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))
{
bwoinkText = $"[color=red]{senderSession.Name}[/color]";
bwoinkText = $"[color=red]{adminPrefix}{senderSession.Name}[/color]";
}
else
{
Expand All @@ -597,6 +604,13 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes
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
if (_playerManager.TryGetSessionById(message.UserId, out var session))
{
Expand All @@ -611,11 +625,11 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes
senderAdmin.Flags ==
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))
{
overrideMsgText = $"[color=red]{_overrideClientName}[/color]";
overrideMsgText = $"[color=red]{adminPrefixWebhook}{_overrideClientName}[/color]";
}
else
{
Expand Down
27 changes: 27 additions & 0 deletions Content.Shared/CCVar/CCVars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -902,6 +902,15 @@ public static readonly CVarDef<bool>
public static readonly CVarDef<bool> AdminBypassMaxPlayers =
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
*/
Expand All @@ -921,6 +930,24 @@ public static readonly CVarDef<bool>
public static readonly CVarDef<int> AhelpRateLimitCount =
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
*/
Expand Down
4 changes: 4 additions & 0 deletions Resources/ConfigPresets/WizardsDen/wizardsDen.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,9 @@ deadmin_on_join = true
new_player_threshold = 600
alert.min_players_sharing_connection = 2

[ahelp]
admin_prefix = false
admin_prefix_webhook = false

[worldgen]
enabled = true

0 comments on commit 64273cb

Please sign in to comment.