Unverified Commit 310299b5 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #256981 from Gerg-L/papermc

papermc: 1.20.1.83 -> 1.20.2.223
parents 8dc6f383 fd559192
Loading
Loading
Loading
Loading
+37 −27
Original line number Diff line number Diff line
{ lib, stdenv, fetchurl, bash, jre }:

stdenv.mkDerivation rec {
{
  lib,
  stdenvNoCC,
  fetchurl,
  jre,
  makeBinaryWrapper,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
  pname = "papermc";
  version = "1.20.1.83";
  version = "1.20.2.234";

  jar = let
    mcVersion = lib.versions.pad 3 version;
    buildNum = builtins.elemAt (lib.versions.splitVersion version) 3;
  in fetchurl {
  src =
    let
      mcVersion = lib.versions.pad 3 finalAttrs.version;
      buildNum = builtins.elemAt (lib.splitVersion finalAttrs.version) 3;
    in
    fetchurl {
      url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
    sha256 = "sha256-HQpc3MOXa1wkXqgm9ciQj04FUIyuupnYiu+2RZ/sXE4=";
      hash = "sha256-fR7Dq09iFGVXodQjrS7Hg4NcrKPJbNg0hexU520JC6c=";
    };

  preferLocalBuild = true;
  installPhase = ''
    runHook preInstall

  dontUnpack = true;
  dontConfigure = true;
    install -D $src $out/share/papermc/papermc.jar

  buildPhase = ''
    cat > minecraft-server << EOF
    #!${bash}/bin/sh
    exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui
  '';
    makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
      --append-flags "-jar $out/share/papermc/papermc.jar nogui"

  installPhase = ''
    install -Dm444 ${jar} $out/share/papermc/papermc.jar
    install -Dm555 -t $out/bin minecraft-server
    runHook postInstall
  '';

  nativeBuildInputs = [
    makeBinaryWrapper
  ];

  dontUnpack = true;
  preferLocalBuild = true;
  allowSubstitutes = false;

  meta = {
    description = "High-performance Minecraft Server";
    homepage = "https://papermc.io/";
@@ -37,4 +47,4 @@ stdenv.mkDerivation rec {
    maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
    mainProgram = "minecraft-server";
  };
}
})