]> git.cworth.org Git - empires-server/blobdiff - game.js
game: Add a new /player endpoint to allow a player to change their name
[empires-server] / game.js
diff --git a/game.js b/game.js
index b2193363b92dd1d1e7ac2227ce43456111200eee..0adf953537b4f8038048a846a2589e87ec64a178 100644 (file)
--- a/game.js
+++ b/game.js
@@ -162,6 +162,27 @@ class Game {
     }
   }
 
+  handle_player(request, response) {
+    const player = this.find_player(request.session);
+    if (! player) {
+      response.sendStatus(404);
+      return;
+    }
+
+    if (request.body.name && (player.name !== request.body.name)) {
+      player.name = request.body.name;
+
+      /* In addition to setting the name within this game's player
+       * object, also set the name in the session. */
+      request.session.nickname = player.name;
+      request.session.save();
+
+      this.broadcast_event("player-update", player.info_json());
+    }
+
+    response.send("");
+  }
+
   broadcast_move(move) {
     this.broadcast_event("move", move);
   }