public static void OnChatMessage(GameClient client, ClientChatMessagePacket packet) { var channel = ChatManager.Current.GetChannel(packet.ChannelId); foreach (var otherClient in channel.Clients) { string message = String.Format(MessageFormat, DateTime.Now.ToString("HH:mm:ss"), client.SelectedHero.Name, HtmlTools.StripTagsRegexCompiled(packet.Message)); otherClient.Send(new ServerChatMessagePacket(message, channel.Id)); } }
public static void OnChatMessage(GameClient client, ClientChatMessagePacket packet) { var player = client.HeroEntity; var channel = ChatManager.Current.GetChannel(player.Zone.ChatChannel.Id); packet.Message.Trim(); if (channel != null && packet.Message != string.Empty) { // Strip out any nasty HTML tags that a player might try and inject packet.Message = HtmlTools.StripTagsCharArray(packet.Message); // Send the actual message to the user as requested var newPacket = new ServerChatMessagePacket(player.Name, packet.Message, channel.Id); channel.SendMessage(newPacket); } }
public static void OnChatMessage(GameClient client, ClientChatMessagePacket packet) { var player = client.HeroEntity; var zone = player.Zone; // Grab the service and fire off to it var chatService = zone.GetGameSystem<ChatService>(); bool result; try { result = chatService.HandleMessage(player, packet); } catch (Exception exception) { // It's invalid, we should kick out and let the player know they need to retry var msg = new ServerSendGameMessagePacket(GameMessage.ChatCommandInvalid, new List<string>() {packet.Message}); player.Client.Send(msg); return; } if (!result) { var channel = ChatManager.Current.GetChannel(player.Zone.ChatChannel.Id); packet.Message = packet.Message.Trim(); if (channel != null && packet.Message != string.Empty) { // Strip out any nasty HTML tags that a player might try and inject packet.Message = HtmlTools.StripTagsCharArray(packet.Message); // Send the actual message to the user as requested var newPacket = new ServerChatMessagePacket(player.Name, packet.Message, channel.Id); channel.SendMessage(newPacket); } } }
/// <summary> /// Handles a message from an external service, a bit of a dirty hack but it works. /// /// Returns whether or not a command was parsed /// //TODO: Refactor me to be more decoupled from the actual handlers and be more resilent /// </summary> /// <param name="player"></param> /// <param name="packet"></param> public bool HandleMessage(Player player, ClientChatMessagePacket packet) { return _chatCommandParser.ParseAndHandleMessage(player, packet.Message); }