Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / papermc / default.nix
blob20861779185cef167975d06a3bcf64aa6f6c5194
2   lib,
3   stdenvNoCC,
4   fetchurl,
5   jre,
6   makeBinaryWrapper,
7 }:
8 stdenvNoCC.mkDerivation (finalAttrs: {
9   pname = "papermc";
10   version = "1.20.2.234";
12   src =
13     let
14       mcVersion = lib.versions.pad 3 finalAttrs.version;
15       buildNum = builtins.elemAt (lib.splitVersion finalAttrs.version) 3;
16     in
17     fetchurl {
18       url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
19       hash = "sha256-fR7Dq09iFGVXodQjrS7Hg4NcrKPJbNg0hexU520JC6c=";
20     };
22   installPhase = ''
23     runHook preInstall
25     install -D $src $out/share/papermc/papermc.jar
27     makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
28       --append-flags "-jar $out/share/papermc/papermc.jar nogui"
30     runHook postInstall
31   '';
33   nativeBuildInputs = [
34     makeBinaryWrapper
35   ];
37   dontUnpack = true;
38   preferLocalBuild = true;
39   allowSubstitutes = false;
41   meta = {
42     description = "High-performance Minecraft Server";
43     homepage = "https://papermc.io/";
44     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
45     license = lib.licenses.gpl3Only;
46     platforms = lib.platforms.unix;
47     maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
48     mainProgram = "minecraft-server";
49   };