diff --git a/src/GameLogic/PlugIns/PeriodicTasks/MiniGameStartBasePlugIn.cs b/src/GameLogic/PlugIns/PeriodicTasks/MiniGameStartBasePlugIn.cs index 7c3e6dc..e8e77fe 100644 --- a/src/GameLogic/PlugIns/PeriodicTasks/MiniGameStartBasePlugIn.cs +++ b/src/GameLogic/PlugIns/PeriodicTasks/MiniGameStartBasePlugIn.cs @@ -102,6 +102,14 @@ public abstract class MiniGameStartBasePlugIn : Peri return; } + // Sub-minute entrance windows (e.g. a 30s test window) have (int)TotalMinutes == 0, so the + // per-minute loop below would send nothing and players would get no "event opened" notification. + // Announce once up front in that case (>= 1 minute windows are unaffected). + if ((int)enterDuration.TotalMinutes == 0 && this.Configuration?.EntranceOpenedMessage is { } shortOpenMessage) + { + await state.Context.SendGlobalNotificationAsync(string.Format(shortOpenMessage, 1)).ConfigureAwait(false); + } + for (var remainingMinutes = (int)enterDuration.TotalMinutes; remainingMinutes > 0; remainingMinutes--) { if (this.Configuration?.EntranceOpenedMessage is { } openMessage)