mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-28 15:37:14 +00:00
feat(dashboard): draining (old version) badge; properties update when empty
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,8 +60,9 @@
|
||||
<p class="small text-body-secondary">Moves everything onto the server binaries on disk now, without a restart: the UGC server finishes its jobs
|
||||
and restarts, auth restarts (logins pause for a few seconds), chat hands its teams over and restarts, every world instance is
|
||||
replaced by a new one and its players are moved there (the game's Mythran maintenance warning, then a short loading screen), and
|
||||
the dashboard restarts last. Properties are saved before their new instance loads them; races and minigames finish first.
|
||||
Master keeps running: updating master itself takes a normal restart.</p>
|
||||
the dashboard restarts last. Races and minigames finish first. <strong>Properties are not moved</strong> (building in progress
|
||||
isn't saved): their players are told an update is waiting, and a property updates once everyone has left it. Instances on the old
|
||||
build take nobody new. Master keeps running: updating master itself takes a normal restart.</p>
|
||||
<div class="d-flex flex-wrap gap-2 align-items-center mb-2" id="liveUpdateForm">
|
||||
<div class="input-group input-group-sm" style="max-width: 20rem">
|
||||
<span class="input-group-text">Warn players</span>
|
||||
@@ -214,6 +215,9 @@ $(function () {
|
||||
if (row.state === 'starting') return ' ' + fmt.badge('Starting', 'info');
|
||||
if (row.state === 'stopping') return ' ' + fmt.badge('Shutting down', 'secondary');
|
||||
if (row.state === 'draining') return ' ' + fmt.badge('Moving players', 'warning');
|
||||
// Old binary or old zone files: nobody new goes there; it stops once the players still there have left
|
||||
if (row.outdated) return ' ' + fmt.badge('Draining (old version)', 'warning') + ' <span class="small text-body-secondary text-nowrap">' +
|
||||
Number(row.players || 0).toLocaleString() + ' player(s) still there</span>';
|
||||
return '';
|
||||
}
|
||||
// Zone names in the viewer's language (the live status carries the server's)
|
||||
|
||||
@@ -90,7 +90,9 @@
|
||||
<div class="card-body">
|
||||
<p class="small text-body-secondary">The zone files each running world loaded (<code>.luz</code>, <code>.lvl</code>, <code>.lutriggers</code>, terrain,
|
||||
navmesh). When one changes on disk, the master server replaces the instances that loaded the old version with new ones and moves their
|
||||
players over. <strong>Reload</strong> does the same for every instance of a zone now. Files read from the client's packs are not watched.</p>
|
||||
players over. <strong>Reload</strong> does the same for every instance of a zone now. <strong>Properties are not moved</strong> (building in
|
||||
progress isn't saved): an instance of a property on old files takes nobody new, its players are told an update is waiting, and it updates
|
||||
once everyone has left. Files read from the client's packs are not watched.</p>
|
||||
<div id="worldFilesZones"><p class="text-body-secondary mb-0">Waiting for the master server…</p></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -257,7 +259,8 @@
|
||||
(z.changed ? ' ' + fmt.badge('changed on disk', 'warning') : '') + '</h6>' +
|
||||
'<button type="button" class="btn btn-outline-primary btn-sm" data-reload-zone="' + esc(z.zone) + '">Reload</button></div>';
|
||||
var instances = '<div class="small mb-1">' + z.instances.map(function (i) {
|
||||
var badges = (i.stale ? ' ' + fmt.badge('old files', 'warning') : '') + (i.reloading ? ' ' + fmt.badge('being replaced', 'info') : '');
|
||||
var badges = (i.stale ? ' ' + fmt.badge('old files', 'warning') : '') + (i.reloading ? ' ' + fmt.badge('being replaced', 'info') :
|
||||
i.outdated ? ' ' + fmt.badge(i.clone ? 'updates when empty' : 'draining (old version)', 'secondary') : '');
|
||||
return '<span class="me-3 text-nowrap">Instance ' + esc(i.instance) + (i.clone ? ' (clone ' + esc(i.clone) + ')' : '') + ', ' +
|
||||
nf.format(i.players) + ' player(s)' + badges + '</span>';
|
||||
}).join('') + '</div>';
|
||||
|
||||
Reference in New Issue
Block a user