From 146b366e4468ad2a3615df4b0c039dca804ee563 Mon Sep 17 00:00:00 2001 From: Robert Paciorek Date: Sat, 6 Apr 2024 23:28:16 +0000 Subject: [PATCH] fix Public Message, add option to disable Events - Position info and Boxes on races works (thanks to Public Message fix) --- src/CommandHandlers/PublicMessageHandlers.cs | 2 +- src/Core/Room.cs | 1 - src/Core/WorldEvent.cs | 9 +++++++-- src/appsettings.json | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/CommandHandlers/PublicMessageHandlers.cs b/src/CommandHandlers/PublicMessageHandlers.cs index 80266f1..3b6b657 100644 --- a/src/CommandHandlers/PublicMessageHandlers.cs +++ b/src/CommandHandlers/PublicMessageHandlers.cs @@ -17,9 +17,9 @@ class RacingPMHandler : CommandHandler data.Add("M", new string[] { receivedObject.Get("p").Get("M") }); + data.Add("MID", client.ClientID); arr.Add(data); p.Add("arr", arr); - p.Add("MID", client.ClientID); cmd.Add("c", "PM"); cmd.Add("p", p); NetworkPacket packet = NetworkObject.WrapObject(1, 13, cmd).Serialize(); diff --git a/src/Core/Room.cs b/src/Core/Room.cs index fb493b9..08b23bc 100644 --- a/src/Core/Room.cs +++ b/src/Core/Room.cs @@ -38,7 +38,6 @@ public class Room { public IEnumerable Clients { get { - List list; roomLock.EnterReadLock(); try { return new List(clients); diff --git a/src/Core/WorldEvent.cs b/src/Core/WorldEvent.cs index 4640ce0..abc1bbb 100644 --- a/src/Core/WorldEvent.cs +++ b/src/Core/WorldEvent.cs @@ -84,8 +84,13 @@ class WorldEvent { nextStartTime = DateTime.UtcNow.AddMinutes(minutes); else nextStartTime = startTime.AddMinutes(Configuration.ServerConfiguration.EventTimer); - nextStartTimeString = nextStartTime.ToString("MM/dd/yyyy HH:mm:ss");; - SetTimer((nextStartTime - DateTime.UtcNow).TotalSeconds - 120, PreInit); + nextStartTimeString = nextStartTime.ToString("MM/dd/yyyy HH:mm:ss"); + + double timeout = (nextStartTime - DateTime.UtcNow).TotalSeconds - 120; + if (timeout > 0) + SetTimer((nextStartTime - DateTime.UtcNow).TotalSeconds - 120, PreInit); + else + Console.WriteLine($"Events disabled"); } // reset event and set timer to call PreEndEvent, send new WE_ info diff --git a/src/appsettings.json b/src/appsettings.json index 959be1f..4eda7c5 100644 --- a/src/appsettings.json +++ b/src/appsettings.json @@ -15,7 +15,7 @@ "// FirstEventTimer": "time to start of first world event (battle ship event) after start MMO server", "FirstEventTimer": 3, - "// EventTimer": "time between start of world events (battle ship events)", + "// EventTimer": "time between start of world events (battle ship events), set both timer values (EventTimer and FirstEventTimer) to 0 to disable events", "EventTimer": 30, "// RacingMaxPlayers": "maximum players allowed in Thunder Run Racing (no more than 6)",