| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package league
- import (
- actorRemote "f1-game/internal/actor_remote"
- "f1-game/internal/facade"
- "f1-game/internal/pb"
- "f1-game/internal/sessions"
- mapCall "f1-game/nodes/map/internal/call"
- "f1-game/nodes/map/internal/db"
- cproto "github.com/cherry-game/cherry/net/proto"
- )
- func Service() *service {
- return &service{}
- }
- type service struct {
- facade.PlayerServiceBase[*db.MapPlayerTable]
- }
- func (p *service) OnLogin(playerTable *db.MapPlayerTable, session *cproto.Session) {
- // 设置 session leagueID
- if playerTable.LeagueID > 0 {
- p.SetSession(session, playerTable.LeagueID)
- }
- }
- func (*service) OnLogined(playerTable *db.MapPlayerTable, session *cproto.Session) {
- // 触发联盟推送
- if playerTable.LeagueID > 0 {
- mapCall.League.LeagueOnLogin(playerTable.PlayerID, playerTable.LeagueID)
- }
- }
- func (*service) SetSession(session *cproto.Session, leagueID int64) {
- sessionProto := pb.StrStrList{}
- if leagueID == 0 {
- // 退盟时,leagueID为0 ==> 清空session
- sessionProto.Add(sessions.LeagueID, "")
- } else {
- sessionProto.Add(sessions.LeagueID, leagueID)
- }
- actorRemote.GateUser.SetSession(session.ActorPath(), &sessionProto)
- }
|