Skip to content

Commit

Permalink
Use an int parameter instead of a boolean
Browse files Browse the repository at this point in the history
  • Loading branch information
FloatingMilkshake committed Sep 18, 2024
1 parent 920e465 commit 2e2379d
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
6 changes: 3 additions & 3 deletions Events/MessageEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ static async Task DeleteAndWarnAsync(MockDiscordMessage message, string reason,
string warnMsgReason = $"{Program.cfgjson.Emoji.Denied} {message.Author.Mention} was automatically warned: **{reason.Replace("`", "\\`").Replace("*", "\\*")}**";
if (!wasAutoModBlock)
{
msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, warnMsgReason, wasAutoModBlock, true);
msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, warnMsgReason, wasAutoModBlock, 1);
}
else
{
Expand Down Expand Up @@ -339,7 +339,7 @@ public static async Task MessageHandlerAsync(DiscordClient client, MockDiscordMe

match = true;

DiscordMessage msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, $"{Program.cfgjson.Emoji.Denied} {message.Author.Mention} was automatically warned: **{reason.Replace("`", "\\`").Replace("*", "\\*")}**", wasAutoModBlock, true);
DiscordMessage msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, $"{Program.cfgjson.Emoji.Denied} {message.Author.Mention} was automatically warned: **{reason.Replace("`", "\\`").Replace("*", "\\*")}**", wasAutoModBlock, 1);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField: ("Match", flaggedWord, true), wasAutoModBlock: wasAutoModBlock);
return;
Expand Down Expand Up @@ -378,7 +378,7 @@ public static async Task MessageHandlerAsync(DiscordClient client, MockDiscordMe
// still warn anyway
}

DiscordMessage msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, $"{{Program.cfgjson.Emoji.Denied}} {{message.Author.Mention}} was automatically warned: **{{reason.Replace(\"`\", \"\\\\`\").Replace(\"*\", \"\\\\*\")}}**", wasAutoModBlock, true);
DiscordMessage msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, $"{{Program.cfgjson.Emoji.Denied}} {{message.Author.Mention}} was automatically warned: **{{reason.Replace(\"`\", \"\\\\`\").Replace(\"*\", \"\\\\*\")}}**", wasAutoModBlock, 1);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, wasAutoModBlock: wasAutoModBlock);
match = true;
Expand Down
18 changes: 9 additions & 9 deletions Helpers/DiscordHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -243,12 +243,12 @@ public static async Task<DiscordMessageBuilder> GenerateMessageRelay(DiscordMess
return new DiscordMessageBuilder().AddEmbeds(embeds.AsEnumerable());
}

public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel, DiscordMessage message, bool wasAutoWarn = false)
public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel, DiscordMessage message, int minMessages = 0)
{
return await DoEmptyThreadCleanupAsync(channel, new MockDiscordMessage(message), wasAutoWarn);
return await DoEmptyThreadCleanupAsync(channel, new MockDiscordMessage(message), minMessages);
}

public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel, MockDiscordMessage message, bool wasAutoWarn = false)
public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel, MockDiscordMessage message, int minMessages = 0)
{
// Delete thread if all messages are deleted.
// Otherwise, do nothing.
Expand All @@ -271,7 +271,7 @@ public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel,
IReadOnlyList<DiscordMessage> messages;
try
{
messages = await channel.GetMessagesAsync(wasAutoWarn ? 2 : 1).ToListAsync();
messages = await channel.GetMessagesAsync(minMessages + 1).ToListAsync();
}
catch (DSharpPlus.Exceptions.NotFoundException ex)
{
Expand All @@ -281,7 +281,7 @@ public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel,

// If this is coming after an automatic warning, 1 message in the thread is okay;
// this is the message that triggered the warning, and we can just delete the thread.
if (messages.Count == (wasAutoWarn ? 1 : 0))
if (messages.Count == minMessages)
{
await channel.DeleteAsync("All messages in thread were deleted.");
return true;
Expand All @@ -291,12 +291,12 @@ public static async Task<bool> DoEmptyThreadCleanupAsync(DiscordChannel channel,
return false;
}

public static async Task ThreadChannelAwareDeleteMessageAsync(DiscordMessage message, bool wasAutoWarn = false)
public static async Task ThreadChannelAwareDeleteMessageAsync(DiscordMessage message, int minMessages = 0)
{
await ThreadChannelAwareDeleteMessageAsync(new MockDiscordMessage(message), wasAutoWarn);
await ThreadChannelAwareDeleteMessageAsync(new MockDiscordMessage(message), minMessages);
}

public static async Task<bool> ThreadChannelAwareDeleteMessageAsync(MockDiscordMessage message, bool wasAutoWarn = false)
public static async Task<bool> ThreadChannelAwareDeleteMessageAsync(MockDiscordMessage message, int minMessages = 0)
{
// Deletes a message in a thread channel, or if it is the last message, deletes the thread instead.
// If this is not a thread channel, just deletes the message.
Expand All @@ -305,7 +305,7 @@ public static async Task<bool> ThreadChannelAwareDeleteMessageAsync(MockDiscordM

if (message.Channel.Type == DiscordChannelType.GuildForum || message.Channel.Parent.Type == DiscordChannelType.GuildForum)
{
wasThreadDeleted = await DoEmptyThreadCleanupAsync(message.Channel, message, wasAutoWarn);
wasThreadDeleted = await DoEmptyThreadCleanupAsync(message.Channel, message, minMessages);
if (!wasThreadDeleted)
await message.DeleteAsync();
}
Expand Down
8 changes: 4 additions & 4 deletions Helpers/WarningHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -390,12 +390,12 @@ public static UserWarning GetWarning(ulong targetUserId, long warnId = default)
}
}

public static async Task<DiscordMessage> SendPublicWarningMessageAndDeleteInfringingMessageAsync(DiscordMessage infringingMessage, string warningMessageContent, bool wasAutoModBlock = false, bool wasAutoWarn = false)
public static async Task<DiscordMessage> SendPublicWarningMessageAndDeleteInfringingMessageAsync(DiscordMessage infringingMessage, string warningMessageContent, bool wasAutoModBlock = false, int minMessages = 0)
{
return await SendPublicWarningMessageAndDeleteInfringingMessageAsync(new MockDiscordMessage(infringingMessage), warningMessageContent, wasAutoModBlock, wasAutoWarn);
return await SendPublicWarningMessageAndDeleteInfringingMessageAsync(new MockDiscordMessage(infringingMessage), warningMessageContent, wasAutoModBlock, minMessages);
}

public static async Task<DiscordMessage> SendPublicWarningMessageAndDeleteInfringingMessageAsync(MockDiscordMessage infringingMessage, string warningMessageContent, bool wasAutoModBlock = false, bool wasAutoWarn = false)
public static async Task<DiscordMessage> SendPublicWarningMessageAndDeleteInfringingMessageAsync(MockDiscordMessage infringingMessage, string warningMessageContent, bool wasAutoModBlock = false, int minMessages = 0)
{
// If this is a `GuildForum` channel, delete the thread if it is empty (empty = 1 message left if `isAutoWarn`, otherwise 0); if not empty, just delete the infringing message.
// Then, based on whether the thread was deleted, send the warning message into the thread or into the configured fallback channel.
Expand All @@ -412,7 +412,7 @@ public static async Task<DiscordMessage> SendPublicWarningMessageAndDeleteInfrin

if (!wasAutoModBlock)
{
if (await DiscordHelpers.ThreadChannelAwareDeleteMessageAsync(infringingMessage, wasAutoWarn))
if (await DiscordHelpers.ThreadChannelAwareDeleteMessageAsync(infringingMessage, minMessages))
targetChannel = await Program.discord.GetChannelAsync(Program.cfgjson.ForumChannelAutoWarnFallbackChannel);
}
var warningMessage = await targetChannel.SendMessageAsync(warningMessageContent);
Expand Down

0 comments on commit 2e2379d

Please sign in to comment.