From bbb9935205085186b2e893c27d37e63015bdbb1c Mon Sep 17 00:00:00 2001 From: Mira <56395159+TheXorog@users.noreply.github.com> Date: Wed, 7 May 2025 00:14:50 +0200 Subject: [PATCH] fix: Fix duplicate sync task calls on startup --- Dependencies/Xorog.UniversalExtensions | 2 +- ProjectMakoto/Util/Initializers/SyncTasks.cs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Dependencies/Xorog.UniversalExtensions b/Dependencies/Xorog.UniversalExtensions index dadeb77e..8504368d 160000 --- a/Dependencies/Xorog.UniversalExtensions +++ b/Dependencies/Xorog.UniversalExtensions @@ -1 +1 @@ -Subproject commit dadeb77e1667b6785ee8368eb92b2bbe1efba06e +Subproject commit 8504368d352bd76e4486f6f3291936c0ae61ad0b diff --git a/ProjectMakoto/Util/Initializers/SyncTasks.cs b/ProjectMakoto/Util/Initializers/SyncTasks.cs index fa19c480..46419ba7 100644 --- a/ProjectMakoto/Util/Initializers/SyncTasks.cs +++ b/ProjectMakoto/Util/Initializers/SyncTasks.cs @@ -14,10 +14,13 @@ internal static class SyncTasks { internal static async Task GuildDownloadCompleted(Bot bot, DiscordClient sender, GuildDownloadCompletedEventArgs e) { + if (bot.status.DiscordGuildDownloadCompleted) + return; + + bot.status.DiscordGuildDownloadCompleted = true; + _ = Task.Run(async () => { - bot.status.DiscordGuildDownloadCompleted = true; - Log.Information("I'm on {GuildsCount} guilds.", e.Guilds.Count); _ = Task.Run(async () => @@ -121,8 +124,14 @@ internal static class SyncTasks }).Add(bot); } + internal static DateTime lastSyncTaskTime = DateTime.MinValue; internal static async Task ExecuteSyncTasks(Bot bot, DiscordShardedClient shardedClient) { + if (lastSyncTaskTime.GetTimespanSince() < TimeSpan.FromSeconds(30)) + return; + + lastSyncTaskTime = DateTime.UtcNow; + var Guilds = shardedClient.GetGuilds(); ObservableList runningTasks = new();