{ config, lib, pkgs, ... }:
let
  common = import ../../common { inherit pkgs; };
in {
  services = {
    minecraft-servers.servers.johnside = {
      package = pkgs.paperServers.paper-1_20_6;
      jvmOpts = "-Xmx2500M";
      serverProperties = common.serverProperties // {
        difficulty = 2;
        server-port = 30009;
        motd = "\\u00A7l\\u00A79Johnside SMP\\u00A7r \\u00A7l\\u00A7fworld for \\u00A74John lovers only.";
      };
      whitelist = common.whitelist;
      symlinks = common.paperSymlinks // {
        "plugins/CustomDiscs.jar" = builtins.fetchurl {
          url = "https://github.com/Navoei/CustomDiscs/releases/download/v3.0/custom-discs-3.0.jar";
          sha256 = "0xv0zrkdmjx0d7l34nqag8j004pm9zqivc12d3zy9pdrkv7pz87d";
        };
        "plugins/NotTooExpensive.jar" = builtins.fetchurl {
          url = "https://github.com/Mrredstone5230/Not-Too-Expensive/releases/download/1.1/not-too-expensive-1.1.jar";
          sha256 = "0da4v5l7iwry3wc21292lkmjprgmign4vdshzmhp7qc9hx26pj2d";
        };
        "plugins/SilkTouchHands.jar" = builtins.fetchurl {
          url = "https://github.com/5U55/SilkTouchSpigot/releases/download/v1.1/SilkTouchv1.1.jar";
          sha256 = "0mbp73xclr7f5m2lbdfz6is1j8vvyv1qwpl28sm089zrpm73qn6w";
        };
      };
      files = common.configFiles;
    };
    cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.nixfox.ca" ];
  };
}
