{pkgs, lib, config, ...}: let sources = import ../../../nix/sources.nix; in { nixpkgs.config.allowUnfree = true; networking.firewall.allowedTCPPorts = [ 25565 ]; services.minecraft-server = { enable = true; package = (pkgs.minecraft-server.overrideAttrs (old: rec { version = "${sources.papermc.rev}-${sources.papermc.version}"; name = "papermc-${version}"; src = sources.papermc.outPath; })); declarative = true; eula = true; jvmOpts = "-Xmx1536M -Xms512M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true"; serverProperties = { server-port = "25565"; gamemode = "survival"; motd = "NixCraft4future"; max-players = "20"; whitelist = true; force-gamemode = true; difficulty = "easy"; allow-flight= false; pvp = false; enable-rcon = false; }; whitelist = { AaronPirt = "bbb8a319-a0fe-4b7a-bdcc-d7941a7fcfa8"; ACY2003 = "e6caedfb-95de-44b6-bea7-962e765f2b74"; Hexchen = "137ad280-856c-4f27-b258-b263d4e6863b"; laXDer = "98043845-8bac-4d38-a479-d116eea90356"; Naigh = "96dd9a77-2a65-415b-8d48-1f00e146dc42"; Schweby = "a5680c67-1a85-4a9b-81b6-a3a0b7b52467"; wolkenzebratopf = "34f47e5b-3f81-4639-ab6b-97be5e358054"; yan_min = "a2d1b6f2-1b58-4433-be67-f9872c4332f1"; Zauberberg = "4c59c4c3-f16b-4b7e-b707-9a176958e7cf"; }; }; }