diff --git a/ReallifeGamemode.Server/Services/NotificationService.cs b/ReallifeGamemode.Server/Services/NotificationService.cs index 05ca5f6a..649e825d 100644 --- a/ReallifeGamemode.Server/Services/NotificationService.cs +++ b/ReallifeGamemode.Server/Services/NotificationService.cs @@ -22,14 +22,14 @@ namespace ReallifeGamemode.Server.Services /// /// Der Spieler, der die Benachrichtigung erhalten soll /// Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll - public static void SendNotification(Player player, string message) + public static void SendNotification(Player player, string message, bool flashing = true) { if (player == null || !player.IsLoggedIn()) { return; } - player.SendNotification(message); + player.SendNotification(message, flashing); } /// @@ -37,35 +37,35 @@ namespace ReallifeGamemode.Server.Services /// /// Der Spieler, der die Benachrichtigung erhalten soll /// Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll - public static void SendErrorNotification(Player player, string message) + public static void SendErrorNotification(Player player, string message, bool flashing = true) { if (message.EndsWith(".")) { message.Substring(0, message.Length - 1); } - SendNotification(player, $"~r~Fehler:~n~~s~{message}"); + SendNotification(player, $"~r~Fehler:~n~~s~{message}", flashing); } /// /// Sendet eine Benachrichtigung an alle Spieler /// /// Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll - public static void SendServerNotification(string message) => NAPI.Pools.GetAllPlayers().ForEach(player => SendNotification(player, message)); + public static void SendServerNotification(string message, bool flashing = true) => NAPI.Pools.GetAllPlayers().ForEach(player => SendNotification(player, message, flashing)); /// /// Sendet eine Benachrichtigung an die Mitglieder einer Fraktion /// /// Die Fraktion, deren Mitglieder diese Benachrichtigung erhalten soll /// Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll - public static void SendFactionNotification(Faction faction, string message) => SendFactionNotification(new List() { faction }, message); + public static void SendFactionNotification(Faction faction, string message, bool flashing = true) => SendFactionNotification(new List() { faction }, message, flashing); /// /// Sendet eine Benachrichtigung an die Mitglieder mehrerer Fraktionen /// /// Die Liste an Fraktionen, deren Mitglieder diese Benachrichtigung erhalten sollen /// Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll - public static void SendFactionNotification(List factions, string message) + public static void SendFactionNotification(List factions, string message, bool flashing = true) { foreach (Player player in NAPI.Pools.GetAllPlayers()) { @@ -74,7 +74,7 @@ namespace ReallifeGamemode.Server.Services if (userFaction != null && factions.Find(faction => faction.Id == userFaction.Id) != null) { - SendNotification(player, message); + SendNotification(player, message, flashing); } } } @@ -83,30 +83,30 @@ namespace ReallifeGamemode.Server.Services /// Sendet eine Nachricht an die Mitglieder der Strafverfolgungsbehörden /// /// Die Nachricht, die den Beamten als Benachrichtigung zugestellt werden soll - public static void SendPolicingNotification(string message) => SendFactionNotificationByFactionIds(new List() { 1, 3 }, $"!{{#8181E9}}HQ-Meldung:~n~~s~{message}"); + public static void SendPolicingNotification(string message, bool flashing = true) => SendFactionNotificationByFactionIds(new List() { 1, 3 }, $"!{{#8181E9}}HQ-Meldung:~n~~s~{message}", flashing); /// /// Sendet eine Benachrichtigung an alle Spieler mit einem bestimmten Admin-Level /// /// Das Admin-Level, dass für den Erhalt dieser Benachrichtigung erforderlich ist /// Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll - public static void SendAdminLevelNotification(AdminLevel minLevel, string message) + public static void SendAdminLevelNotification(AdminLevel minLevel, string message, bool flashing = true) { NAPI.Pools.GetAllPlayers() .Where(player => player.IsLoggedIn()) .Where(player => player.GetUser().IsAdmin(minLevel)).ToList() - .ForEach(player => SendNotification(player, message)); + .ForEach(player => SendNotification(player, message, flashing)); } /// /// Sendet eine Benachrichtigung an alle Spieler, die sich im T-Support befinden /// /// Die Nachricht, die den Spielern als Benachrichtigung zugestellt werden soll - public static void SendDutyTeamMemberNotification(string message) + public static void SendDutyTeamMemberNotification(string message, bool flashing = true) { NAPI.Pools.GetAllPlayers() .Where(player => player.IsAdminDuty()).ToList() - .ForEach(player => SendNotification(player, message)); + .ForEach(player => SendNotification(player, message, flashing)); } /// @@ -115,11 +115,11 @@ namespace ReallifeGamemode.Server.Services /// Position, von der die Distanz ermittelt wird /// Distanz, bis zu welcher Spieler benachrichtigt werden /// Die Nachricht, die dem Spieler als Benachrichtigung zugestellt werden soll - internal static void SendRangeNotification(Vector3 position, int range, string message) + internal static void SendRangeNotification(Vector3 position, int range, string message, bool flashing = true) { NAPI.Pools.GetAllPlayers() .Where(player => player.Position.DistanceTo(position) <= range).ToList() - .ForEach(player => SendNotification(player, message)); + .ForEach(player => SendNotification(player, message, flashing)); } /// @@ -127,11 +127,11 @@ namespace ReallifeGamemode.Server.Services /// /// Die Gruppe, deren Mitglieder diese Benachrichtigung erhalten soll /// Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll - public static void SendGroupNotification(Group group, string message) + public static void SendGroupNotification(Group group, string message, bool flashing = true) { NAPI.Pools.GetAllPlayers() .Where(player => player.GetUser().Group.Id == group.Id).ToList() - .ForEach(player => SendNotification(player, $"!{{FF8080}}Gruppe:~n~~s~{message}")); + .ForEach(player => SendNotification(player, $"!{{FF8080}}Gruppe:~n~~s~{message}", flashing)); } /// @@ -139,13 +139,13 @@ namespace ReallifeGamemode.Server.Services /// /// Der Beruf, dessen Arbeiter diese Benachrichtigung erhalten soll /// Die Nachricht, die den Mitgliedern als Benachrichtigung zugestellt werden soll - public static void SendJobNotification(JobBase job, string message) => job.GetUsersInJob().ForEach(player => SendNotification(player, message)); + public static void SendJobNotification(JobBase job, string message, bool flashing = true) => job.GetUsersInJob().ForEach(player => SendNotification(player, message, flashing)); - internal static void SendFactionNotificationByFactionIds(List factionIds, string message) + internal static void SendFactionNotificationByFactionIds(List factionIds, string message, bool flashing = true) { using (var dbContext = new DatabaseContext()) { - SendFactionNotification(dbContext.Factions.Where(faction => factionIds.Contains(faction.Id)).ToList(), message); + SendFactionNotification(dbContext.Factions.Where(faction => factionIds.Contains(faction.Id)).ToList(), message, flashing); } } }