···11-{ callPackage, lib }:
11+{ callPackage, lib, javaPackages }:
22# if you add more versions make sure to add to all-packages.nix
33let
44 versions = lib.importJSON ./versions.json;
55+56 latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
67 escapeVersion = builtins.replaceStrings [ "." ] [ "_" ];
88+99+ getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless;
710811 packages = lib.mapAttrs'
912 (version: value: {
1013 name = "minecraft-server_${escapeVersion version}";
1111- value = callPackage ./derivation.nix { inherit (value) version url sha1; };
1414+ value = callPackage ./derivation.nix {
1515+ inherit (value) version url sha1;
1616+ jre_headless = getJavaVersion (if value.javaVersion == null then 8 else value.javaVersion); # versions <= 1.6 will default to 8
1717+ };
1218 })
1319 versions;
1420in
+8
pkgs/games/minecraft-server/update.py
···5555 for download_name, download_info in self.get_manifest()["downloads"].items()
5656 }
57575858+ def get_java_version(self) -> Any:
5959+ """
6060+ Return the java version specified in a version's manifest, if it is
6161+ present. Versions <= 1.6 do not specify this.
6262+ """
6363+ return self.get_manifest().get("javaVersion", {}).get("majorVersion", None)
6464+5865 def get_server(self) -> Optional[Download]:
5966 """
6067 If the version has a server download available, return the Download
···138145139146 for version, server in servers.items():
140147 server["version"] = latest_major_releases[version].id
148148+ server["javaVersion"] = latest_major_releases[version].get_java_version()
141149 return servers
142150143151