{ pkgs, lib, config, inputs, ... }: let modpack = pkgs.fetchPackwizModpack { # version = "main"; url = "https://github.com/nix-astral/create-astral/raw/main/pack.toml"; packHash = "sha256-QcUg4PRxgGdQIB5d+XnJCmhh6+r/zDtWRFSTkSOR1ik="; manifestHash = "sha256:16pjv73nv7a5fy6rvzgg88228niirnwd0ip7mw5dmzd7q1b0xqsr"; }; mcVersion = modpack.manifest.versions.minecraft; fabricVersion = modpack.manifest.versions.fabric; serverVersion = lib.replaceStrings [ "." ] [ "_" ] "fabric-${mcVersion}"; in { options.mods.server.astral = { enable = lib.mkEnableOption { default = false; description = "enables minecraft create astral server"; }; memory = lib.mkOption { default = "4G"; description = "server detitated wam"; }; autoStart = lib.mkEnableOption { default = true; description = "start server on boot"; }; }; config = lib.mkIf config.mods.server.astral.enable { services.minecraft-servers.servers.astral = { enable = true; serverProperties = { online-mode = true; }; autoStart = config.mods.server.astral.autoStart; jvmOpts = (import ./aikar-flags.nix) config.mods.server.astral.memory; package = pkgs.fabricServers.${serverVersion}.override { loaderVersion = fabricVersion; }; symlinks = { "global_packs" = "${modpack}/global_packs"; "kubejs" = "${modpack}/kubejs"; "config" = "${modpack}/config"; "mods" = "${modpack}/mods"; }; }; }; }