{ lib, config, pkgs, ... }:

let
  domain = "minecraft.giugl.io";
  
  utilities = import ./utilities.nix { inherit lib config; };
  inherit (utilities) architectInterfaceAddress;
in
{
  architect.firewall.openTCP = [ 25565 ];
  
  services.minecraft-server = {
    enable = true;
    eula = true;
    declarative = true;
    package = pkgs.unstablePkgs.minecraft-server;
    serverProperties = { motd = "Welcome on the RuNas server!"; };
  };
  
  networking.extraHosts = ''
    ${architectInterfaceAddress "lan"} ${domain}
    ${architectInterfaceAddress "tailscale"} ${domain}
  '';
}