mirror of
https://github.com/RPCS3/discord-bot.git
synced 2025-02-28 21:55:36 +00:00
Merge pull request #893 from 13xforever/vnext
Kick users if they ignore warning about invite links
This commit is contained in:
commit
5ee0d8d490
@ -11,7 +11,7 @@
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
|
||||
<PackageReference Include="StrawberryShake.CodeGeneration.CSharp.Analyzers" Version="12.11.1" />
|
||||
<PackageReference Include="StrawberryShake.Transport.Http" Version="12.11.1" />
|
||||
<PackageReference Include="StrawberryShake.CodeGeneration.CSharp.Analyzers" Version="12.12.1" />
|
||||
<PackageReference Include="StrawberryShake.Transport.Http" Version="12.12.1" />
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -6,7 +6,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
|
||||
<PackageReference Include="Octokit" Version="0.52.0" />
|
||||
<PackageReference Include="Octokit" Version="1.0.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CompatApiClient\CompatApiClient.csproj" />
|
||||
|
@ -39,35 +39,35 @@
|
||||
<AdditionalFiles Include="..\win32_error_codes.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DSharpPlus" Version="4.3.0-nightly-01146" />
|
||||
<PackageReference Include="DSharpPlus.CommandsNext" Version="4.3.0-nightly-01146" />
|
||||
<PackageReference Include="DSharpPlus.Interactivity" Version="4.3.0-nightly-01146" />
|
||||
<PackageReference Include="DSharpPlus.SlashCommands" Version="4.3.0-nightly-01146" />
|
||||
<PackageReference Include="Google.Apis.Drive.v3" Version="1.57.0.2684" />
|
||||
<PackageReference Include="DSharpPlus" Version="4.3.0-nightly-01160" />
|
||||
<PackageReference Include="DSharpPlus.CommandsNext" Version="4.3.0-nightly-01160" />
|
||||
<PackageReference Include="DSharpPlus.Interactivity" Version="4.3.0-nightly-01160" />
|
||||
<PackageReference Include="DSharpPlus.SlashCommands" Version="4.3.0-nightly-01160" />
|
||||
<PackageReference Include="Google.Apis.Drive.v3" Version="1.57.0.2746" />
|
||||
<PackageReference Include="ksemenenko.ColorThief" Version="1.1.1.4" />
|
||||
<PackageReference Include="MathParser.org-mXparser" Version="5.0.6" />
|
||||
<PackageReference Include="MegaApiClient" Version="1.10.2" />
|
||||
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.20.0" />
|
||||
<PackageReference Include="Microsoft.ApplicationInsights.PerfCounterCollector" Version="2.20.0" />
|
||||
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.21.0" />
|
||||
<PackageReference Include="Microsoft.ApplicationInsights.PerfCounterCollector" Version="2.21.0" />
|
||||
<PackageReference Include="Microsoft.Azure.CognitiveServices.Vision.ComputerVision" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.6" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.6">
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.7">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.6" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.7" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.IO.RecyclableMemoryStream" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.TeamFoundationServer.Client" Version="16.170.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.16.1" />
|
||||
<PackageReference Include="Nerdbank.Streams" Version="2.8.57" />
|
||||
<PackageReference Include="Nerdbank.Streams" Version="2.8.61" />
|
||||
<PackageReference Include="NLog" Version="5.0.1" />
|
||||
<PackageReference Include="NLog.Extensions.Logging" Version="5.0.1" />
|
||||
<PackageReference Include="NReco.Text.AhoCorasickDoubleArrayTrie" Version="1.0.2" />
|
||||
<PackageReference Include="SharpCompress" Version="0.32.1" />
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta14" />
|
||||
<PackageReference Include="NReco.Text.AhoCorasickDoubleArrayTrie" Version="1.1.1" />
|
||||
<PackageReference Include="SharpCompress" Version="0.32.2" />
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta15" />
|
||||
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -26,14 +26,10 @@ internal static class DiscordInviteFilter
|
||||
private static readonly TimeSpan CacheDuration = TimeSpan.FromHours(24);
|
||||
|
||||
public static async Task OnMessageCreated(DiscordClient c, MessageCreateEventArgs args)
|
||||
{
|
||||
args.Handled = !await CheckMessageForInvitesAsync(c, args.Message).ConfigureAwait(false);
|
||||
}
|
||||
=> args.Handled = !await CheckMessageForInvitesAsync(c, args.Message).ConfigureAwait(false);
|
||||
|
||||
public static async Task OnMessageUpdated(DiscordClient c, MessageUpdateEventArgs args)
|
||||
{
|
||||
args.Handled = !await CheckMessageForInvitesAsync(c, args.Message).ConfigureAwait(false);
|
||||
}
|
||||
=> args.Handled = !await CheckMessageForInvitesAsync(c, args.Message).ConfigureAwait(false);
|
||||
|
||||
public static async Task CheckBacklogAsync(DiscordClient client, DiscordGuild guild)
|
||||
{
|
||||
@ -134,8 +130,9 @@ internal static class DiscordInviteFilter
|
||||
if (!await InviteWhitelistProvider.IsWhitelistedAsync(invite).ConfigureAwait(false))
|
||||
{
|
||||
if (!InviteCodeCache.TryGetValue(message.Author.Id, out HashSet<string> recentInvites))
|
||||
recentInvites = new HashSet<string>();
|
||||
var circumventionAttempt = !recentInvites.Add(invite.Code) && attemptedWorkaround; //do not flip, must add to cache always
|
||||
recentInvites = new();
|
||||
var repeatedInvitePost = !recentInvites.Add(invite.Code);
|
||||
var circumventionAttempt = repeatedInvitePost && attemptedWorkaround;
|
||||
InviteCodeCache.Set(message.Author.Id, recentInvites, CacheDuration);
|
||||
var removed = false;
|
||||
try
|
||||
@ -166,6 +163,21 @@ internal static class DiscordInviteFilter
|
||||
userMsg += "Please remove it and refrain from posting it again until you have received an approval from a moderator.";
|
||||
}
|
||||
await client.ReportAsync("🛃 An unapproved discord invite", message, reportMsg, null, null, null, ReportSeverity.Low).ConfigureAwait(false);
|
||||
if (repeatedInvitePost || recentInvites.Count > 1)
|
||||
try
|
||||
{
|
||||
var member = client.GetMember(message.Channel.Guild, message.Author);
|
||||
if (member is not null)
|
||||
{
|
||||
await member.RemoveAsync("Multiple invites after being warned").ConfigureAwait(false);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Config.Log.Warn(e, $"Failed to kick user {message.Author.GetUsernameWithNickname(client)} for repeated invite spam");
|
||||
}
|
||||
|
||||
await message.Channel.SendMessageAsync(userMsg).ConfigureAwait(false);
|
||||
if (circumventionAttempt)
|
||||
await Warnings.AddAsync(client, message, message.Author.Id, message.Author.Username, client.CurrentUser, "Attempted to circumvent discord invite filter", codeResolveMsg);
|
||||
|
Loading…
x
Reference in New Issue
Block a user