| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package actorRemote
- import (
- capp "f1-game/internal/cherry_app"
- "f1-game/internal/code"
- "f1-game/internal/component/redis"
- nameActor "f1-game/internal/name/actor"
- nameRemote "f1-game/internal/name/remote"
- "f1-game/internal/pb"
- ccrypto "github.com/cherry-game/cherry/extend/crypto"
- cfacade "github.com/cherry-game/cherry/facade"
- clog "github.com/cherry-game/cherry/logger"
- "go.uber.org/zap/zapcore"
- )
- type centerPlayer struct {
- }
- func newCenterPlayer() *centerPlayer {
- return ¢erPlayer{}
- }
- func (p *centerPlayer) GetUID(sdkID, pid int32, openID string) (cfacade.UID, int32) {
- if uid := redis.Center.GetUser(pid, openID); uid > 0 {
- return uid, code.OK
- }
- newUID, ok := redis.Center.BindUser(pid, openID)
- if !ok {
- return newUID, code.AccountLoginBindUserError
- }
- req := &pb.User{
- Uid: newUID,
- SdkID: sdkID,
- PID: pid,
- OpenID: openID,
- }
- hashID := ccrypto.CRC32(openID)
- capp.Call(p.target(hashID), nameRemote.Player_BindUID, req)
- return newUID, code.OK
- }
- func (p *centerPlayer) UpdateLastPlayer(req *pb.UpdateLastPlayer) {
- if clog.PrintLevel(zapcore.InfoLevel) {
- clog.Debugf("[playerID = %d, gameNodeID = %s] update last player.", req.PlayerID, req.GameNodeID)
- }
- capp.Call(p.target(req.UID), nameRemote.Player_UpdateLastPlayer, req)
- }
- func (*centerPlayer) target(childID any) string {
- return cfacade.NewChildPath(centerNodeID(), nameActor.CenterPlayer, childID)
- }
|