0
0
Fork 0
mirror of https://github.com/Sanae6/SmoOnlineServer.git synced 2024-11-28 14:13:05 +00:00

Delay fm sync by 15s

This commit is contained in:
Sanae 2022-03-31 13:56:48 -06:00
parent 4dee13a9d7
commit b3686e8197

View file

@ -85,9 +85,14 @@ server.PacketHandler = (c, p) => {
ConcurrentBag<int> clientBag = (ConcurrentBag<int>) (c.Metadata["shineSync"] ??= new ConcurrentBag<int>()); ConcurrentBag<int> clientBag = (ConcurrentBag<int>) (c.Metadata["shineSync"] ??= new ConcurrentBag<int>());
clientBag.Clear(); clientBag.Clear();
break; break;
case "WaterfallWorldHomeStage" when gamePacket.ScenarioNum > 0: case "WaterfallWorldHomeStage" when gamePacket.ScenarioNum >= 0:
bool wasSpeedrun = (bool) c.Metadata["speedrun"]!;
c.Metadata["speedrun"] = false; c.Metadata["speedrun"] = false;
ClientSyncShineBag(c); if (wasSpeedrun)
Task.Run(async () => {
await Task.Delay(15000);
await ClientSyncShineBag(c);
});
break; break;
} }
break; break;
@ -341,9 +346,9 @@ CommandHandler.RegisterCommand("shine", args => {
SyncShineBag(); SyncShineBag();
return "Synced shine bag automatically"; return "Synced shine bag automatically";
case "send" when args.Length >= 3: 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(); 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 { await c.Send(new ShinePacket {
ShineId = id ShineId = id
}); });