| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package actorRemote
- import (
- cherryApp "f1-game/internal/cherry_app"
- "f1-game/internal/enum"
- nameActor "f1-game/internal/name/actor"
- nameRemote "f1-game/internal/name/remote"
- "f1-game/internal/pb"
- cfacade "github.com/cherry-game/cherry/facade"
- )
- type chat struct {
- }
- func newChat() *chat {
- return &chat{}
- }
- func (p *chat) Push(chatType enum.ChatType, playerID int64, chatID int64) int32 {
- targetPath := p.targetPath(chatType, chatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_Push, &pb.I64I64{
- Key: playerID,
- Value: chatID,
- })
- }
- func (p *chat) Send(req *pb.ChatMsgList) int32 {
- targetPath := p.targetPath(enum.ChatType(req.ChatType), req.ChatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_Send, req)
- }
- func (p *chat) Destory(chatType enum.ChatType, chatID int64) int32 {
- targetPath := p.targetPath(chatType, chatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_Destory, &pb.I64{
- Value: chatID,
- })
- }
- // 删除消息,供admin后台使用
- func (p *chat) DelMsg(chatType enum.ChatType, chatID int64, msgID int64) int32 {
- targetPath := p.targetPath(chatType, chatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_DelMsg, &pb.I64I64{
- Key: chatID,
- Value: msgID,
- })
- }
- func (p *chat) GroupJoin(chatID int64, playerID int64) int32 {
- targetPath := p.targetPath(enum.ChatType_Group, chatID)
- req := &pb.I64I64{
- Key: chatID,
- Value: playerID,
- }
- return cherryApp.CallWait(targetPath, nameRemote.Chat_GroupJoin, req, nil)
- }
- func (p *chat) GroupPlayerChange(req *pb.ChatGroupPlayerChange) int32 {
- targetPath := p.targetPath(enum.ChatType_Group, req.ChatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_GroupPlayerChange, req)
- }
- func (p *chat) GroupQuit(chatID int64, playerID int64) int32 {
- targetPath := p.targetPath(enum.ChatType_Group, chatID)
- return cherryApp.Call(targetPath, nameRemote.Chat_GroupQuit, &pb.I64I64{
- Key: chatID,
- Value: playerID,
- })
- }
- func (p *chat) targetPath(chatType enum.ChatType, chatID int64) string {
- chatNodeID := chatNodeID(chatID)
- actorID := p.getActorID(chatType)
- return cfacade.NewPath(chatNodeID, actorID)
- }
- func (p *chat) getActorID(chatType enum.ChatType) string {
- switch chatType {
- case enum.ChatType_Game:
- return nameActor.Chat_Game
- case enum.ChatType_League:
- return nameActor.Chat_League
- case enum.ChatType_Map:
- return nameActor.Chat_Map
- case enum.ChatType_Group:
- return nameActor.Chat_Group
- }
- return ""
- }
|