33 lines
1.1 KiB
Python
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()) |