First pass at rewriting the HTTPD

This commit is contained in:
2026-05-19 23:17:43 -04:00
parent 533b5b52b8
commit c421970ce0
157 changed files with 4962 additions and 82519 deletions
+9 -5
View File
@@ -1,18 +1,22 @@
param(
[string]$Version = ""
[string]$Version = "",
[string]$AssetRoot = ""
)
# Downloads the vanilla Minecraft assets used by the HTTPD live inventory view
# into src/main/resources/httpd/assets for local development.
# into the same minecraft-assets cache layout used by the running module.
#
# Usage:
# ./scripts/download-minecraft-assets.ps1 # latest release
# ./scripts/download-minecraft-assets.ps1 1.21.10 # specific version
# ./scripts/download-minecraft-assets.ps1 26.1.2 # specific version
# ./scripts/download-minecraft-assets.ps1 -AssetRoot "plugins/Plex/modules/<HTTPD module>/minecraft-assets"
$ErrorActionPreference = "Stop"
$ProjectRoot = Resolve-Path (Join-Path $PSScriptRoot "..")
$AssetRoot = Join-Path $ProjectRoot "src/main/resources/httpd/assets"
if ([string]::IsNullOrWhiteSpace($AssetRoot)) {
$AssetRoot = if ($env:PLEX_HTTPD_ASSET_ROOT) { $env:PLEX_HTTPD_ASSET_ROOT } else { Join-Path $ProjectRoot "minecraft-assets" }
}
$ManifestUrl = "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json"
$manifest = Invoke-RestMethod -Uri $ManifestUrl -TimeoutSec 30
@@ -76,7 +80,7 @@ try {
$zip.Dispose()
}
Set-Content -Path (Join-Path $AssetRoot ".minecraft-version") -Value $Version -Encoding UTF8
Set-Content -Path (Join-Path $AssetRoot "version.txt") -Value $Version -Encoding UTF8
Write-Host "Extracted $extracted files to $AssetRoot"
}
finally {
+5 -4
View File
@@ -2,15 +2,16 @@
set -eu
# Downloads the vanilla Minecraft assets used by the HTTPD live inventory view
# into src/main/resources/httpd/assets for local development.
# into the same minecraft-assets cache layout used by the running module.
#
# Usage:
# ./scripts/download-minecraft-assets.sh # latest release
# ./scripts/download-minecraft-assets.sh 1.21.10 # specific version
# ./scripts/download-minecraft-assets.sh 26.1.2 # specific version
# ./scripts/download-minecraft-assets.sh 26.1.2 "plugins/Plex/modules/<HTTPD module>/minecraft-assets"
VERSION="${1:-}"
PROJECT_ROOT="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
ASSET_ROOT="$PROJECT_ROOT/src/main/resources/httpd/assets"
ASSET_ROOT="${2:-${PLEX_HTTPD_ASSET_ROOT:-$PROJECT_ROOT/minecraft-assets}}"
python3 - "$VERSION" "$ASSET_ROOT" <<'PY'
import json
@@ -71,6 +72,6 @@ with tempfile.TemporaryDirectory() as tmp:
shutil.copyfileobj(source, out)
extracted += 1
(asset_root / ".minecraft-version").write_text(version + "\n", encoding="utf-8")
(asset_root / "version.txt").write_text(version + "\n", encoding="utf-8")
print(f"Extracted {extracted} files to {asset_root}")
PY
+2 -2
View File
@@ -29,10 +29,10 @@ function Download-IfMissing($Url, $Target) {
Invoke-WebRequest -Uri $Url -OutFile $Target -TimeoutSec 600
}
# Resolve version (explicit > cached > latest)
# Resolve version (explicit > local debug asset cache > latest)
$manifest = Invoke-RestMethod -Uri $ManifestUrl -TimeoutSec 30
if ([string]::IsNullOrWhiteSpace($Version)) {
$cachedFile = Join-Path $ProjectRoot "src/main/resources/httpd/assets/.minecraft-version"
$cachedFile = Join-Path $ProjectRoot "minecraft-assets/version.txt"
if (Test-Path $cachedFile) {
$Version = (Get-Content $cachedFile -Raw).Trim()
} else {