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">
|
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
|
||||||
<value>Muted with a mute role</value>
|
<value>Muted with a mute role</value>
|
||||||
</data>
|
</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>
|
</root>
|
||||||
|
|
|
@ -636,4 +636,13 @@
|
||||||
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
|
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
|
||||||
<value>Заглушен с помощью роли мута</value>
|
<value>Заглушен с помощью роли мута</value>
|
||||||
</data>
|
</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>
|
</root>
|
||||||
|
|
|
@ -636,4 +636,13 @@
|
||||||
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
|
<data name="ShowInfoMutedWithMuteRole" xml:space="preserve">
|
||||||
<value>замучен ролькой</value>
|
<value>замучен ролькой</value>
|
||||||
</data>
|
</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>
|
</root>
|
||||||
|
|
|
@ -42,7 +42,8 @@ public class ToolsCommandGroup : CommandGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </summary>
|
||||||
/// <param name="target">The user to show info about.</param>
|
/// <param name="target">The user to show info about.</param>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
|
@ -87,19 +88,21 @@ public class ToolsCommandGroup : CommandGroup
|
||||||
if (user.GlobalName is not null)
|
if (user.GlobalName is not null)
|
||||||
{
|
{
|
||||||
builder.Append("- ").AppendLine(Messages.ShowInfoDisplayName)
|
builder.Append("- ").AppendLine(Messages.ShowInfoDisplayName)
|
||||||
.Append(" - ").AppendLine(Markdown.Sanitize(user.GlobalName));
|
.AppendLine(Markdown.InlineCode(user.GlobalName));
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.Append("- ").AppendLine(Messages.ShowInfoDiscordUserSince)
|
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 memberData = data.GetOrCreateMemberData(user.ID);
|
||||||
|
|
||||||
var guildMemberResult = await _guildApi.GetGuildMemberAsync(guildId, user.ID, ct);
|
var guildMemberResult = await _guildApi.GetGuildMemberAsync(guildId, user.ID, ct);
|
||||||
DateTimeOffset? communicationDisabledUntil = null;
|
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) ||
|
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);
|
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)
|
private static void AppendBanInformation(MemberData memberData, StringBuilder builder)
|
||||||
{
|
{
|
||||||
if (memberData.BannedUntil < DateTimeOffset.MaxValue)
|
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);
|
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