mirror of
https://github.com/RPCS3/discord-bot.git
synced 2026-01-31 01:25:22 +01:00
updating more stuff
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user