示例#1
0
        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));
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
                }

            }
        }
示例#4
0
 /// <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);
 }