Improved reconnect flow
This commit is contained in:
@ -50,21 +50,14 @@ func (game *Game) Login(data []byte, address *net.UDPAddr) error {
|
||||
player = game.players.ByAccount(account.ID)
|
||||
|
||||
if player != nil {
|
||||
game.reconnect(player, address)
|
||||
} else {
|
||||
game.connect(account, address)
|
||||
game.server.Send(Login, []byte{Failure}, address)
|
||||
return ErrAlreadyLoggedIn
|
||||
}
|
||||
|
||||
game.connect(account, address)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (game *Game) reconnect(player *Player, address *net.UDPAddr) {
|
||||
player.KeepAlive()
|
||||
game.players.ChangeAddress(player, address)
|
||||
game.sendLoginSuccess(player)
|
||||
player.OnConnect()
|
||||
}
|
||||
|
||||
func (game *Game) connect(account *Account, address *net.UDPAddr) {
|
||||
player := NewPlayer(address, account, game)
|
||||
player.authToken = createAuthToken()
|
||||
|
Reference in New Issue
Block a user