1 const API = "https://families.cworth.org/api/";
3 function undisplay(element) {
4 element.style.display="none";
7 function add_message(severity, message) {
8 message = `<div class="message ${severity}" onclick="undisplay(this)">
10 <span class="hide-button" onclick="undisplay(this.parentElement)">×</span>
12 const message_area = document.getElementById('message-area');
13 message_area.insertAdjacentHTML('beforeend', message);
16 function register_loaded(name) {
17 add_message("success", name + " is now in the game!");
20 function register(form) {
21 var request = new XMLHttpRequest();
22 request.addEventListener("load", register_loaded(form.name.value));
24 request.open("POST", API + "register");
25 request.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
27 "name": form.name.value,
28 "character": form.character.value
30 request.send(JSON.stringify(data));
35 const events = new EventSource(API + "events");
37 events.onerror = function(event) {
38 if (event.target.readyState === EventSource.CLOSED) {
39 add_message("danger", "Connection to server lost.");
43 events.addEventListener("players", function(event) {
44 const players_element = document.getElementById("players");
45 const players = JSON.parse(event.data);
47 players_element.innerHTML = '';
48 for (const player of players) {
49 var li = document.createElement('li');
50 li.id = "player-" + player.id;
51 li.innerText = player.name;
52 players_element.appendChild(li);
56 events.addEventListener("player-join", function(event) {
57 const players = document.getElementById("players");
58 const player = JSON.parse(event.data);
60 const li = document.createElement('li');
61 li.id = "player-" + player.id;
62 li.innerText = player.name;
63 players.appendChild(li);
66 events.addEventListener("player-leave", function(event) {
67 const players = document.getElementById("players");
68 const id = JSON.parse(event.data);
69 const player = document.getElementById("player-" + id.id);
71 players.removeChild(player);
74 events.addEventListener("capture", function(event_string) {
75 const players = document.getElementById("players");
76 const event = JSON.parse(event_string.data);
77 const player = document.getElementById("player-" + event.captee);
79 players.removeChild(player);