package actorRemote import ( capp "f1-game/internal/cherry_app" nameActor "f1-game/internal/name/actor" nameRemote "f1-game/internal/name/remote" "f1-game/internal/pb" "f1-game/internal/types" cfacade "github.com/cherry-game/cherry/facade" ) type gameMail struct { } func newGameMail() *gameMail { return &gameMail{} } // 发送邮件 func (p *gameMail) SendMail(gameNodeID string, playerID int64, mailID int32, assets types.Assets, templateParams []string) { req := &pb.SendMail{ ToPlayerID: playerID, TemplateID: mailID, } if len(templateParams) > 0 { req.TemplateParams = templateParams } if assets.Len() > 0 { req.Rewards = assets.ToProto() } p.Send(gameNodeID, req) } func (*gameMail) Send(gameNodeID string, req *pb.SendMail) int32 { targetPath := cfacade.NewChildPath(gameNodeID, nameActor.Mail, req.ToPlayerID) return capp.Call(targetPath, nameRemote.Mail_Send, req) } // 获取玩家邮件列表 func (*gameMail) GetMailList(gameNodeID string, playerID int64) (int32, *pb.MailList) { req := &pb.I64{ Value: playerID, } resp := &pb.MailList{} targetPath := cfacade.NewChildPath(gameNodeID, nameActor.Mail, playerID) errCode := capp.CallWait(targetPath, nameRemote.Mail_GetList, req, resp) return errCode, resp } // func (*gameMail) SendTemplate(toPlayerID int64, templateID int32, params []string, assets ...*pb.Asset) { // targetPath := cfacade.NewChildPath(cherryApp.GameNodeID(), nameActor.Mail, toPlayerID) // cherryApp.Call(targetPath, nameRemote.Mail_Send, &pb.SendMail{ // ToPlayerID: toPlayerID, // TemplateID: templateID, // TemplateParams: params, // Rewards: assets, // }) // }