]> git.cworth.org Git - empires-html/blobdiff - empires-client.js
Add a message when the connection to the server is lost
[empires-html] / empires-client.js
index 9ac3308feff2519c5bb31b03d0f2fec7c9e7f722..ff952a3e5281d2bdd15a8918c9a76542e152e939 100644 (file)
@@ -34,13 +34,20 @@ function register(form) {
 
 const events = new EventSource(API + "events");
 
+events.onerror = function(event) {
+  if (event.target.readyState === EventSource.CLOSED) {
+      add_message("danger", "Connection to server lost.");
+  }
+};
+
 events.addEventListener("players", function(event) {
   const players_element = document.getElementById("players");
   const players = JSON.parse(event.data);
 
   players_element.innerHTML = '';
   for (const player of players) {
-    var li =document.createElement('li');
+    var li = document.createElement('li');
+    li.id = "player-" + player.id;
     li.innerText = player.name;
     players_element.appendChild(li);
   }
@@ -51,6 +58,23 @@ events.addEventListener("player-register", function(event) {
   const player = JSON.parse(event.data);
 
   const li = document.createElement('li');
+  li.id = "player-" + player.id;
   li.innerText = player.name;
   players.appendChild(li);
 });
+
+events.addEventListener("player-deregister", function(event) {
+  const players = document.getElementById("players");
+  const id = JSON.parse(event.data);
+  const player = document.getElementById("player-" + id.id);
+
+  players.removeChild(player);
+});
+
+events.addEventListener("capture", function(event_string) {
+  const players = document.getElementById("players");
+  const event = JSON.parse(event_string.data);
+  const player = document.getElementById("player-" + event.captee);
+
+  players.removeChild(player);
+});