Update D.NET version and add bulk deletion support

This commit is contained in:
Ske 2019-07-21 17:16:04 +02:00
parent 4fe80749c4
commit 11eabe2e3d
5 changed files with 26 additions and 6 deletions

View file

@ -83,7 +83,8 @@ namespace PluralKit.Bot
.AddSingleton<IDiscordClient, DiscordShardedClient>(_ => new DiscordShardedClient(new DiscordSocketConfig
{
MessageCacheSize = 0
MessageCacheSize = 0,
ExclusiveBulkDelete = true
}))
.AddSingleton<Bot>()
@ -161,6 +162,7 @@ namespace PluralKit.Bot
_client.MessageReceived += (msg) => { var _ = MessageReceived(msg).CatchException(HandleRuntimeError); return Task.CompletedTask; };
_client.ReactionAdded += (message, channel, reaction) => { var _ = _proxy.HandleReactionAddedAsync(message, channel, reaction).CatchException(HandleRuntimeError); return Task.CompletedTask; };
_client.MessageDeleted += (message, channel) => { var _ = _proxy.HandleMessageDeletedAsync(message, channel).CatchException(HandleRuntimeError); return Task.CompletedTask; };
_client.MessagesBulkDeleted += (messages, channel) => { var _ = _proxy.HandleMessageBulkDeleteAsync(messages, channel).CatchException(HandleRuntimeError); return Task.CompletedTask; };
_client.Log += FrameworkLog;
}

View file

@ -10,9 +10,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Discord.Net.Commands" Version="2.0.1" />
<PackageReference Include="Discord.Net.Webhook" Version="2.0.1" />
<PackageReference Include="Discord.Net.WebSocket" Version="2.0.1" />
<PackageReference Include="Discord.Net.Commands" Version="2.1.1" />
<PackageReference Include="Discord.Net.Webhook" Version="2.1.1" />
<PackageReference Include="Discord.Net.WebSocket" Version="2.1.1" />
<PackageReference Include="Humanizer.Core" Version="2.6.2" />
<PackageReference Include="Sentry" Version="2.0.0-beta2" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0006" />

View file

@ -271,6 +271,12 @@ namespace PluralKit.Bot
await _messageStorage.Delete(message.Id);
}
public async Task HandleMessageBulkDeleteAsync(IReadOnlyCollection<Cacheable<IMessage, ulong>> messages, IMessageChannel channel)
{
_logger.Information("Bulk deleting {Count} messages in channel {Channel}", messages.Count, channel.Id);
await _messageStorage.BulkDelete(messages.Select(m => m.Id).ToList());
}
private string FixClyde(string name)
{
var match = Regex.Match(name, "clyde", RegexOptions.IgnoreCase);