/// <summary> /// Broadcasts a message to all users in this chat channel. /// </summary> /// <param name="messagePacket">The message packet to send to this chat channel</param> public void SendMessage(ServerChatMessagePacket messagePacket) { foreach (var client in Clients) { SendToClient(messagePacket, client); } }
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); } } }
private static void SendToClient(ServerChatMessagePacket messagePacket, GameClient client) { client.Send(messagePacket); }
public void SendMessageToAllBut(ServerChatMessagePacket messagePacket, Player player) { foreach (var client in Clients.Where(x => x.HeroEntity.Id != player.Id)) SendToClient(messagePacket, client); }