add flashing parameter to notificationservice

This commit is contained in:
Luke
2021-07-05 11:06:45 +02:00
parent 0fe0c69e0c
commit f70218e85a

View File

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