}
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
/* 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;