2021-12-27 06:16:48 +00:00
|
|
|
{ fetchurl
|
2022-12-15 17:47:27 +00:00
|
|
|
, fetchFromGitHub
|
|
|
|
, graphicsmagick
|
2021-12-27 06:16:48 +00:00
|
|
|
, lib
|
2022-12-15 17:47:27 +00:00
|
|
|
, makeDesktopItem
|
2021-12-27 06:16:48 +00:00
|
|
|
, makeWrapper
|
2023-02-07 02:41:49 +00:00
|
|
|
, nix-update-script
|
2021-12-27 06:16:48 +00:00
|
|
|
, stdenv
|
|
|
|
|
|
|
|
# Dependencies
|
|
|
|
, jre
|
|
|
|
}:
|
|
|
|
|
2023-06-07 21:37:01 +00:00
|
|
|
let
|
|
|
|
java = jre.override { enableJavaFX = true; };
|
|
|
|
in
|
2021-12-27 06:16:48 +00:00
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "mcaselector";
|
2023-06-09 16:35:07 +00:00
|
|
|
version = "2.2.1";
|
2021-12-27 06:16:48 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://github.com/Querz/mcaselector/releases/download/${version}/mcaselector-${version}.jar";
|
2023-06-09 16:35:07 +00:00
|
|
|
hash = "sha256-0TNp8QRwIsn3plF8XQdiwFCBinsItM0GFl+tDkbxu6I=";
|
2021-12-27 06:16:48 +00:00
|
|
|
};
|
|
|
|
dontUnpack = true;
|
|
|
|
|
2022-12-15 17:47:27 +00:00
|
|
|
iconSrc = fetchFromGitHub {
|
|
|
|
owner = "Querz";
|
|
|
|
repo = "mcaselector";
|
|
|
|
rev = "ccb5d2570350f97f4c3c58753aefbd2a89b4e2c1";
|
|
|
|
sparseCheckout = [ "src/main/resources/img/icon.png" ];
|
|
|
|
hash = "sha256-MUx+xB7irlkbLqbXvovZ2xG63Wp33ARWQFszB3eBOwM=";
|
|
|
|
};
|
|
|
|
|
|
|
|
desktopItem = makeDesktopItem {
|
|
|
|
categories = [ "Utility" ];
|
|
|
|
genericName = "Minecraft chunk editor";
|
|
|
|
desktopName = "MCA Selector";
|
|
|
|
name = pname;
|
|
|
|
icon = pname;
|
|
|
|
exec = meta.mainProgram;
|
|
|
|
};
|
|
|
|
|
|
|
|
nativeBuildInputs = [ graphicsmagick makeWrapper ];
|
|
|
|
buildPhase = ''
|
|
|
|
gm convert $iconSrc/src/main/resources/img/icon.png \
|
|
|
|
-filter 'point' -resize '1600%' ${pname}.png
|
|
|
|
'';
|
2023-06-09 23:09:18 +00:00
|
|
|
|
2021-12-27 06:16:48 +00:00
|
|
|
installPhase = ''
|
2022-12-15 14:42:03 +00:00
|
|
|
install -D $src $out/share/${pname}.jar
|
2023-06-07 21:37:01 +00:00
|
|
|
makeWrapper ${java}/bin/java $out/bin/${pname} \
|
2022-12-15 14:42:03 +00:00
|
|
|
--add-flags "-jar $out/share/${pname}.jar"
|
2022-12-15 17:47:27 +00:00
|
|
|
|
|
|
|
install -D -t $out/share/icons ${pname}.png
|
|
|
|
install -D -t $out/share/applications ${desktopItem}/share/applications/*
|
2021-12-27 06:16:48 +00:00
|
|
|
'';
|
|
|
|
|
2023-06-09 23:09:18 +00:00
|
|
|
doInstallCheck = true;
|
|
|
|
installCheckPhase = "$out/bin/${pname} --version";
|
|
|
|
|
2023-02-07 02:41:49 +00:00
|
|
|
passthru.updateScript = nix-update-script { };
|
|
|
|
|
2021-12-27 06:16:48 +00:00
|
|
|
meta = {
|
|
|
|
description = "A tool to select chunks from Minecraft worlds for deletion or export.";
|
|
|
|
homepage = "https://github.com/Querz/mcaselector";
|
|
|
|
license = lib.licenses.mit;
|
2022-12-15 14:42:03 +00:00
|
|
|
mainProgram = pname;
|
2021-12-27 06:16:48 +00:00
|
|
|
};
|
|
|
|
}
|