package leagueMember import ( "f1-game/internal/component/redis" nameRedis "f1-game/internal/name/redis" nameRoute "f1-game/internal/name/route" "f1-game/internal/pb" "f1-game/internal/sessions" "f1-game/nodes/map/internal/db" mapFacade "f1-game/nodes/map/internal/facade" cstring "github.com/cherry-game/cherry/extend/string" cproto "github.com/cherry-game/cherry/net/proto" ) func Service() *service { return &service{} } type service struct { mapFacade.LeagueServiceBase[*db.MapLeagueTable] } // 推送联盟邮件列表 func (p *service) Push(leagueTable *db.MapLeagueTable, session *cproto.Session) { // 推送联盟职位信息 p.JobPush(leagueTable, session) } func (p *service) JobPush(leagueTable *db.MapLeagueTable, session *cproto.Session) { var ( playerID = sessions.GetPlayerID(session) leagueID = leagueTable.LeagueID ) leagueMemberTable, found := db.GetMapLeagueMemberTable(leagueID) if !found { return } jobID := leagueMemberTable.LeagueMember.GetLeagueMemberJob(playerID) // 没有职位 if jobID <= 0 { return } permissions, _ := leagueMemberTable.GetJobPermissions(jobID) resp := &pb.LeagueJob{ Job: jobID, Permissions: permissions, } sessions.PushWithSession(session, nameRoute.PushLeague_JobInfo, resp) } func (p *service) GetPlayerName(playerID int64) string { playerData := p.GetPlayerData(playerID) if playerData != nil { return playerData.PlayerName } return cstring.ToString(playerID) } func (p *service) GetPlayerData(playerID int64) *pb.PlayerData { playerData := redis.Game.GetPlayerData(playerID, nameRedis.PlayerBaseFields...) if playerData != nil { return playerData } return nil }