Files
minecraft-server-resource-pack/build/scripts/resolve_latest_minecraft_release.py
T

33 lines
1.1 KiB
Python

#!/usr/bin/env python3
from __future__ import annotations
import json
from urllib.request import urlopen
VERSION_MANIFEST_URL = "https://launchermeta.mojang.com/mc/game/version_manifest_v2.json"
def main() -> int:
with urlopen(VERSION_MANIFEST_URL, timeout=30) as response:
manifest = json.load(response)
latest_release = manifest["latest"]["release"]
latest_snapshot = manifest["latest"]["snapshot"]
latest_release_entry = next(version for version in manifest["versions"] if version["id"] == latest_release)
with urlopen(latest_release_entry["url"], timeout=30) as response:
version_metadata = json.load(response)
java_version = version_metadata.get("javaVersion", {}).get("majorVersion")
if not isinstance(java_version, int):
raise RuntimeError(f"Latest Minecraft release {latest_release} does not declare a javaVersion.majorVersion")
print(latest_release)
print(f"snapshot={latest_snapshot}")
print(f"java_version={java_version}")
return 0
if __name__ == "__main__":
raise SystemExit(main())