From b3686e8197238777aabe116b8c7e908edc821a54 Mon Sep 17 00:00:00 2001 From: Sanae Date: Thu, 31 Mar 2022 13:56:48 -0600 Subject: [PATCH] Delay fm sync by 15s --- Server/Program.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Server/Program.cs b/Server/Program.cs index e55a749..62224c7 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -85,9 +85,14 @@ server.PacketHandler = (c, p) => { ConcurrentBag clientBag = (ConcurrentBag) (c.Metadata["shineSync"] ??= new ConcurrentBag()); clientBag.Clear(); break; - case "WaterfallWorldHomeStage" when gamePacket.ScenarioNum > 0: + case "WaterfallWorldHomeStage" when gamePacket.ScenarioNum >= 0: + bool wasSpeedrun = (bool) c.Metadata["speedrun"]!; c.Metadata["speedrun"] = false; - ClientSyncShineBag(c); + if (wasSpeedrun) + Task.Run(async () => { + await Task.Delay(15000); + await ClientSyncShineBag(c); + }); break; } break; @@ -341,9 +346,9 @@ CommandHandler.RegisterCommand("shine", args => { SyncShineBag(); return "Synced shine bag automatically"; case "send" when args.Length >= 3: - if(int.TryParse(args[1], out int id)) { + if (int.TryParse(args[1], out int id)) { Client[] players = args[2] == "*" ? server.Clients.Where(c => c.Connected).ToArray() : server.Clients.Where(c => c.Connected && args[3..].Contains(c.Name)).ToArray(); - Parallel.ForEachAsync(players, async (c,_) => { + Parallel.ForEachAsync(players, async (c, _) => { await c.Send(new ShinePacket { ShineId = id });