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:
parent
38e687cf50
commit
13721ddfde
5 changed files with 76 additions and 5 deletions
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)
|
||||
|
|
18
src/Messages.Designer.cs
generated
18
src/Messages.Designer.cs
generated
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue