Improved reconnect flow

This commit is contained in:
2024-01-29 23:16:06 +01:00
parent bf08205c7d
commit b22d0b1367
25 changed files with 212 additions and 99 deletions

View File

@ -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()