added version checking, resetting elements on disconnect

This commit is contained in:
Miodec 2021-01-21 16:51:35 +00:00
parent 4ebe1488b4
commit b022634ea6
2 changed files with 28 additions and 4 deletions

View file

@ -15,6 +15,7 @@ let MP = {
maxReconnectionAttempts: 1,
activePage: "preloader",
pageTransition: false,
expectedVersion: "0.5.0",
};
let tribeSounds = {
@ -113,6 +114,14 @@ function mp_resetLobby() {
$(".pageTribe .lobby .inviteLink .link").text("");
}
function mp_resetRace() {
$(".pageTest .tribePlayers").empty().addClass("hidden");
hideCountdown();
hideResultCountdown();
$(".pageTest #result .tribeResult").addClass("hidden");
$(".pageTest #result .tribeResultChat").addClass("hidden");
}
function mp_applyRoomConfig(cfg) {
setMode(cfg.mode, true, true);
if (cfg.mode === "time") {
@ -474,6 +483,13 @@ MP.socket.on("mp_update_online_stats", (data) => {
$(".pageTribe .prelobby .welcome .stats").append(
`<div class="small">Version ${data.version}</div>`
);
if (data.version !== MP.expectedVersion) {
MP.socket.disconnect();
Notifications.add(
`Tribe version mismatch. Try refreshing or clearing cache. Expected version: ${MP.expectedVersion}, found version: ${data.version}`,
-1
);
}
});
MP.socket.on("mp_update_name", (data) => {
@ -486,6 +502,9 @@ MP.socket.on("disconnect", (f) => {
Notifications.add("Disconnected from Tribe", 0);
mp_resetLobby();
mp_changeActiveSubpage("preloader");
mp_resetLobby();
mp_resetRace();
mp_changeActiveSubpage("preloader");
// $(".pageTribe .preloader div").removeClass("hidden");
// $(".pageTribe .preloader").removeClass("hidden").css("opacity", 1);
// $(".pageTribe .preloader .icon").html(`<i class="fas fa-fw fa-times"></i>`);
@ -500,7 +519,9 @@ MP.socket.on("connect_failed", (f) => {
MP.reconnectionAttempts++;
if (MP.reconnectionAttempts >= MP.maxReconnectionAttempts) {
$(".pageTribe .preloader .icon").html(`<i class="fas fa-fw fa-times"></i>`);
$(".pageTribe .preloader .text").text(`Disconnected from Tribe`);
$(".pageTribe .preloader .text").text(
`Could not connect to Tribe server: ${f.message}`
);
} else {
$(".pageTribe .preloader .text").text("Connection failed. Retrying");
Notifications.add("Tribe connection error: " + f.message, -1);
@ -516,7 +537,9 @@ MP.socket.on("connect_error", (f) => {
// $(".pageTribe .preloader").removeClass("hidden").css("opacity", 1);
if (MP.reconnectionAttempts >= MP.maxReconnectionAttempts) {
$(".pageTribe .preloader .icon").html(`<i class="fas fa-fw fa-times"></i>`);
$(".pageTribe .preloader .text").text(`Disconnected from Tribe`);
$(".pageTribe .preloader .text").text(
`Could not connect to Tribe server: ${f.message}`
);
} else {
$(".pageTribe .preloader .text").text("Connection error. Retrying");
Notifications.add("Tribe connection error: " + f.message, -1);
@ -734,6 +757,7 @@ MP.socket.on("mp_room_user_test_progress_update", (data) => {
});
MP.socket.on("mp_room_user_finished", (data) => {
$(`.tribeResult`).removeClass("hidden");
$(`.tribeResult table .player[socketId=${data.socketId}] .wpm .text`).text(
data.result.wpm
);

View file

@ -1248,7 +1248,7 @@
<div id="premidSecondsLeft" class="hidden"></div>
</div>
<div id="result" class="hidden">
<div class="tribeResult">
<div class="tribeResult hidden">
<div class="timer" style="opacity: 0">Timer</div>
<table>
<thead>
@ -1446,7 +1446,7 @@
<i class="far fa-fw fa-image"></i>
</div>
</div>
<div class="tribeResultChat">
<div class="tribeResultChat hidden">
<div class="chat">
<div class="title">chat</div>
<div class="messages"></div>