{ config, lib, pkgs, nodes, ... }: let uberBukkit = pkgs.fetchurl { url = "https://github.com/Moresteck/uberbukkit/releases/download/2.0.2-241217-1442-3a5552b/uberbukkit-2.0.2.jar"; sha256 = "ZttLDpBgeR2SM90kdegwqem1TalBVTndzsxziusCzlA="; }; in { services = { minecraft-servers.servers.uberbeta = { package = pkgs.vanillaServers.vanilla.overrideAttrs (oldAttrs: { src = uberBukkit; }); jvmOpts = "-Xmx512M"; serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30005; }; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.primeDomain}" ]; }; networking.firewall.extraInputRules = let targetHosts = lib.attrValues (lib.mapAttrs (_: node: node.config.deployment.targetHost) nodes); in lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable '' ip6 saddr { ${lib.concatStringsSep ", " targetHosts} } tcp dport 30005 accept ''; }