X-Git-Url: https://git.cworth.org/git?p=empires-server;a=blobdiff_plain;f=game.js;h=f9e18cb760725eb9d05a993115bf286f5f0b2e85;hp=0023257e796c1f56e49e2fe62742c6ec1f35454b;hb=3740e6f5ca87eac244bc2969b19a37939e9efc28;hpb=d7b96ee0316021fa7a5e428950e2d8a9d8754582 diff --git a/game.js b/game.js index 0023257..f9e18cb 100644 --- a/game.js +++ b/game.js @@ -162,8 +162,18 @@ class Game { } add_player(session, connection) { + let nickname = session.nickname; + /* First see if we already have a player object for this session. */ - const existing = this.players_by_session[session.id]; + let existing = this.players_by_session[session.id]; + + /* Otherwise, see if we can match an inactive player by name. */ + if (! existing) { + existing = this.players.find(player => + player.name == nickname && + ! player.active); + } + if (existing) { if (! existing.active) { /* If we're re-activating a previously idled player, then we @@ -179,7 +189,6 @@ class Game { /* No existing player. Add a new one. */ const id = this.next_player_id; - let nickname = session.nickname; if (nickname === "") nickname = "Guest"; const nickname_orig = nickname;