feat: member avatar/name logging, timeout logging
This commit is contained in:
parent
c906a4d6b6
commit
d445b5ba44
10 changed files with 350 additions and 17 deletions
|
|
@ -10,11 +10,22 @@ public class AuditLogCache
|
|||
(Snowflake GuildId, Snowflake TargetId),
|
||||
ActionData
|
||||
> _kicks = new();
|
||||
|
||||
private readonly ConcurrentDictionary<
|
||||
(Snowflake GuildId, Snowflake TargetId),
|
||||
ActionData
|
||||
> _bans = new();
|
||||
|
||||
private readonly ConcurrentDictionary<
|
||||
(Snowflake GuildId, Snowflake TargetId),
|
||||
ActionData
|
||||
> _unbans = new();
|
||||
|
||||
private readonly ConcurrentDictionary<
|
||||
(Snowflake GuildId, Snowflake TargetId),
|
||||
ActionData
|
||||
> _memberUpdates = new();
|
||||
|
||||
public void SetKick(
|
||||
Snowflake guildId,
|
||||
string targetId,
|
||||
|
|
@ -47,5 +58,40 @@ public class AuditLogCache
|
|||
public bool TryGetBan(Snowflake guildId, Snowflake targetId, out ActionData data) =>
|
||||
_bans.TryGetValue((guildId, targetId), out data);
|
||||
|
||||
public void SetUnban(
|
||||
Snowflake guildId,
|
||||
string targetId,
|
||||
Snowflake moderatorId,
|
||||
Optional<string> reason
|
||||
)
|
||||
{
|
||||
if (!DiscordSnowflake.TryParse(targetId, out var targetUser))
|
||||
throw new CataloggerError("Target ID was not a valid snowflake");
|
||||
|
||||
_unbans[(guildId, targetUser.Value)] = new ActionData(moderatorId, reason.OrDefault());
|
||||
}
|
||||
|
||||
public bool TryGetUnban(Snowflake guildId, Snowflake targetId, out ActionData data) =>
|
||||
_unbans.TryGetValue((guildId, targetId), out data);
|
||||
|
||||
public void SetMemberUpdate(
|
||||
Snowflake guildId,
|
||||
string targetId,
|
||||
Snowflake moderatorId,
|
||||
Optional<string> reason
|
||||
)
|
||||
{
|
||||
if (!DiscordSnowflake.TryParse(targetId, out var targetUser))
|
||||
throw new CataloggerError("Target ID was not a valid snowflake");
|
||||
|
||||
_memberUpdates[(guildId, targetUser.Value)] = new ActionData(
|
||||
moderatorId,
|
||||
reason.OrDefault()
|
||||
);
|
||||
}
|
||||
|
||||
public bool TryGetMemberUpdate(Snowflake guildId, Snowflake targetId, out ActionData data) =>
|
||||
_memberUpdates.TryGetValue((guildId, targetId), out data);
|
||||
|
||||
public record struct ActionData(Snowflake ModeratorId, string? Reason);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue