Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions Events/MessageEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -748,7 +748,8 @@ await InvestigationsHelpers.SendInfringingMessaageAsync(
null,
DiscordHelpers.MessageLink(message),
content: content,
colour: new DiscordColor(0xFEC13D)
colour: new DiscordColor(0xFEC13D),
userWasWarned: true
);
}
#endregion
Expand Down Expand Up @@ -837,9 +838,9 @@ private static async Task<bool> RunScamImageFilterAsync(DiscordClient client, Mo
messageBuilder.WithContent(output);
DiscordMessage msg = await channel.SendMessageAsync(output);

await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, userWasWarned: true);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride, userWasWarned: true);

return true;
}
Expand Down Expand Up @@ -1064,13 +1065,13 @@ private static async Task<bool> RunInviteFilterAsync(DiscordClient client, MockD
string reason = "Sent a malicious Discord invite";

DiscordMessage msg = await WarningHelpers.SendPublicWarningMessageAndDeleteInfringingMessageAsync(message, $"{Program.cfgjson.Emoji.Denied} {message.Author.Mention} was automatically warned: **{reason.Replace("`", "\\`").Replace("*", "\\*")}**", wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");

string responseToSend = $"```json\n{JsonConvert.SerializeObject(maliciousCache)}\n```";

(string name, string value, bool inline) extraField = new("Cached API response", responseToSend, false);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);

match = true;
break;
Expand Down Expand Up @@ -1319,9 +1320,9 @@ private static async Task<bool> RunLineLimitFilterAsync(DiscordClient client, Mo
msg = await channel.SendMessageAsync(messageBuilder);
}

await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);

return true;
}
Expand Down Expand Up @@ -1364,9 +1365,9 @@ message.ReferencedMessage is not null &&
messageBuilder.WithContent(output);
DiscordMessage msg = await channel.SendMessageAsync(output);

await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, userWasWarned: true);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, messageContentOverride: messageContentOverride, userWasWarned: true);

return true;
}
Expand Down Expand Up @@ -1444,14 +1445,14 @@ private static async Task DeleteAndWarnAsync(MockDiscordMessage message, string

try
{
_ = InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, wasAutoModBlock: wasAutoModBlock, messageContentOverride: messageContentOverride, useCodeBlock: useCodeBlock);
_ = InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, wasAutoModBlock: wasAutoModBlock, messageContentOverride: messageContentOverride, useCodeBlock: useCodeBlock, userWasWarned: true);
}
catch
{
// still warn anyway
}
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, channel, " automatically ");
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, useCodeBlock: useCodeBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, useCodeBlock: useCodeBlock, userWasWarned: true);
}

#endregion warning helpers
Expand Down Expand Up @@ -1581,13 +1582,13 @@ public static async Task<bool> InviteCheck(DiscordInvite? invite, MockDiscordMes
string reason = "Sent a malicious Discord invite";

DiscordMessage msg = await message.Channel.SendMessageAsync($"{Program.cfgjson.Emoji.Denied} {message.Author.Mention} was automatically warned: **{reason.Replace("`", "\\`").Replace("*", "\\*")}**");
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("mod", message, reason, null, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);
var warning = await WarningHelpers.GiveWarningAsync(message.Author, client.CurrentUser, reason, contextMessage: msg, message.Channel, " automatically ");

string responseToSend = $"```json\n{responseString}\n```";

(string name, string value, bool inline) extraField = new("API Response", responseToSend, false);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock);
await InvestigationsHelpers.SendInfringingMessaageAsync("investigations", message, reason, warning.ContextLink, extraField, messageContentOverride: messageContentOverride, wasAutoModBlock: wasAutoModBlock, userWasWarned: true);

var newEntry = JsonConvert.DeserializeObject<ServerApiResponseJson>(responseString);
newEntry.Invite = invite.Code;
Expand Down
4 changes: 1 addition & 3 deletions Events/ReactionEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public static async Task OnReaction(DiscordClient _, MessageReactionAddedEventAr
var recycleBinEmoji = await discord.GetApplicationEmojiAsync(cfgjson.ReactionEmoji.Delete);

// Ignore reactions that are not the CliptokRecycleBin emoji!!
if (e.Emoji != recycleBinEmoji)
if (e.Emoji.Name != "CliptokRecycleBin" && e.Emoji.Name != "WindowsRecycleBin")
return;

if (e.Channel.Id == cfgjson.LogChannels["mod"].ChannelId)
Expand Down Expand Up @@ -150,13 +150,11 @@ await LogChannelHelper.LogMessageAsync("mod",
}
if (!foundMatch)
{
await targetMessage.CreateReactionAsync(errorEmoji);
return;
}
}
else if (matchingWarnings.Count < 1)
{
await targetMessage.CreateReactionAsync(errorEmoji);
return;
}
else
Expand Down
4 changes: 2 additions & 2 deletions Helpers/InvestigationsHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ public static async Task SendInfringingMessaageAsync(string logChannelKey, Disco
{
await SendInfringingMessaageAsync(logChannelKey, new MockDiscordMessage(infringingMessage), reason, messageURL, extraField, content, colour, channelOverride, messageContentOverride, wasAutoModBlock, useCodeBlock);
}
public static async Task SendInfringingMessaageAsync(string logChannelKey, MockDiscordMessage infringingMessage, string reason, string messageURL, (string name, string value, bool inline) extraField = default, string content = default, DiscordColor? colour = null, DiscordChannel channelOverride = default, string messageContentOverride = default, bool wasAutoModBlock = false, bool useCodeBlock = false)
public static async Task SendInfringingMessaageAsync(string logChannelKey, MockDiscordMessage infringingMessage, string reason, string messageURL, (string name, string value, bool inline) extraField = default, string content = default, DiscordColor? colour = null, DiscordChannel channelOverride = default, string messageContentOverride = default, bool wasAutoModBlock = false, bool useCodeBlock = false, bool userWasWarned = false)
{
if (colour is null)
colour = new DiscordColor(0xf03916);
Expand Down Expand Up @@ -65,7 +65,7 @@ await LykosAvatarMethods.UserOrMemberAvatarURL(infringingMessage.Author, infring
logMsg = await channelOverride.SendMessageAsync(new DiscordMessageBuilder().WithContent(content).AddEmbed(embed).WithAllowedMentions(Mentions.None));

// Add reaction to log message to be used to delete
if (logChannelKey == "investigations" && channelOverride == default && Program.cfgjson.ReactionEmoji is not null)
if (logChannelKey == "investigations" && channelOverride == default && Program.cfgjson.ReactionEmoji is not null && userWasWarned)
{
var emoji = await Program.discord.GetApplicationEmojiAsync(Program.cfgjson.ReactionEmoji.Delete);
await logMsg.CreateReactionAsync(emoji);
Expand Down