Update Discord.Net

This commit is contained in:
Noi 2022-03-11 22:43:54 -08:00
parent 1f3283b853
commit 75a807a330
7 changed files with 25 additions and 23 deletions

View file

@ -1,4 +1,5 @@
using Discord.WebSocket; using Discord;
using Discord.WebSocket;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Noikoio.RegexBot.ConfigItem; using Noikoio.RegexBot.ConfigItem;
using Npgsql; using Npgsql;
@ -81,7 +82,7 @@ namespace Noikoio.RegexBot.EntityCache
} }
// Guild member information has changed // Guild member information has changed
private async Task Client_GuildMemberUpdated(SocketGuildUser arg1, SocketGuildUser arg2) private async Task Client_GuildMemberUpdated(Cacheable<SocketGuildUser, ulong> arg1, SocketGuildUser arg2)
{ {
await Task.Run(async () => await Task.Run(async () =>
{ {
@ -113,13 +114,13 @@ namespace Noikoio.RegexBot.EntityCache
} }
// User left the guild. No new data, but gives an excuse to update the cache date. // User left the guild. No new data, but gives an excuse to update the cache date.
private async Task Client_UserLeft(SocketGuildUser arg) private async Task Client_UserLeft(SocketGuild guild, SocketUser user)
{ {
await Task.Run(async () => await Task.Run(async () =>
{ {
try try
{ {
await SqlHelper.UpdateGuildMemberAsync(arg); await SqlHelper.UpdateGuildMemberAsync((SocketGuildUser)user);
} }
catch (NpgsqlException ex) catch (NpgsqlException ex)
{ {

View file

@ -113,7 +113,7 @@ namespace Noikoio.RegexBot.Module.AutoMod
if (targetName == "_") if (targetName == "_")
{ {
if (et == EntityType.Channel) return m.Channel; if (et == EntityType.Channel) return m.Channel;
else return await m.Author.GetOrCreateDMChannelAsync(); else return await m.Author.CreateDMChannelAsync();
} }
EntityName ei = new EntityName(targetName, et); EntityName ei = new EntityName(targetName, et);
@ -141,7 +141,7 @@ namespace Noikoio.RegexBot.Module.AutoMod
if (ei.Id.HasValue) if (ei.Id.HasValue)
{ {
// The easy way // The easy way
return await Client.GetUser(ei.Id.Value).GetOrCreateDMChannelAsync(); return await Client.GetUser(ei.Id.Value).CreateDMChannelAsync();
} }
// The hard way // The hard way
@ -150,7 +150,7 @@ namespace Noikoio.RegexBot.Module.AutoMod
if (string.Equals(ei.Name, u.Username, StringComparison.OrdinalIgnoreCase) || if (string.Equals(ei.Name, u.Username, StringComparison.OrdinalIgnoreCase) ||
string.Equals(ei.Name, u.Nickname, StringComparison.OrdinalIgnoreCase)) string.Equals(ei.Name, u.Nickname, StringComparison.OrdinalIgnoreCase))
{ {
return await u.GetOrCreateDMChannelAsync(); return await u.CreateDMChannelAsync();
} }
} }
} }

View file

@ -70,10 +70,10 @@ namespace Noikoio.RegexBot.Module.EntryAutoRole
return Task.CompletedTask; return Task.CompletedTask;
} }
private Task Client_UserLeft(SocketGuildUser arg) private Task Client_UserLeft(SocketGuild guild, SocketUser user)
{ {
if (GetState<object>(arg.Guild.Id) == null) return Task.CompletedTask; if (GetState<object>(guild.Id) == null) return Task.CompletedTask;
lock (_roleWaitLock) _roleWaitlist.RemoveAll(m => m.GuildId == arg.Guild.Id && m.UserId == arg.Id); lock (_roleWaitLock) _roleWaitlist.RemoveAll(m => m.GuildId == guild.Id && m.UserId == user.Id);
return Task.CompletedTask; return Task.CompletedTask;
} }

View file

@ -186,7 +186,7 @@ namespace Noikoio.RegexBot.Module.ModCommands.Commands
if (_notifyMsg == null) return true; if (_notifyMsg == null) return true;
if (target == null) return false; if (target == null) return false;
var ch = await target.GetOrCreateDMChannelAsync(); var ch = await target.CreateDMChannelAsync();
string outresult = _notifyMsg; string outresult = _notifyMsg;
outresult = outresult.Replace("$s", target.Guild.Name); outresult = outresult.Replace("$s", target.Guild.Name);
outresult = outresult.Replace("$r", reason ?? NotifyReasonNone); outresult = outresult.Replace("$r", reason ?? NotifyReasonNone);

View file

@ -64,17 +64,17 @@ namespace Noikoio.RegexBot.Module.ModLogs
await AddOrUpdateCacheItemAsync(after); await AddOrUpdateCacheItemAsync(after);
} }
private async Task Client_MessageDeleted(Cacheable<Discord.IMessage, ulong> msg, ISocketMessageChannel channel) private async Task Client_MessageDeleted(Cacheable<IMessage, ulong> msg, Cacheable<IMessageChannel, ulong> channel)
{ {
if (channel is IDMChannel) return; // No DMs if (channel.Value is IDMChannel) return; // No DMs
await ProcessReportMessage(true, msg.Id, channel, null); await ProcessReportMessage(true, msg.Id, channel.Value, null);
} }
#endregion #endregion
#region Reporting #region Reporting
// Reports an edited or deleted message as if it were a log entry (even though it's not). // Reports an edited or deleted message as if it were a log entry (even though it's not).
private async Task ProcessReportMessage( private async Task ProcessReportMessage(
bool isDelete, ulong messageId, ISocketMessageChannel ch, string editMsg) bool isDelete, ulong messageId, IMessageChannel ch, string editMsg)
{ {
ulong guildId; ulong guildId;
if (ch is SocketTextChannel sch) if (ch is SocketTextChannel sch)
@ -146,7 +146,7 @@ namespace Noikoio.RegexBot.Module.ModLogs
const string ReportCutoffNotify = "**Message length too long; showing first {0} characters.**\n\n"; const string ReportCutoffNotify = "**Message length too long; showing first {0} characters.**\n\n";
private EmbedBuilder CreateReportEmbed( private EmbedBuilder CreateReportEmbed(
bool isDelete, bool isDelete,
EntityCache.CacheUser ucd, ulong messageId, ISocketMessageChannel chInfo, EntityCache.CacheUser ucd, ulong messageId, IMessageChannel chInfo,
(string, string) content, // Item1 = cached content. Item2 = post-edit message (null if isDelete) (string, string) content, // Item1 = cached content. Item2 = post-edit message (null if isDelete)
DateTimeOffset msgCreated, DateTimeOffset? msgEdited) DateTimeOffset msgCreated, DateTimeOffset? msgEdited)
{ {

View file

@ -1,4 +1,5 @@
using Discord.WebSocket; using Discord;
using Discord.WebSocket;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Noikoio.RegexBot.ConfigItem; using Noikoio.RegexBot.ConfigItem;
using System.Linq; using System.Linq;
@ -34,12 +35,12 @@ namespace Noikoio.RegexBot.Module.PendingAutoRole {
} }
} }
private async Task Client_GuildMemberUpdated(SocketGuildUser previous, SocketGuildUser current) { private async Task Client_GuildMemberUpdated(Cacheable<SocketGuildUser, ulong> previous, SocketGuildUser current) {
var conf = GetState<ModuleConfig>(current.Guild.Id); var conf = GetState<ModuleConfig>(current.Guild.Id);
if (conf == null) return; if (conf == null) return;
if (!(previous.IsPending.HasValue && current.IsPending.HasValue)) return; if (!(previous.Value.IsPending.HasValue && current.IsPending.HasValue)) return;
if (previous.IsPending == true && current.IsPending == false) { if (previous.Value.IsPending == true && current.IsPending == false) {
var r = GetRole(current.Guild); var r = GetRole(current.Guild);
if (r == null) { if (r == null) {
await Log($"Failed to update {current} - was the role renamed or deleted?"); await Log($"Failed to update {current} - was the role renamed or deleted?");

View file

@ -7,7 +7,7 @@
<Description>Highly configurable Discord moderation bot</Description> <Description>Highly configurable Discord moderation bot</Description>
<Authors>Noikoio</Authors> <Authors>Noikoio</Authors>
<Company /> <Company />
<Version>2.6.7</Version> <Version>2.6.8</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -15,9 +15,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Discord.Net" Version="2.4.0" /> <PackageReference Include="Discord.Net" Version="3.4.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Npgsql" Version="5.0.10" /> <PackageReference Include="Npgsql" Version="5.0.12" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" /> <PackageReference Include="System.ValueTuple" Version="4.5.0" />
</ItemGroup> </ItemGroup>