diff --git a/logic/controller/login_main.go b/logic/controller/login_main.go index f8067320..2d392263 100644 --- a/logic/controller/login_main.go +++ b/logic/controller/login_main.go @@ -30,13 +30,17 @@ func (h Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user.L defer c.Close() return } - error := Maincontroller.RPCClient.Kick(data.Head.UserID) //通知其他服务器踢人 - if error != nil { - cool.Logger.Error(context.Background(), "踢人失败", err) + _, erre := share.ShareManager.GetUserOnline(data.Head.UserID) + if erre == nil { + error := Maincontroller.RPCClient.Kick(data.Head.UserID) //通知其他服务器踢人 + if error != nil { + cool.Logger.Error(context.Background(), "踢人失败", err) - defer c.Close() - return + defer c.Close() + return + } } + currentPlayer := player.GetPlayer(c, data.Head.UserID) if currentPlayer == nil { @@ -49,11 +53,12 @@ func (h Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user.L currentPlayer.Service = service.NewUserService(data.Head.UserID) currentPlayer.Info = currentPlayer.Service.Info.SetLogin() - share.ShareManager.SetUserOnline(data.Head.UserID, h.UID) //设置用户登录服务器 if currentPlayer.Info == nil { defer c.Close() return } + share.ShareManager.SetUserOnline(data.Head.UserID, h.UID) //设置用户登录服务器 + currentPlayer.Info.UserID = data.Head.UserID currentPlayer.Logintime = uint32(time.Now().Unix()) //保存时间戳