using System.Diagnostics; using Fantasy; using Fantasy.Async; using Fantasy.Network; using Fantasy.Network.Interface; using Fantasy.PacketParser; namespace NB.Gate; public class S2G_ChatMessageHandler : Address { protected override async FTask Run(Scene scene, Chat2G_ChatMessage message) { // var chatMessage = new Game2C_Message() // { // Msg = message.Message, // }; // var idList = message.IdList; // bool isAll = !(idList != null && idList.Count > 0); // // var gateUnitManage = scene.GetComponent(); // // if (isAll) // { // foreach (var session in gateUnitManage.ForEachUnitSession()) // { // session.Send(chatMessage); // } // } // else // { // if (idList == null) return; // foreach (var (_, gateUnit) in gateUnitManage.Units) // { // if (gateUnit.AccountID > 0 && idList.Contains(gateUnit.AccountID)) // { // Session session = gateUnit.Session; // if (session != null) // { // session.Send(chatMessage); // } // } // } // } var chatMessage = new Game2C_Message() { ChatInfoTree = message.ChatInfoTree }; foreach (var session in scene.GetComponent().ForEachUnitSession()) { session.Send(chatMessage); } await FTask.CompletedTask; } }