1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-20 00:43:36 +03:00

Add AppendGuildInformation method

Signed-off-by: Macintosh II <mctaylxrs@outlook.com>
This commit is contained in:
Macintxsh 2023-09-28 20:43:11 +03:00
parent 38e687cf50
commit 13721ddfde
Signed by: mctaylors
GPG key ID: 361D326747B61E65
5 changed files with 76 additions and 5 deletions

View file

@ -636,4 +636,13 @@
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
<value>Muted with a mute role</value>
</data>
<data name="ShowInfoGuildMemberSince" xml:space="preserve">
<value>Guild member since</value>
</data>
<data name="ShowInfoGuildNickname" xml:space="preserve">
<value>Nickname</value>
</data>
<data name="ShowInfoGuildRoles" xml:space="preserve">
<value>Roles</value>
</data>
</root>

View file

@ -636,4 +636,13 @@
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
<value>Заглушен с помощью роли мута</value>
</data>
<data name="ShowInfoGuildMemberSince" xml:space="preserve">
<value>Участник сервера с</value>
</data>
<data name="ShowInfoGuildNickname" xml:space="preserve">
<value>Никнейм</value>
</data>
<data name="ShowInfoGuildRoles" xml:space="preserve">
<value>Роли</value>
</data>
</root>

View file

@ -636,4 +636,13 @@
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
<value>замучен ролькой</value>
</data>
<data name="ShowInfoGuildMemberSince" xml:space="preserve">
<value>участник сервера со времен</value>
</data>
<data name="ShowInfoGuildNickname" xml:space="preserve">
<value>сервернейм</value>
</data>
<data name="ShowInfoGuildRoles" xml:space="preserve">
<value>рольки</value>
</data>
</root>

View file

@ -42,7 +42,8 @@ public class ToolsCommandGroup : CommandGroup
}
/// <summary>
/// A slash command that shows general information about user & user's punishments.
/// A slash command that shows user's display name, joined Discord & joined server dates
/// and current punishments.
/// </summary>
/// <param name="target">The user to show info about.</param>
/// <returns>
@ -87,19 +88,21 @@ public class ToolsCommandGroup : CommandGroup
if (user.GlobalName is not null)
{
builder.Append("- ").AppendLine(Messages.ShowInfoDisplayName)
.Append(" - ").AppendLine(Markdown.Sanitize(user.GlobalName));
.AppendLine(Markdown.InlineCode(user.GlobalName));
}
builder.Append("- ").AppendLine(Messages.ShowInfoDiscordUserSince)
.Append(" - ").AppendLine(Markdown.Timestamp(user.ID.Timestamp));
.AppendLine(Markdown.Timestamp(user.ID.Timestamp));
var memberData = data.GetOrCreateMemberData(user.ID);
var guildMemberResult = await _guildApi.GetGuildMemberAsync(guildId, user.ID, ct);
DateTimeOffset? communicationDisabledUntil = null;
if (guildMemberResult.IsSuccess)
if (guildMemberResult.IsDefined(out var guildMember))
{
communicationDisabledUntil = guildMemberResult.Entity.CommunicationDisabledUntil.Value;
communicationDisabledUntil = guildMember.CommunicationDisabledUntil.Value;
AppendGuildInformation(guildMember, builder);
}
var isMuted = (memberData.MutedUntil is not null && DateTimeOffset.UtcNow <= memberData.MutedUntil) ||
@ -148,6 +151,29 @@ public class ToolsCommandGroup : CommandGroup
return await _feedback.SendContextualEmbedResultAsync(embed, ct);
}
private static void AppendGuildInformation(IGuildMember guildMember, StringBuilder builder)
{
if (guildMember.Nickname.Value is not null)
{
builder.Append("- ").AppendLine(Messages.ShowInfoGuildNickname)
.AppendLine(Markdown.InlineCode(guildMember.Nickname.Value));
}
builder.Append("- ").AppendLine(Messages.ShowInfoGuildMemberSince)
.AppendLine(Markdown.Timestamp(guildMember.JoinedAt));
if (guildMember.Roles.Count > 0)
{
builder.Append("- ").AppendLine(Messages.ShowInfoGuildRoles);
for (var i = 0; i < guildMember.Roles.Count - 1; i++)
{
builder.Append($"<@&{guildMember.Roles[i]}>, ");
}
builder.Append($"<@&{guildMember.Roles[^1]}>");
}
}
private static void AppendBanInformation(MemberData memberData, StringBuilder builder)
{
if (memberData.BannedUntil < DateTimeOffset.MaxValue)

View file

@ -1085,5 +1085,23 @@ namespace Boyfriend {
return ResourceManager.GetString("ShowInfoMutedWithMuteRole", resourceCulture);
}
}
internal static string ShowInfoGuildMemberSince {
get {
return ResourceManager.GetString("ShowInfoGuildMemberSince", resourceCulture);
}
}
internal static string ShowInfoGuildNickname {
get {
return ResourceManager.GetString("ShowInfoGuildNickname", resourceCulture);
}
}
internal static string ShowInfoGuildRoles {
get {
return ResourceManager.GetString("ShowInfoGuildRoles", resourceCulture);
}
}
}
}