mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-09-17 23:57:18 +00:00
Update wdata.tpl
Updated for fail-safe switch so if there is 3 connection hiccup's we skip populating croppers.
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
## ##
|
## ##
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
|
<?php
|
||||||
// install/wdata.tpl
|
// install/wdata.tpl
|
||||||
|
|
||||||
include_once('../GameEngine/config.php');
|
include_once('../GameEngine/config.php');
|
||||||
@@ -85,10 +86,13 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] ===
|
|||||||
var left = COUNTDOWN_SECS;
|
var left = COUNTDOWN_SECS;
|
||||||
box.style.display = 'block';
|
box.style.display = 'block';
|
||||||
cdEl.textContent = left;
|
cdEl.textContent = left;
|
||||||
var t = setInterval(function(){
|
var t = setInterval(function () {
|
||||||
left--;
|
left--;
|
||||||
cdEl.textContent = left;
|
cdEl.textContent = left;
|
||||||
if (left <= 0) { clearInterval(t); window.location.href = NEXT_URL; }
|
if (left <= 0) {
|
||||||
|
clearInterval(t);
|
||||||
|
window.location.href = NEXT_URL;
|
||||||
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,21 +111,35 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] ===
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var MAX_RETRIES = 3;
|
||||||
|
var retries = 0;
|
||||||
|
|
||||||
var es = new EventSource('ajax_croppers.php');
|
var es = new EventSource('ajax_croppers.php');
|
||||||
|
|
||||||
|
es.onopen = function () {
|
||||||
|
// When a connection (re)opens and we had errors before, log a small note
|
||||||
|
if (!finished && retries > 0) {
|
||||||
|
plog.textContent += "Reconnected to server.\n";
|
||||||
|
plog.scrollTop = plog.scrollHeight;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
es.onmessage = function (e) {
|
es.onmessage = function (e) {
|
||||||
// Ignore non-JSON messages (pings / blanks)
|
// Ignore non-JSON messages (pings / blanks)
|
||||||
if (!e.data || e.data.charCodeAt(0) !== 123 /* '{' */) return;
|
if (!e.data || e.data.charCodeAt(0) !== 123 /* '{' */) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var d = JSON.parse(e.data);
|
var d = JSON.parse(e.data);
|
||||||
var pct = (d.pct || 0)|0;
|
var pct = (d.pct || 0) | 0;
|
||||||
var done = (d.done || 0)|0;
|
var done = (d.done || 0) | 0;
|
||||||
var total = (d.total|| 0)|0;
|
var total = (d.total|| 0) | 0;
|
||||||
|
|
||||||
// If we've already finished, ignore further events
|
// If we've already finished, ignore further events
|
||||||
if (finished) return;
|
if (finished) return;
|
||||||
|
|
||||||
|
// Valid data received -> reset retry counter
|
||||||
|
retries = 0;
|
||||||
|
|
||||||
pbar.style.width = pct + '%';
|
pbar.style.width = pct + '%';
|
||||||
pinfo.textContent = done + ' / ' + total + ' (' + pct + '%)';
|
pinfo.textContent = done + ' / ' + total + ' (' + pct + '%)';
|
||||||
|
|
||||||
@@ -133,6 +151,16 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] ===
|
|||||||
if (pct >= 100) {
|
if (pct >= 100) {
|
||||||
finished = true;
|
finished = true;
|
||||||
plog.textContent += "✅ Completed!\n";
|
plog.textContent += "✅ Completed!\n";
|
||||||
|
plog.scrollTop = plog.scrollHeight;
|
||||||
|
es.close();
|
||||||
|
startCountdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: handle explicit error flag from server if you ever send it
|
||||||
|
if (d.error) {
|
||||||
|
finished = true;
|
||||||
|
plog.textContent += "❌ " + (d.msg || "Server reported an error.") + "\n";
|
||||||
|
plog.scrollTop = plog.scrollHeight;
|
||||||
es.close();
|
es.close();
|
||||||
startCountdown();
|
startCountdown();
|
||||||
}
|
}
|
||||||
@@ -143,9 +171,21 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] ===
|
|||||||
};
|
};
|
||||||
|
|
||||||
es.onerror = function () {
|
es.onerror = function () {
|
||||||
// Don’t spam after we’re done; otherwise let EventSource reconnect silently
|
// Don’t spam after we’re done
|
||||||
if (!finished) {
|
if (finished) return;
|
||||||
plog.textContent += "Connection hiccup, retrying…\n";
|
|
||||||
|
retries++;
|
||||||
|
plog.textContent += "⚠ Connection hiccup (" + retries + "/" + MAX_RETRIES + "), retrying…\n";
|
||||||
|
plog.scrollTop = plog.scrollHeight;
|
||||||
|
|
||||||
|
// EventSource will auto-reconnect by itself; we just decide when to give up
|
||||||
|
if (retries >= MAX_RETRIES) {
|
||||||
|
finished = true;
|
||||||
|
plog.textContent += "❌ Too many connection failures — skipping croppers build.\n";
|
||||||
|
plog.scrollTop = plog.scrollHeight;
|
||||||
|
es.close();
|
||||||
|
// Reuse the same countdown UI to move on
|
||||||
|
startCountdown();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -156,6 +196,7 @@ $autoStartCroppers = isset($_GET['startCroppers']) && $_GET['startCroppers'] ===
|
|||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Reference in New Issue
Block a user