45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using System.Text;
|
|
using Fantasy;
|
|
using Fantasy.Async;
|
|
using Fantasy.Network.Interface;
|
|
|
|
namespace NB.Chat;
|
|
|
|
public sealed class
|
|
C2Chat_SendMessageRequestHandler : RouteRPC<ChatUnit, C2Chat_SendMessageRequest, Caht2C_SendMessageResponse>
|
|
{
|
|
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;
|
|
}
|
|
} |