using System.Text; using Fantasy; using Fantasy.Async; using Fantasy.Network.Interface; namespace NB.Chat; public sealed class C2Chat_SendMessageRequestHandler : RouteRPC { protected override async FTask Run(ChatUnit chatUnit, C2Chat_SendMessageRequest request, Caht2C_SendMessageResponse response, Action reply) { if (request.Target < 1) { response.ErrorCode = ErrorCode.ErrArgs; return; } if (request.Type == 0) //频道聊天 { ChatSceneHelper.BroadcastChannel(chatUnit.Scene, request.Target, new ChatMessageInfo() { Content = request.Message, }); } else if (request.Type == 1) //私聊 { //发送私聊 ChatSceneHelper.PrivateMessage(chatUnit.Scene, chatUnit.Id, request.Target, new ChatMessageInfo() { Content = request.Message, }); } else if (request.Type == 3) //广播聊天 { ChatSceneHelper.BroadcastAll(chatUnit.Scene, new ChatMessageInfo() { Content = request.Message, }); } await FTask.CompletedTask; } }