~starkingdoms/starkingdoms

dc53c8b2db92a7a6a0a5c236d2f2b5ab478085f8 — core 2 years ago 98fccea
prerelease server warning
M starkingdoms-client/index.html => starkingdoms-client/index.html +35 -26
@@ 1,43 1,52 @@
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="/style.css" />
    <link rel="stylesheet" href="/themes/catppuccin-mocha/colors.css" />
<head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <link rel="stylesheet" href="/style.css"/>
    <link rel="stylesheet" href="/themes/catppuccin-mocha/colors.css"/>
    <title>StarKingdoms</title>
  </head>
  <body class="bg-grid">
    <div class="popup" id="server_selector">
</head>
<body class="bg-grid">
<div class="popup" id="server_selector">

      <h1>StarKingdoms</h1>
      <h2>Join Game</h2>
    <h1>StarKingdoms</h1>
    <h2>Join Game</h2>

      <form id="join-fm">
    <form id="join-fm">
        <label>Choose server</label>

        <div class="fm-select">
          <button class="fm-select-button" role="combobox" aria-labelledby="server selector" aria-haspopup="listbox" aria-expanded="false" aria-controls="fm-select-dropdown">
            <span class="fm-selected-value">StarKingdoms - 0 players</span>
            <span class="fm-arrow"></span>
          </button>
          <ul class="fm-select-dropdown" role="listbox" id="fm-select-dropdown">
            <!-- Filled by TS -->
          </ul>
            <button class="fm-select-button" role="combobox" aria-labelledby="server selector" aria-haspopup="listbox"
                    aria-expanded="false" aria-controls="fm-select-dropdown">
                <span class="fm-selected-value">StarKingdoms - 0 players</span>
                <span class="fm-arrow"></span>
            </button>
            <ul class="fm-select-dropdown" role="listbox" id="fm-select-dropdown">
                <!-- Filled by TS -->
            </ul>
        </div>

        <label for="username" class="username-label">Username</label>
        <input class="username-box" id="username" required autocomplete="off"/>
        <button id="launch-btn" class="launch-btn">Launch!</button>
      </form>
    </div>
        <span id="server-danger" class="server-danger hidden">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="server-danger-icon">
  <path fill-rule="evenodd"
        d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z"
        clip-rule="evenodd"/>
</svg>
Here be dragons! You have a <b>prerelease server</b> selected. Expect bugs, and save data on this server may be wiped at any time.
        </span>
    </form>
</div>

    <div id="gamewindow" class="game">
      <!-- Canvas gets added here by the game script -->
    </div>
<div id="gamewindow" class="game">
    <!-- Canvas gets added here by the game script -->
</div>

    <span class="footer" id="footer"></span>
<span class="footer" id="footer"></span>

    <script type="module" src="src/main.ts"></script>
  </body>
<script type="module" src="src/main.ts"></script>
</body>
</html>

M starkingdoms-client/public/form.css => starkingdoms-client/public/form.css +16 -1
@@ 135,4 135,19 @@
    opacity: 1;
    visibility: visible;
    /*transform: scaleY(1);*/
}
\ No newline at end of file
}
.server-danger {
    display: block;
    margin-top: 1vh;
    color: var(--error);
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.server-danger.hidden {
    display: none;
}
.server-danger-icon {
    height: 1.25rem;
    vertical-align: middle;
    display: inline-block;
}

M starkingdoms-client/src/config.json => starkingdoms-client/src/config.json +5 -5
@@ 1,8 1,8 @@
{
  "servers": {
    "stk-prod": {"name": "StarKingdoms", "url": "wss://starkingdoms.io/", "api": "https://api.starkingdoms.io"},
    "stk-beta": {"name": "StarKingdoms Beta", "url": "wss://beta.starkingdoms.io/", "api": "https://api.beta.starkingdoms.io"},
    "stk-unstable": {"name": "StarKingdoms Unstable", "url": "wss://unstable.starkingdoms.io/", "api": "https://api.unstable.starkingdoms.io"},
    "dev": {"name": "Local", "url": "ws://localhost:3000/", "api": "http://localhost:8080"}
    "stk-prod": {"name": "StarKingdoms", "url": "wss://starkingdoms.io/", "api": "https://api.starkingdoms.io", "prod": true},
    "stk-beta": {"name": "StarKingdoms Beta", "url": "wss://beta.starkingdoms.io/", "api": "https://api.beta.starkingdoms.io", "prod": false},
    "stk-unstable": {"name": "StarKingdoms Unstable", "url": "wss://unstable.starkingdoms.io/", "api": "https://api.unstable.starkingdoms.io", "prod": false},
    "dev": {"name": "Local", "url": "ws://localhost:3000/", "api": "http://localhost:8080", "prod": false}
  }
}
\ No newline at end of file
}

M starkingdoms-client/src/main.ts => starkingdoms-client/src/main.ts +8 -2
@@ 69,6 69,12 @@ options_list.forEach((option) => {
            selected_value.textContent = this.textContent;
            custom_select.classList.remove("active");
        }
        // @ts-ignore
        if (!CONFIG.servers[inverse_server_lookup[selected_value.textContent]].prod) {
            document.getElementById("server-danger")!.classList.remove("hidden");
        } else {
            document.getElementById("server-danger")!.classList.add("hidden");
        }
    }
    option.addEventListener("keyup", handler);
    option.addEventListener("click", handler);


@@ 95,11 101,11 @@ document.getElementById("join-fm")!.addEventListener("submit", async (e) => {

        logger(`connecting to ${server.url} as ${username} with auth = none`);

        global.client = await gateway_connect(server.url);
        global.client = await gateway_connect(server.url, username);
    } catch (e) {
        setStatus("Connection failed!");
        console.error(e);
        (<HTMLButtonElement>custom_select_btn).disabled = false;
        (<HTMLInputElement>document.getElementById("username")!).disabled = false;
    }
})
\ No newline at end of file
})