{ inputs, config, lib, pkgs, system, ... }: let cfg = config.services.minecraft; in { config = lib.mkIf (cfg.enable && cfg.servers.survival.enable) { services.minecraft-servers.servers."survival" = { enable = true; autoStart = true; enableReload = true; package = pkgs.paperServers.paper-1_21_4; serverProperties = { online-mode = false; server-ip = "127.0.0.1"; server-port = 49333; difficulty = 3; gamemode = 1; max-players = 5; }; openFirewall = false; # Should use Velocity Player Proxy # Add Plugins symlinks = { "plugins/LuckPerms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1567/bukkit/loader/LuckPerms-Bukkit-5.4.150.jar"; sha512 = "39cr9nd68afrrvn80kvdgaml37xkj3mzhv50y3app5j1199hg12kls29r49x06p9rxm6dk7i0j8aww2hw4ahm18andb69a5kp97vf94"; }; }; # Configure Velocity Modern forwarding https://docs.papermc.io/velocity/player-information-forwarding#configuring-modern-forwarding-for-paper files."spigot.yml".value = { settings.bungeecord = false; }; files."config/paper-global.yml".value = { proxies.velocity.enabled = true; proxies.velocity.online-mode = "online-mode"; forwarding.secret = ""; # TODO: Add Forewarding Secret using Sops }; }; }; }