diff --git a/logic/service/player/server.go b/logic/service/player/server.go index 5a3830a8..097115cc 100644 --- a/logic/service/player/server.go +++ b/logic/service/player/server.go @@ -30,15 +30,18 @@ func KickPlayer(userid uint32) { //踢出玩家 //TODO 返回错误码 //var player *entity.Player if player1, ok := Mainplayer.Load(userid); ok { - //取成功,否则创建 - //player1.Save() //先保存数据再返回 - head := NewTomeeHeader(1001, userid) - head.Result = uint32(errorcode.ErrorCodes.ErrAccountLoggedInElsewhere) - //实际上这里有个问题,会造成重复保存问题 + if player1.IsLogin { + //取成功,否则创建 + //player1.Save() //先保存数据再返回 + head := NewTomeeHeader(1001, userid) + head.Result = uint32(errorcode.ErrorCodes.ErrAccountLoggedInElsewhere) + //实际上这里有个问题,会造成重复保存问题 + + player1.SendPack(head.Pack(nil)) + player1.MainConn.MainConn.Close() + // clientdata.Player = player + } - player1.SendPack(head.Pack(nil)) - player1.MainConn.MainConn.Close() - // clientdata.Player = player } //return player diff --git a/logic/service/player/wscodec.go b/logic/service/player/wscodec.go index b30e43e5..a5471392 100644 --- a/logic/service/player/wscodec.go +++ b/logic/service/player/wscodec.go @@ -13,6 +13,7 @@ import ( ) type Conn struct { + MainConn gnet.Conn `struc:"[0]pad"` //TODO 不序列化,,序列化下面的作为blob存数据库 Mu sync.Mutex }