void client_OnChatMessage(object sender, ChatMessageArgs e) { GSTask t = new GSTask(); t.Type = (int)GSTask.GSTType.ChatMessage; t.Client = (GameClient)sender; t.Args = e; TaskProcessor.AddTask(t); }
void ChatMessageHandler(Task t) { GSTask task = (GSTask)t; ChatMessageArgs args = (ChatMessageArgs)task.Args; // Fetch client list Connection[] clients = _server.InputThread.Clients; // Send message to clients foreach (GameClient gc in clients) { if (gc.IsInChannel(args.Channel)) { if (!gc.IsChatBlocked(task.Client.AccountId)) { gc.SendChat(args.Channel, args.Message, task.Client.DisplayName); } } } }