webclient/js/GUI/Screen/Hall.js

54 lines
1.3 KiB
JavaScript

import * as Dom from UnitJS.Dom;
import Games;
import I18n;
import * as Players from GUI.Screen.Hall.Players;
import * as GamesGUI from GUI.Screen.Hall.Games;
import Messaging;
import StatusHandler;
return {
init: init
};
function init() {
Players.init();
GamesGUI.init();
Messaging.addEventListener(["Okaeri"], function(o) {
refresh();
});
Messaging.addEventListener(["Welcome"], function(o) {
refresh();
});
Messaging.addEventListener(["LogIn"], function(o) {
refresh();
});
Messaging.addEventListener(["LogOut"], function(o) {
// Just in case there was a game proposal from that player, in which case the game proposal's ID is the player's ID
Games.metadata.remove(o.from);
refresh();
});
Messaging.addEventListener(["Relay", "Invitation"], function(o) {
StatusHandler.set("🎴");
Games.proposal(o.from, true);
GamesGUI.refresh();
});
Messaging.addEventListener(["Relay", "Answer"], function(o) {
var gameEntry = Games.metadata.get(o.from);
if(gameEntry != undefined) {
if(!o.message.accept) {
gameEntry.answer = false;
} else {
Games.metadata.remove(o.from);
}
GamesGUI.refresh();
}
});
Messaging.addEventListener(["Game"], function(o) {
GamesGUI.refresh();
});
}
function refresh() {
Players.refresh();
GamesGUI.refresh();
}