Display "lobby" if round ID is 0 for Discord AHelp embeds (#11197)
This commit is contained in:
@@ -112,26 +112,7 @@ namespace Content.Server.Administration.Systems
|
|||||||
oldMessage.messages += $"\n{message}";
|
oldMessage.messages += $"\n{message}";
|
||||||
}
|
}
|
||||||
|
|
||||||
var payload = new WebhookPayload
|
var payload = GeneratePayload(oldMessage.messages, oldMessage.username, oldMessage.characterName);
|
||||||
{
|
|
||||||
Username = $"{oldMessage.username}{(oldMessage.characterName == null ? string.Empty : $" ({oldMessage.characterName})")}",
|
|
||||||
AvatarUrl = _avatarUrl,
|
|
||||||
Embeds = new List<Embed>
|
|
||||||
{
|
|
||||||
new Embed
|
|
||||||
{
|
|
||||||
Description = oldMessage.messages,
|
|
||||||
// If no admins are online, set embed color to red. Otherwise green
|
|
||||||
Color = GetTargetAdmins().Count > 0 ? 0x41F097 : 0xFF0000,
|
|
||||||
Footer = new EmbedFooter
|
|
||||||
{
|
|
||||||
// Limit server name to 1500 characters, in case someone tries to be a little funny
|
|
||||||
Text = $"{_serverName[..Math.Min(_serverName.Length, 1500)]} (round {_gameTicker.RoundId})",
|
|
||||||
IconUrl = _footerIconUrl,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
if (oldMessage.id == string.Empty)
|
if (oldMessage.id == string.Empty)
|
||||||
{
|
{
|
||||||
@@ -175,6 +156,41 @@ namespace Content.Server.Administration.Systems
|
|||||||
_processingChannels.Remove(channelId);
|
_processingChannels.Remove(channelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private WebhookPayload GeneratePayload(string messages, string username, string? characterName = null)
|
||||||
|
{
|
||||||
|
// Add character name
|
||||||
|
if (characterName != null)
|
||||||
|
username += $" ({characterName})";
|
||||||
|
|
||||||
|
// If no admins are online, set embed color to red. Otherwise green
|
||||||
|
var color = GetTargetAdmins().Count > 0 ? 0x41F097 : 0xFF0000;
|
||||||
|
|
||||||
|
// Limit server name to 1500 characters, in case someone tries to be a little funny
|
||||||
|
var serverName = _serverName[..Math.Min(_serverName.Length, 1500)];
|
||||||
|
|
||||||
|
// If the round ID is 0, it most likely means we are in the lobby
|
||||||
|
var round = _gameTicker.RoundId == 0 ? "lobby" : $"round {_gameTicker.RoundId}";
|
||||||
|
|
||||||
|
return new WebhookPayload
|
||||||
|
{
|
||||||
|
Username = username,
|
||||||
|
AvatarUrl = _avatarUrl,
|
||||||
|
Embeds = new List<Embed>
|
||||||
|
{
|
||||||
|
new Embed
|
||||||
|
{
|
||||||
|
Description = messages,
|
||||||
|
Color = color,
|
||||||
|
Footer = new EmbedFooter
|
||||||
|
{
|
||||||
|
Text = $"{serverName} ({round})",
|
||||||
|
IconUrl = _footerIconUrl,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public override void Update(float frameTime)
|
public override void Update(float frameTime)
|
||||||
{
|
{
|
||||||
base.Update(frameTime);
|
base.Update(frameTime);
|
||||||
@@ -255,7 +271,7 @@ namespace Content.Server.Administration.Systems
|
|||||||
{
|
{
|
||||||
str = str[..(DescriptionMax - _maxAdditionalChars - unameLength)];
|
str = str[..(DescriptionMax - _maxAdditionalChars - unameLength)];
|
||||||
}
|
}
|
||||||
_messageQueues[msg.ChannelId].Enqueue(GenerateAHelpMessage(senderSession.Name, str, !personalChannel));
|
_messageQueues[msg.ChannelId].Enqueue(GenerateAHelpMessage(senderSession.Name, str, !personalChannel, admins.Count == 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (admins.Count != 0)
|
if (admins.Count != 0)
|
||||||
@@ -278,10 +294,17 @@ namespace Content.Server.Administration.Systems
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GenerateAHelpMessage(string username, string message, bool admin)
|
private static string GenerateAHelpMessage(string username, string message, bool admin, bool noReceivers = false)
|
||||||
{
|
{
|
||||||
var stringbuilder = new StringBuilder();
|
var stringbuilder = new StringBuilder();
|
||||||
stringbuilder.Append(admin ? ":outbox_tray:" : ":inbox_tray:");
|
|
||||||
|
if (admin)
|
||||||
|
stringbuilder.Append(":outbox_tray:");
|
||||||
|
else if (noReceivers)
|
||||||
|
stringbuilder.Append(":sos:");
|
||||||
|
else
|
||||||
|
stringbuilder.Append(":inbox_tray:");
|
||||||
|
|
||||||
stringbuilder.Append($" **{username}:** ");
|
stringbuilder.Append($" **{username}:** ");
|
||||||
stringbuilder.Append(message);
|
stringbuilder.Append(message);
|
||||||
return stringbuilder.ToString();
|
return stringbuilder.ToString();
|
||||||
|
|||||||
Reference in New Issue
Block a user