56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
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<Scene, Chat2G_ChatMessage>
|
|
{
|
|
protected override async FTask Run(Scene scene, Chat2G_ChatMessage message)
|
|
{
|
|
// var chatMessage = new S2C_Message()
|
|
// {
|
|
// Msg = message.Message,
|
|
// };
|
|
// var idList = message.IdList;
|
|
// bool isAll = !(idList != null && idList.Count > 0);
|
|
//
|
|
// var gateUnitManage = scene.GetComponent<GateUnitManageComponent>();
|
|
//
|
|
// 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 Chat2C_Message()
|
|
{
|
|
ChatInfoTree = message.ChatInfoTree
|
|
};
|
|
foreach (var session in scene.GetComponent<GateUnitManageComponent>().ForEachUnitSession())
|
|
{
|
|
session.Send(chatMessage);
|
|
}
|
|
|
|
await FTask.CompletedTask;
|
|
}
|
|
} |