updating more stuff

This commit is contained in:
13xforever
2025-03-09 12:54:24 +05:00
parent 1781c0ef94
commit 956ead85f7
8 changed files with 22 additions and 35 deletions

View File

@@ -39,9 +39,9 @@
<AdditionalFiles Include="..\win32_error_codes*.txt" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DSharpPlus" Version="5.0.0-nightly-02463" />
<PackageReference Include="DSharpPlus.Commands" Version="5.0.0-nightly-02463" />
<PackageReference Include="DSharpPlus.Interactivity" Version="5.0.0-nightly-02463" />
<PackageReference Include="DSharpPlus" Version="5.0.0-nightly-02465" />
<PackageReference Include="DSharpPlus.Commands" Version="5.0.0-nightly-02465" />
<PackageReference Include="DSharpPlus.Interactivity" Version="5.0.0-nightly-02465" />
<PackageReference Include="Google.Apis.Drive.v3" Version="1.69.0.3703" />
<PackageReference Include="ksemenenko.ColorThief" Version="1.1.1.4" />
<PackageReference Include="MathParser.org-mXparser" Version="6.1.0" />

View File

@@ -95,7 +95,7 @@ internal static class ModProvider
return;
var modRole = modRoleList.First().Value;
var members = await guild.GetAllMembersAsync().ToListAsync();
var members = guild.GetAllMembersAsync().ToList();
var guildMods = members.Where(m => m.Roles.Any(r => r.Id == modRole.Id) && !m.IsBot && !m.IsCurrent).ToList();
foreach (var mod in guildMods)
{

View File

@@ -85,12 +85,11 @@ internal static class GlobalMessageCache
var fetchCount = Math.Max(count - cacheCount, 0);
if (fetchCount > 0)
{
IAsyncEnumerable<DiscordMessage> fetchStream;
List<DiscordMessage> fetchedList;
if (result.Count > 0)
fetchStream = ch.GetMessagesBeforeAsync(result[0].Id, fetchCount);
fetchedList = ch.GetMessagesBeforeAsync(result[0].Id, fetchCount).ToList();
else
fetchStream = ch.GetMessagesAsync(fetchCount);
var fetchedList = await fetchStream.ToListAsync();
fetchedList = ch.GetMessagesAsync(fetchCount).ToList();
result.AddRange(fetchedList);
if (queue.Count < Config.ChannelMessageHistorySize)
lock (queue.SyncObj)
@@ -120,7 +119,7 @@ internal static class GlobalMessageCache
IReadOnlyList<DiscordMessage> fetchedList;
if (result.Any())
{
fetchedList = await ch.GetMessagesBeforeAsync(result[0].Id, fetchCount).ToListAsync();
fetchedList = ch.GetMessagesBeforeAsync(result[0].Id, fetchCount).ToList();
if (queue.Count < Config.ChannelMessageHistorySize)
lock (queue.SyncObj)
{
@@ -131,7 +130,7 @@ internal static class GlobalMessageCache
}
}
else
fetchedList = await ch.GetMessagesBeforeAsync(msgId, fetchCount).ToListAsync();
fetchedList = ch.GetMessagesBeforeAsync(msgId, fetchCount).ToList();
result.AddRange(fetchedList);
}
return result;

View File

@@ -92,7 +92,7 @@ internal static class Starbucks
select msg;
foreach (var message in messagesToCheck)
{
var reactionUsers = await message.GetReactionsAsync(Config.Reactions.Starbucks).ToListAsync();
var reactionUsers = message.GetReactionsAsync(Config.Reactions.Starbucks).ToList();
if (reactionUsers.Count > 0)
checkTasks.Add(CheckMessageAsync(client, channel, reactionUsers[0], message, Config.Reactions.Starbucks, true));
}
@@ -144,7 +144,7 @@ internal static class Starbucks
if (await message.Author.IsWhitelistedAsync(client, channel.Guild).ConfigureAwait(false))
return;
var users = await message.GetReactionsAsync(emoji).ToListAsync();
var users = message.GetReactionsAsync(emoji).ToList();
if (users.Any(u => u.IsCurrent))
return;

View File

@@ -25,12 +25,13 @@ public static partial class CommandContextExtensions
await using var scope = tctx.Extension.ServiceProvider.CreateAsyncScope();
var cctx = new TextConverterContext
{
User = ctx.User,
Channel = ctx.Channel,
User = tctx.User,
Channel = tctx.Channel,
Message = tctx.Message,
Command = tctx.Command,
RawArguments = word,
PrefixLength = tctx.Prefix?.Length ?? 0,
Splicer = DefaultTextArgumentSplicer.Splice,
Extension = tctx.Extension,
ServiceScope = scope,

View File

@@ -74,11 +74,12 @@ public static class DiscordClientExtensions
{
try
{
showBoth ??= message.Channel.IsPrivate;
var canReact = message.Channel.IsPrivate || message.Channel.PermissionsFor(message.Channel.Guild.CurrentMember).HasPermission(DiscordPermission.AddReactions);
var isDm = message.Channel?.IsPrivate ?? true;
showBoth ??= isDm;
var canReact = isDm || (message.Channel?.PermissionsFor(message.Channel.Guild.CurrentMember).HasPermission(DiscordPermission.AddReactions) ?? false);
if (canReact)
await message.CreateReactionAsync(emoji).ConfigureAwait(false);
if ((!canReact || showBoth.Value) && !string.IsNullOrEmpty(fallbackMessage))
if ((!canReact || showBoth.Value) && !string.IsNullOrEmpty(fallbackMessage) && message.Channel is not null)
await message.Channel.SendMessageAsync(fallbackMessage).ConfigureAwait(false);
}
catch (Exception e)

View File

@@ -50,11 +50,6 @@ public static class EnumerableExtensions
.Select(g => g.Select(x => x.item));
}
public static async Task<List<T>> ToListAsync<T>(this IAsyncEnumerable<T> items)
{
var result = new List<T>();
await foreach(var item in items.ConfigureAwait(false))
result.Add(item);
return result;
}
public static List<T> ToList<T>(this IAsyncEnumerable<T> items)
=> items.ToBlockingEnumerable().ToList();
}

View File

@@ -28,17 +28,8 @@ internal static class Watchdog
{
Config.TelemetryClient?.TrackEvent("socket-deadlock-potential");
Config.Log.Warn("Potential socket deadlock detected, reconnecting…");
//await client.ReconnectAsync(true).ConfigureAwait(false);
try
{
await client.DisconnectAsync().ConfigureAwait(false);
await client.ConnectAsync().ConfigureAwait(false);
await Task.Delay(Config.SocketDisconnectCheckIntervalInSec, Config.Cts.Token).ConfigureAwait(false);
}
catch (Exception e)
{
Config.Log.Error(e, "Failed to manually reconnect");
}
await client.ReconnectAsync().ConfigureAwait(false);
await Task.Delay(Config.SocketDisconnectCheckIntervalInSec, Config.Cts.Token).ConfigureAwait(false);
if (IsOk)
{
Config.Log.Info("Looks like we're back in business");