import { ConfigServer, loadConfig } from "../../config.ts"; import createDebug from "debug"; import "../../css/themes/catppuccin-mocha.scss"; import "../../css/style.scss"; import { parseJwt } from "../../jwt.ts"; // HMR wrapper, to prevent doing reinit twice let initialized: boolean | undefined; async function init() { let config = await loadConfig(); const logger = createDebug("main"); logger( `Hello, world! StarKingdoms ${APP_VERSION} (${COMMIT_HASH}) at your service!`, ); logger("Current view: "); initialized = true; const account_info = document.getElementById("account-info")!; if (window.localStorage.getItem("stk-token") != null) { let token = window.localStorage.getItem("stk-token")!; let token_parsed: any = parseJwt(token); account_info.innerText = `Logged in as ${token_parsed.username}! Saves will be stored on the server.`; } const is_development = window.localStorage.getItem("stk-mode") === "debug"; document.getElementById("footer-left")!.innerHTML = `StarKingdoms Client ${APP_VERSION} (${COMMIT_HASH})`; // fill in the select box const select_box = document.getElementById("select")!; const username_box = document.getElementById("username")!; const nonprod_warning = document.getElementById("server-danger")!; const form = document.getElementById("join-fm")!; form.onsubmit = (e) => { e.preventDefault(); window.location.href = `/play/?srv=${select_box.value}&username=${username_box.value}`; }; select_box.innerHTML = ""; select_box.onchange = () => { if ( config.servers[select_box.value] !== undefined && !config.servers[select_box.value].isProduction ) { nonprod_warning.classList.remove("hidden"); } else { nonprod_warning.classList.add("hidden"); } }; for (let server_id in config.servers) { let server: ConfigServer = config.servers[server_id]; if (server.isDevelopment && !is_development) continue; let new_option = document.createElement("option"); new_option.value = server_id; new_option.innerText = server.name; select_box.appendChild(new_option); if (server.isPrimary) { select_box.value = server_id; } } } if (initialized === undefined) { init(); }