Files
Matt Sijbers a1331212cb Initial commit: Brass & Sigil monorepo
Self-hosted Minecraft modpack distribution + administration system.

- launcher/  Avalonia 12 desktop client; single-file win-x64 publish.
             Microsoft auth via XboxAuthNet, manifest+SHA-1 mod sync,
             portable install path, sidecar settings.
- server/    brass-sigil-server daemon (.NET 8, linux-x64). Wraps the
             MC subprocess, embedded Kestrel admin panel with cookie
             auth + rate limiting, RCON bridge, scheduled backups,
             BlueMap CLI integration with player markers + skin proxy,
             friend-side whitelist request flow, world wipe with seed
             selection (keep current / random / custom).
- pack/      pack.lock.json (Modrinth + manual CurseForge entries),
             data-only tweak source under tweaks/, build outputs in
             overrides/ (gitignored).
- scripts/   Build-Pack / Build-Tweaks / Update-Pack / Check-Updates
             plus Deploy-Brass.ps1 unified one-shot deploy with
             version-bump pre-flight and daemon-state detection.
2026-05-05 00:19:05 +01:00

43 lines
1.5 KiB
JavaScript

"use strict";
import { tickStatus, tickPlayers, tickWhitelist, refreshWhitelistSoon } from "./modules/panels.js";
import { setupConsole } from "./modules/console.js";
import { setupAutocomplete } from "./modules/autocomplete.js";
import { setupWhitelistActions } from "./modules/whitelist.js";
import { setupServerControls } from "./modules/serverControls.js";
import { setupPregen } from "./modules/pregen.js";
import { setupAuth } from "./modules/auth.js";
import { setupUpdate } from "./modules/update.js";
import { setupDanger } from "./modules/danger.js";
import { setupBackup } from "./modules/backup.js";
import { setupModalTriggers } from "./modules/modal.js";
import { setupSettings } from "./modules/settings.js";
import { setupMap } from "./modules/map.js";
setupModalTriggers();
setupAuth();
setupConsole();
setupAutocomplete();
setupWhitelistActions(refreshWhitelistSoon);
setupServerControls();
setupPregen();
setupUpdate();
setupBackup();
setupDanger();
setupSettings();
setupMap();
// First paint
tickStatus();
tickPlayers();
tickWhitelist();
// Polling cadence:
// status 3 s -- pid/uptime/pack version (cheap, doesn't change much)
// players 10 s -- RCON `list` call; players join/leave infrequently
// whitelist 30 s -- file read; mostly relies on refresh-on-action via add/remove
// (Logs are NOT polled -- they stream live via Server-Sent Events from /api/logs/stream.)
setInterval(tickStatus, 3000);
setInterval(tickPlayers, 10000);
setInterval(tickWhitelist, 30000);