{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, copyDesktopItems, jre8, libxxf86vm, libGL, openal, pulseaudio, xrandr }: stdenv.mkDerivation rec { pname = "betacraft"; version = "1.09_17"; launcherjar = fetchurl { url = "https://github.com/betacraftuk/betacraft-launcher/releases/download/${version}/launcher-${version}.jar"; hash = "sha256-CMemX7mrCa5d9kQJN1/ryeBnJ/s6yz3aHq9ym4WWWOM"; }; nativeBuildInputs = [ makeWrapper copyDesktopItems ]; runtimeLibs = lib.makeLibraryPath ([ libxxf86vm libGL openal ]); runtimeBins = lib.makeBinPath ([ xrandr ]); desktopItems = [ (makeDesktopItem { name = "betacraft"; desktopName = "Betacraft Launcher"; exec = "betacraft"; categories = [ "Game" ]; }) ]; phases = [ "installPhase" "preFixup" ]; installPhase = '' runHook preInstall mkdir -p $out/share/betacraft $out/bin cp -r ${launcherjar} $out/share/betacraft/launcher-${version}.jar runHook postInstall ''; preFixup = '' makeWrapper ${pulseaudio}/bin/padsp $out/bin/betacraft \ --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \ --prefix PATH : "${runtimeBins}" \ --set DISPLAY ":0" \ --add-flags ${jre8}/lib/openjdk/jre/bin/java \ --add-flags -jar \ --add-flags $out/share/betacraft/launcher-${version}.jar ''; }