Live map: plugin/mod chunk+player sync, admin panel Live Map section, launcher transport

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DjMbLQujBHunCCu5GpsHaT
This commit is contained in:
Claude committed 2026-09-30 17:15:24 +00:00
1 parent 8acb4a64e6
commit fdc54577fd
14 files changed
+769 -8

No files matched your search

+5 -2
View File
@@ -4,6 +4,7 @@
CircleDot, Ban, Server,
} from '@lucide/svelte';
import Avatar from '../components/Avatar.svelte';
import LiveMapPanel from '../components/LiveMapPanel.svelte';
import Modal from '../components/Modal.svelte';
import ServerForm from '../components/ServerForm.svelte';
import TokenReveal from '../components/TokenReveal.svelte';
@@ -18,7 +19,7 @@
let sort = $state('playtime_secs');
let groups = $state<Group[]>([]);
let info = $state<AuthServerInfo | null>(null);
let draft = $state<ServerDraft>({ name: '', access: 'all', allowed_groups: [], require_launcher: false });
let draft = $state<ServerDraft>({ name: '', access: 'all', allowed_groups: [], require_launcher: false, live_map_enabled: false });
let editOpen = $state(false);
let token = $state<string | null>(null);
let tokenOpen = $state(false);
@@ -78,7 +79,7 @@
function openEdit() {
if (!s) return;
draft = { instance_id: s.instance_id, name: s.name, map_url: s.map_url, access: s.access, allowed_groups: [...s.allowed_groups], require_launcher: s.require_launcher };
draft = { instance_id: s.instance_id, name: s.name, map_url: s.map_url, live_map_enabled: s.live_map_enabled, access: s.access, allowed_groups: [...s.allowed_groups], require_launcher: s.require_launcher };
editOpen = true;
}
async function saveEdit() {
@@ -147,6 +148,8 @@
<div class="card tile"><span class="lbl"><Clock size={14} /> Total playtime</span><span class="val">{duration(d.totals.playtime_secs)}</span></div>
</div>
<LiveMapPanel id={s.id} enabled={s.live_map_enabled} />
<div class="grid layout">
<section class="card board">
<div class="section-title">