universe/hosts/Infini-DL360/minecraft.nix

39 lines
1.1 KiB
Nix

{ pkgs, ... }:
let
ram = amount: [
"-Xmx${amount}"
"-Xms${amount}"
];
common = [ "-XX:+UseNUMA" ];
java8 = common ++ [ "-XX:UseG1GC" ];
java17 = common ++ [ "-XX:+UseZGC" ];
java21 = java17 ++ [ "-XX:+ZGenerational" ];
unsup = [ "-javaagent:${pkgs.unsup}" ];
withJava21 = minecraft: minecraft.override { jre_headless = pkgs.openjdk21; };
withVersion = loaderVersion: minecraft: minecraft.override { inherit loaderVersion; };
inherit (pkgs) minecraftServers;
in
{
services.minecraft-servers.servers.hackcraft = {
enable = true;
jvmOpts = java21 ++ (ram "8G") ++ unsup;
serverProperties = {
motd = "Hacking, and perhaps, even crafting!";
difficulty = "normal";
allow-flight = true;
enforce-secure-profile = false;
server-port = 25675;
spawn-protection = 0;
};
package = pkgs.writeShellApplication {
name = "mincraft-server";
runtimeInputs = with pkgs; [ openjdk21 ];
text = ''
java "$@" @libraries/net/minecraftforge/forge/1.20.1-47.4.0/unix_args.txt nogui
'';
};
};
}