From 0f267e798f9dc1d9443738f792be00a9eebb4676 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Sun, 18 May 2025 05:23:30 +0200 Subject: [PATCH] Completed modpack flake --- flake.nix | 3 ++ nix-modpack/lib/default.nix | 58 +++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index e92f6ed..81d5cb9 100644 --- a/flake.nix +++ b/flake.nix @@ -11,5 +11,8 @@ inputs.nix-modpack (system: { packUrl = "https://git.bulthuis.dev/Jan/Modpack/raw/branch/main/pack.toml"; server = inputs.nix-minecraft.legacyPackages.${system}.neoForgeServers.neoforge-21_1_172; + clientGameVersion = "1.21.1"; + clientLoaderUid = "net.neoforged"; + clientLoaderVersion = "21.1.172"; }); } diff --git a/nix-modpack/lib/default.nix b/nix-modpack/lib/default.nix index ac852da..0b3c8e1 100644 --- a/nix-modpack/lib/default.nix +++ b/nix-modpack/lib/default.nix @@ -19,11 +19,65 @@ let buildInfo = builder pkgs.system; in - lib.trace buildInfo { + rec { + default = server; server = pkgs.writeShellScriptBin "minecraft-server" '' ${lib.getExe pkgs.jre} -jar ${bootstrap} -g -s server ${buildInfo.packUrl} - # ${buildInfo.server}/bin/minecraft-server + ${buildInfo.server}/bin/minecraft-server ''; + client = pkgs.stdenvNoCC.mkDerivation { + name = "minecraft-client"; + + dontUnpack = true; + + mmcpack = '' + { + "components": [ + { + "important": true, + "uid": "net.minecraft", + "version": "${buildInfo.clientGameVersion}" + }, + { + "uid": "${buildInfo.clientLoaderUid}", + "version": "${buildInfo.clientLoaderVersion}" + } + ], + "formatVersion": 1 + } + ''; + + instancecfg = pkgs.writeText "instance.cfg" '' + [General] + ConfigVersion=1.2 + InstanceType=OneSix + OverrideCommands=true + PreLaunchCommand=\"$INST_JAVA\" -jar packwiz-installer-bootstrap.jar ${buildInfo.packUrl} + ''; + + buildPhase = '' + # Remove env-vars + rm env-vars + + # Add the mmc-pack + echo $mmcpack > ./mmc-pack.json + + # Add the instance-cfg + cp $instancecfg ./instance.cfg + + # Add the bootstrap jar + mkdir ./minecraft + cp ${bootstrap} ./minecraft/packwiz-installer-bootstrap.jar + + # Zip everything together + ${pkgs.zip}/bin/zip -r modpack.zip ./* + ''; + + installPhase = '' + mkdir $out + mv modpack.zip $out/ + ''; + }; }; overlay = final: prev: mkPackages prev;