X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=empires%2Fempires-client.js;h=3d528e08ba1e4efbee827b04a3c166c2ec90cd25;hb=77aed7dd6cb31e7dddc36d8b44c5a8e2b834d922;hp=5f489f8780c547c6f8af2a743561a965ebdcd07c;hpb=5959c444651908e771cafda9cd6587d1a56e2ada;p=lmno.games diff --git a/empires/empires-client.js b/empires/empires-client.js index 5f489f8..3d528e0 100644 --- a/empires/empires-client.js +++ b/empires/empires-client.js @@ -13,13 +13,8 @@ ${message} message_area.insertAdjacentHTML('beforeend', message); } -function register_loaded(name) { - add_message("success", name + " is now in the game!"); -} - function register(form) { var request = new XMLHttpRequest(); - request.addEventListener("load", register_loaded(form.name.value)); request.open("POST", API + "register"); request.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); @@ -34,6 +29,12 @@ 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); @@ -47,7 +48,7 @@ events.addEventListener("players", function(event) { } }); -events.addEventListener("player-register", function(event) { +events.addEventListener("player-join", function(event) { const players = document.getElementById("players"); const player = JSON.parse(event.data); @@ -55,13 +56,16 @@ events.addEventListener("player-register", function(event) { li.id = "player-" + player.id; li.innerText = player.name; players.appendChild(li); + + add_message("success", player.name + " is now in the game!"); }); -events.addEventListener("player-deregister", function(event) { +events.addEventListener("player-leave", function(event) { const players = document.getElementById("players"); const id = JSON.parse(event.data); const player = document.getElementById("player-" + id.id); + add_message("info", player.innerText + " has left the game."); players.removeChild(player); });