a1331212cb
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.
43 lines
1.5 KiB
JavaScript
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);
|