#!/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())