diff --git a/Server/Commands/Admin.cs b/Server/Commands/Admin.cs index 0afed36e..06632001 100644 --- a/Server/Commands/Admin.cs +++ b/Server/Commands/Admin.cs @@ -16,6 +16,7 @@ using reallife_gamemode.Server.Util; using reallife_gamemode.Server.Managers; using reallife_gamemode.Server.Saves; using reallife_gamemode.Server.Business; +using System.Text.RegularExpressions; /** * @overview Life of German Reallife - Admin Commands (Admin.cs) @@ -38,7 +39,9 @@ namespace reallife_gamemode.Server.Commands return; } - string publicMessage = "~b~(( " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + message + " ))"; + message = Regex.Replace(message, "#([0-9A-Fa-f]{6})", m => "!{" + m.Groups[0].Value + "}"); + + string publicMessage = "~b~(( " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + message + " ~b~))"; NAPI.Chat.SendChatMessageToAll(publicMessage); } @@ -151,6 +154,8 @@ namespace reallife_gamemode.Server.Commands return; } + msg = Regex.Replace(msg, "(!{(.*)})", ""); + player.SendChatMessage("~y~PM an " + target.Name + ": " + msg + " "); string Message = "~y~PM von " + player.GetUser().AdminLevel.GetName() + " " + player.Name + ": " + msg + ""; NAPI.Chat.SendChatMessageToPlayer(target, Message); @@ -203,6 +208,8 @@ namespace reallife_gamemode.Server.Commands return; } + message = Regex.Replace(message, "(!{(.*)})", ""); + ChatService.BroadcastAdmin("~r~[ADMINCHAT]: " + player.GetUser().AdminLevel.GetName() + " " + player.Name + "~w~: " + message, AdminLevel.ADMIN); } @@ -505,10 +512,12 @@ namespace reallife_gamemode.Server.Commands return; } + reason = Regex.Replace(reason, "(!{(.*)})", ""); + target.GetUser().BanPlayer(admin, reason, mins); } - [Command("unban", "~m~Benutzung: ~s~/unban [Name] ", GreedyArg = true)] + [Command("unban", "~m~Benutzung: ~s~/unban [Name] ")] public void CmdAdminUnban(Client admin, string userName) { if (!admin.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true) diff --git a/Server/Commands/Faction.cs b/Server/Commands/Faction.cs index dbb64f13..e7737612 100644 --- a/Server/Commands/Faction.cs +++ b/Server/Commands/Faction.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; /** * @overview Life of German Reallife - Faction Commands (Faction.cs) @@ -32,6 +33,8 @@ namespace reallife_gamemode.Server.Commands return; } + message = Regex.Replace(message, "(!{(.*)})", ""); + string broadcastMessage = "!{02FCFF}** " + player.GetUser().GetFactionRank().RankName + " " + player.Name + ": " + message + " )) **"; ChatService.BroadcastFaction(broadcastMessage, f); } @@ -46,6 +49,8 @@ namespace reallife_gamemode.Server.Commands return; } + message = Regex.Replace(message, "(!{(.*)})", ""); + string broadcastMessage = "!{33AA33}** " + player.GetUser().GetFactionRank().RankName + " " + player.Name + ": " + message + ", over **"; ChatService.BroadcastFaction(broadcastMessage, f); } @@ -60,6 +65,8 @@ namespace reallife_gamemode.Server.Commands return; } + message = Regex.Replace(message, "(!{(.*)})", ""); + string broadcastMessage = "!{CC3333}** " + player.GetUser().GetFactionRank().RankName + " " + player.Name + ": " + message + ", over **"; using (var context = new DatabaseContext()) { @@ -196,6 +203,8 @@ namespace reallife_gamemode.Server.Commands return; } + message = Regex.Replace(message, "(!{(.*)})", ""); + string broadcastMsg = "~y~[" + player.GetUser().GetFaction().Name + "] " + player.Name + ": " + message; NAPI.Pools.GetAllPlayers().ForEach(p => diff --git a/Server/Events/Chat.cs b/Server/Events/Chat.cs index 42cfe262..5079f560 100644 --- a/Server/Events/Chat.cs +++ b/Server/Events/Chat.cs @@ -1,4 +1,5 @@ using GTANetworkAPI; +using System.Text.RegularExpressions; namespace reallife_gamemode.Server.Events { @@ -7,7 +8,9 @@ namespace reallife_gamemode.Server.Events [ServerEvent(Event.ChatMessage)] public void ChatEvent(Client player, string message) { - NAPI.Player.GetPlayersInRadiusOfPlayer(10, player).ForEach(p => p.SendChatMessage($"{player.Name} sagt: {message}")); + string serverMsg = Regex.Replace(message, "(!{(.*)})", ""); + if (serverMsg.Trim().Length == 0) return; + NAPI.Player.GetPlayersInRadiusOfPlayer(10, player).ForEach(p => p.SendChatMessage($"{player.Name} sagt: {serverMsg}")); } } } \ No newline at end of file