Upload via GUI (324 Dateien)

This commit is contained in:
2026-11-09 13:17:57 +00:00
parent 12b12fb09d
commit 300af2ed39
2 changed files with 87 additions and 3 deletions
+28
View File
@@ -1711,7 +1711,24 @@ function showUpdateDialog(info) {
: (channel
? `Für den Kanal ${channel} liegt in diesem Release keine passende Datei bereit. Bitte im Release nachsehen und von Hand aktualisieren.`
: 'Die Paketart dieses Launchers lässt sich nicht sicher bestimmen. Bitte das Update von Hand aus dem Release laden.');
updHintNormal = el('upd-hint').textContent;
show('modal-update');
aktualisiereUpdateKnopf();
}
// Solange Minecraft läuft, wird nicht installiert: Der Launcher beendet sich für das Update
let updHintNormal = '';
let updInstalliertGerade = false;
async function aktualisiereUpdateKnopf() {
if (!pendingUpdate || !pendingUpdate.asset || updInstalliertGerade) return;
let laeuft = false;
try { laeuft = ((await window.api.laufendeInstanzen()) || []).length > 0; } catch { /* dann nicht sperren */ }
const btn = el('upd-install');
btn.disabled = laeuft;
btn.textContent = laeuft ? 'Minecraft läuft noch' : 'Installieren';
el('upd-hint').textContent = laeuft
? 'Das Update wird erst installiert, wenn kein Minecraft mehr läuft. Beende das Spiel – danach kannst du hier auf „Installieren“ klicken.'
: updHintNormal;
}
// Links in den Update-Hinweisen im Browser öffnen, nie im Launcher-Fenster
@@ -1731,10 +1748,19 @@ async function startUpdate() {
const btn = el('upd-install');
btn.disabled = true;
btn.textContent = 'Wird installiert …';
updInstalliertGerade = true;
el('upd-progress').classList.remove('hidden');
el('upd-status').textContent = 'Wird heruntergeladen …';
const res = await window.api.updateInstall();
if (!res.ok) updInstalliertGerade = false;
if (!res.ok && res.spielLaeuft) {
// Spiel lief schon oder ist während des Downloads gestartet worden
el('upd-progress').classList.add('hidden');
el('upd-status').textContent = '';
aktualisiereUpdateKnopf();
return;
}
if (res.ok) {
el('upd-status').textContent = res.kind === 'portable'
? 'Launcher schließt sich, wird ersetzt und startet automatisch neu.'
@@ -7849,6 +7875,8 @@ window.addEventListener('DOMContentLoaded', async () => {
}
el('upd-notes').addEventListener('click', updateLinkKlick);
window.api.onLaufendeInstanzen(setzeLaufende);
// Update-Dialog offen: Knopf freigeben, sobald das letzte Spiel beendet ist (bzw. sperren, wenn eins startet)
window.api.onLaufendeInstanzen(() => { if (!el('modal-update').classList.contains('hidden')) aktualisiereUpdateKnopf(); });
window.api.laufendeInstanzen().then(setzeLaufende).catch(() => {});
el('grid').addEventListener('mousemove', kippeZurMaus);
baueLichtpunkte();