chore: format with csharpier
This commit is contained in:
parent
2f516dcb73
commit
4f54077c68
59 changed files with 2000 additions and 942 deletions
|
|
@ -19,8 +19,8 @@ public class ChannelUpdateResponder(
|
|||
ChannelCache channelCache,
|
||||
RoleCache roleCache,
|
||||
UserCache userCache,
|
||||
WebhookExecutorService webhookExecutor)
|
||||
: IResponder<IChannelUpdate>
|
||||
WebhookExecutorService webhookExecutor
|
||||
) : IResponder<IChannelUpdate>
|
||||
{
|
||||
private readonly ILogger _logger = logger.ForContext<ChannelUpdateResponder>();
|
||||
|
||||
|
|
@ -37,20 +37,26 @@ public class ChannelUpdateResponder(
|
|||
var guildConfig = await db.GetGuildAsync(evt.GuildID.Value, ct);
|
||||
|
||||
var builder = new EmbedBuilder()
|
||||
.WithTitle(evt.Type switch
|
||||
{
|
||||
ChannelType.GuildVoice => "Voice channel edited",
|
||||
ChannelType.GuildCategory => "Category channel edited",
|
||||
ChannelType.GuildAnnouncement or ChannelType.GuildText => "Text channel edited",
|
||||
_ => "Channel edited"
|
||||
})
|
||||
.WithTitle(
|
||||
evt.Type switch
|
||||
{
|
||||
ChannelType.GuildVoice => "Voice channel edited",
|
||||
ChannelType.GuildCategory => "Category channel edited",
|
||||
ChannelType.GuildAnnouncement or ChannelType.GuildText =>
|
||||
"Text channel edited",
|
||||
_ => "Channel edited",
|
||||
}
|
||||
)
|
||||
.WithColour(DiscordUtils.Blue)
|
||||
.WithFooter($"ID: {evt.ID} | Name: {evt.Name}")
|
||||
.WithCurrentTimestamp();
|
||||
|
||||
if (oldChannel.ParentID != evt.ParentID)
|
||||
{
|
||||
var categoryUpdate = CategoryUpdate(oldChannel.ParentID.OrDefault(), evt.ParentID.OrDefault());
|
||||
var categoryUpdate = CategoryUpdate(
|
||||
oldChannel.ParentID.OrDefault(),
|
||||
evt.ParentID.OrDefault()
|
||||
);
|
||||
if (!string.IsNullOrWhiteSpace(categoryUpdate))
|
||||
builder.AddField("Category", categoryUpdate);
|
||||
}
|
||||
|
|
@ -64,7 +70,8 @@ public class ChannelUpdateResponder(
|
|||
var newTopic = evt.Topic.OrDefault() ?? "(none)";
|
||||
|
||||
var topicField = $"**Before:** {oldTopic}\n\n**After:** {newTopic}";
|
||||
if (topicField.Length > 1000) topicField = topicField[..1000] + "…";
|
||||
if (topicField.Length > 1000)
|
||||
topicField = topicField[..1000] + "…";
|
||||
|
||||
builder.AddField("Description", topicField);
|
||||
}
|
||||
|
|
@ -72,11 +79,19 @@ public class ChannelUpdateResponder(
|
|||
var oldOverrides = oldChannel.PermissionOverwrites.OrDefault() ?? [];
|
||||
var newOverrides = evt.PermissionOverwrites.OrDefault() ?? [];
|
||||
|
||||
var addedOverrides = newOverrides.Where(o => oldOverrides.All(o2 => o.ID != o2.ID)).ToList();
|
||||
var removedOverrides = oldOverrides.Where(o => newOverrides.All(o2 => o.ID != o2.ID)).ToList();
|
||||
var addedOverrides = newOverrides
|
||||
.Where(o => oldOverrides.All(o2 => o.ID != o2.ID))
|
||||
.ToList();
|
||||
var removedOverrides = oldOverrides
|
||||
.Where(o => newOverrides.All(o2 => o.ID != o2.ID))
|
||||
.ToList();
|
||||
// Overrides filtered to ones that exist in both lists, but have different allow or deny values
|
||||
var editedOverrides = newOverrides.Where(o => oldOverrides.Any(o2 =>
|
||||
o.ID == o2.ID && (o.Allow.Value != o2.Allow.Value || o.Deny.Value != o2.Deny.Value)));
|
||||
var editedOverrides = newOverrides.Where(o =>
|
||||
oldOverrides.Any(o2 =>
|
||||
o.ID == o2.ID
|
||||
&& (o.Allow.Value != o2.Allow.Value || o.Deny.Value != o2.Deny.Value)
|
||||
)
|
||||
);
|
||||
|
||||
if (addedOverrides.Count != 0)
|
||||
{
|
||||
|
|
@ -90,7 +105,9 @@ public class ChannelUpdateResponder(
|
|||
}
|
||||
else
|
||||
{
|
||||
addedOverrideNames.Add(roleCache.TryGet(o.ID, out var role) ? role.Name : $"role {o.ID}");
|
||||
addedOverrideNames.Add(
|
||||
roleCache.TryGet(o.ID, out var role) ? role.Name : $"role {o.ID}"
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -110,7 +127,9 @@ public class ChannelUpdateResponder(
|
|||
}
|
||||
else
|
||||
{
|
||||
removedOverrideNames.Add(roleCache.TryGet(o.ID, out var role) ? role.Name : $"role {o.ID}");
|
||||
removedOverrideNames.Add(
|
||||
roleCache.TryGet(o.ID, out var role) ? role.Name : $"role {o.ID}"
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -120,9 +139,12 @@ public class ChannelUpdateResponder(
|
|||
|
||||
foreach (var overwrite in editedOverrides)
|
||||
{
|
||||
var perms = string.Join("\n",
|
||||
PermissionUpdate(oldOverrides.First(o => o.ID == overwrite.ID), overwrite));
|
||||
if (string.IsNullOrWhiteSpace(perms)) continue;
|
||||
var perms = string.Join(
|
||||
"\n",
|
||||
PermissionUpdate(oldOverrides.First(o => o.ID == overwrite.ID), overwrite)
|
||||
);
|
||||
if (string.IsNullOrWhiteSpace(perms))
|
||||
continue;
|
||||
|
||||
builder.AddField(await OverwriteName(overwrite), perms.Trim());
|
||||
}
|
||||
|
|
@ -134,19 +156,24 @@ public class ChannelUpdateResponder(
|
|||
embedFieldValue += $"\u2705 {overwrite.Allow.ToPrettyString()}";
|
||||
if (overwrite.Deny.GetPermissions().Count != 0)
|
||||
embedFieldValue += $"\n\n\u274c {overwrite.Deny.ToPrettyString()}";
|
||||
if (string.IsNullOrWhiteSpace(embedFieldValue)) continue;
|
||||
if (string.IsNullOrWhiteSpace(embedFieldValue))
|
||||
continue;
|
||||
builder.AddField(await OverwriteName(overwrite), embedFieldValue.Trim());
|
||||
}
|
||||
|
||||
// Sometimes we get channel update events for channels that didn't actually have anything loggable change.
|
||||
// If that happens, there will be no embed fields, so just check for that
|
||||
if (builder.Fields.Count == 0) return Result.Success;
|
||||
webhookExecutor.QueueLog(guildConfig, LogChannelType.ChannelUpdate, builder.Build().GetOrThrow());
|
||||
if (builder.Fields.Count == 0)
|
||||
return Result.Success;
|
||||
webhookExecutor.QueueLog(
|
||||
guildConfig,
|
||||
LogChannelType.ChannelUpdate,
|
||||
builder.Build().GetOrThrow()
|
||||
);
|
||||
|
||||
return Result.Success;
|
||||
}
|
||||
finally
|
||||
|
||||
{
|
||||
channelCache.Set(evt);
|
||||
}
|
||||
|
|
@ -172,46 +199,69 @@ public class ChannelUpdateResponder(
|
|||
: $"Override for role {overwrite.ID}";
|
||||
case PermissionOverwriteType.Member:
|
||||
var user = await userCache.GetUserAsync(overwrite.ID);
|
||||
return user != null ? $"Override for {user.Tag()}" : $"Override for user {overwrite.ID}";
|
||||
return user != null
|
||||
? $"Override for {user.Tag()}"
|
||||
: $"Override for user {overwrite.ID}";
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(overwrite), overwrite.Type,
|
||||
"Invalid PermissionOverwriteType");
|
||||
throw new ArgumentOutOfRangeException(
|
||||
nameof(overwrite),
|
||||
overwrite.Type,
|
||||
"Invalid PermissionOverwriteType"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private static IEnumerable<string> PermissionUpdate(IPermissionOverwrite oldOverwrite,
|
||||
IPermissionOverwrite newOverwrite)
|
||||
private static IEnumerable<string> PermissionUpdate(
|
||||
IPermissionOverwrite oldOverwrite,
|
||||
IPermissionOverwrite newOverwrite
|
||||
)
|
||||
{
|
||||
foreach (var perm in Enum.GetValues<DiscordPermission>())
|
||||
{
|
||||
if (newOverwrite.Allow.HasPermission(perm) && !oldOverwrite.Allow.HasPermission(perm) &&
|
||||
!oldOverwrite.Deny.HasPermission(perm))
|
||||
if (
|
||||
newOverwrite.Allow.HasPermission(perm)
|
||||
&& !oldOverwrite.Allow.HasPermission(perm)
|
||||
&& !oldOverwrite.Deny.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u2b1c \u279c \u2705 {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
else if (newOverwrite.Deny.HasPermission(perm) && !oldOverwrite.Allow.HasPermission(perm) &&
|
||||
!oldOverwrite.Deny.HasPermission(perm))
|
||||
else if (
|
||||
newOverwrite.Deny.HasPermission(perm)
|
||||
&& !oldOverwrite.Allow.HasPermission(perm)
|
||||
&& !oldOverwrite.Deny.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u2b1c \u279c \u274c {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
else if (newOverwrite.Allow.HasPermission(perm) && oldOverwrite.Deny.HasPermission(perm))
|
||||
else if (
|
||||
newOverwrite.Allow.HasPermission(perm) && oldOverwrite.Deny.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u274c \u279c \u2705 {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
else if (newOverwrite.Deny.HasPermission(perm) && oldOverwrite.Allow.HasPermission(perm))
|
||||
else if (
|
||||
newOverwrite.Deny.HasPermission(perm) && oldOverwrite.Allow.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u2705 \u279c \u274c {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
else if (!newOverwrite.Allow.HasPermission(perm) && !newOverwrite.Deny.HasPermission(perm) &&
|
||||
oldOverwrite.Allow.HasPermission(perm))
|
||||
else if (
|
||||
!newOverwrite.Allow.HasPermission(perm)
|
||||
&& !newOverwrite.Deny.HasPermission(perm)
|
||||
&& oldOverwrite.Allow.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u2705 \u279c \u2b1c {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
else if (!newOverwrite.Allow.HasPermission(perm) && !newOverwrite.Deny.HasPermission(perm) &&
|
||||
oldOverwrite.Allow.HasPermission(perm))
|
||||
else if (
|
||||
!newOverwrite.Allow.HasPermission(perm)
|
||||
&& !newOverwrite.Deny.HasPermission(perm)
|
||||
&& oldOverwrite.Allow.HasPermission(perm)
|
||||
)
|
||||
{
|
||||
yield return $"\u274c \u279c \u2b1c {perm.Humanize(LetterCasing.Title)}";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue