diff --git a/modules/home/settings/nix/channels/default.nix b/modules/home/settings/nix/channels/default.nix index c5fe6b78..499e5afd 100644 --- a/modules/home/settings/nix/channels/default.nix +++ b/modules/home/settings/nix/channels/default.nix @@ -1,14 +1,14 @@ { config, lib, pkgs, stable, unstable, ... }: -{ +with pkgs; { nix.registry.stable.flake = stable; nix.registry.unstable.flake = unstable; _module.args.pkgsStable = import stable { - inherit (pkgs.stdenv.hostPlatform) system; + inherit (stdenv.hostPlatform) system; inherit (config.nixpkgs) config; }; _module.args.pkgsUnstable = import unstable { - inherit (pkgs.stdenv.hostPlatform) system; + inherit (stdenv.hostPlatform) system; inherit (config.nixpkgs) config; }; } diff --git a/modules/system/services/server/minecraft/common/default.nix b/modules/system/services/server/minecraft/common/default.nix index 6a985401..a5e951ce 100644 --- a/modules/system/services/server/minecraft/common/default.nix +++ b/modules/system/services/server/minecraft/common/default.nix @@ -1,66 +1,72 @@ -{ pkgs, ... }: +{ config, lib, ... }: { - # Common properties - serverProperties = { - enforce-secure-profile = false; - max-players = 20; - online-mode = false; - spawn-protection = 0; - view-distance = 10; - simulation-distance = 10; - white-list = true; + options.services.minecraft-servers.common = lib.mkOption { + type = lib.types.attrs; }; - # Common whitelist - whitelist = { - K5G = "8656dc10-6050-4a17-b29e-88c4babbc54c"; - JimmJam = "2f7affee-e10b-450f-a5e2-44c79a14a109"; - Viceebun = "f583f591-ad9b-4a30-8d91-514881b31394"; - DewDemolisher = "9205524f-3886-483d-b471-82bb9905671a"; - Freecorn1854 = "8299cd8d-3cd4-4779-8180-0d9db6dc12a9"; - Freemid1854 = "cf430607-3c2e-4c8b-8183-28299e801fa5"; - Tinyattack09 = "aaa8e9e2-4e51-4925-b9df-8a9504aec5d5"; - Ankha3000 = "dd65a277-f618-411e-812c-900c9c7e82d9"; - catoiico = "01f10cdf-c146-437e-99b1-2278b5dbe420"; - Sp0ok7 = "016c3daa-3dd5-4631-ae79-3a6f48d7cbe6"; - PooxterMooxter = "c973f4b5-ab50-45e3-b3eb-36286a6f66aa"; - }; + config.services.minecraft-servers.common = { + # Common properties + serverProperties = { + enforce-secure-profile = false; + max-players = 20; + online-mode = false; + spawn-protection = 0; + view-distance = 10; + simulation-distance = 10; + white-list = true; + }; - # Common plugins - paperSymlinks = { - "plugins/BungeeGuard.jar" = builtins.fetchurl { - url = "https://github.com/lucko/BungeeGuard/releases/download/v1.3.3/BungeeGuard.jar"; - sha256 = "0cackavwk7kl71hn1i78hcvkdp7q81srq35nranpvysbmm8v34vk"; + # Common whitelist + whitelist = { + K5G = "8656dc10-6050-4a17-b29e-88c4babbc54c"; + JimmJam = "2f7affee-e10b-450f-a5e2-44c79a14a109"; + Viceebun = "f583f591-ad9b-4a30-8d91-514881b31394"; + DewDemolisher = "9205524f-3886-483d-b471-82bb9905671a"; + Freecorn1854 = "8299cd8d-3cd4-4779-8180-0d9db6dc12a9"; + Freemid1854 = "cf430607-3c2e-4c8b-8183-28299e801fa5"; + Tinyattack09 = "aaa8e9e2-4e51-4925-b9df-8a9504aec5d5"; + Ankha3000 = "dd65a277-f618-411e-812c-900c9c7e82d9"; + catoiico = "01f10cdf-c146-437e-99b1-2278b5dbe420"; + Sp0ok7 = "016c3daa-3dd5-4631-ae79-3a6f48d7cbe6"; + PooxterMooxter = "c973f4b5-ab50-45e3-b3eb-36286a6f66aa"; }; - "plugins/EssentialsX.jar" = builtins.fetchurl { - url = "https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsX-2.20.1.jar"; - sha256 = "0hpm3fk073f2z8aah9l1inq27h9kd60jb2c1grcs8326v85s6bl0"; - }; - "plugins/EssentialsXChat.jar" = builtins.fetchurl { - url = "https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsXChat-2.20.1.jar"; - sha256 = "19jwfymqgvjk0vkm1blhq2q6gi7jkgqznp6bxc3k1sqw4hh5raj0"; - }; - "plugins/LuckPerms.jar" = builtins.fetchurl { - url = "https://download.luckperms.net/1571/bukkit/loader/LuckPerms-Bukkit-5.4.154.jar"; - sha256 = "0ls539d99h4bc3mh0h84gdmgh8lxjakr9rp0il81m695j4j2l5mz"; - }; - "plugins/ProtocolLib.jar" = builtins.fetchurl { - url = "https://ci.dmulloy2.net/job/ProtocolLib/733/artifact/build/libs/ProtocolLib.jar"; - sha256 = "1gslh24kk7dcqiqxphzy8x2nrqa58f8gl5ah0iyg1ndx3pvr4z9m"; - }; - "plugins/Vault.jar" = builtins.fetchurl { - url = "https://github.com/MilkBowl/Vault/releases/download/1.7.3/Vault.jar"; - sha256 = "07fhfz7ycdlbmxsri11z02ywkby54g6wi9q0myxzap1syjbyvdd6"; - }; - "plugins/VoiceChat.jar" = builtins.fetchurl { - url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/Il6UOBoH/voicechat-bukkit-2.5.27.jar"; - sha256 = "1k95sy0hf74y80fzk7960ww8wk210phyaiqkn4q7wlagdq48mxqm"; - }; - }; - # Config files - configFiles = { - "plugins/Essentials/config.yml" = ./essentialsconfig.yml; - "plugins/voicechat/voicechat-server.properties" = ./vcserver.properties; + # Common plugins + paperSymlinks = { + "plugins/BungeeGuard.jar" = builtins.fetchurl { + url = "https://github.com/lucko/BungeeGuard/releases/download/v1.3.3/BungeeGuard.jar"; + sha256 = "0cackavwk7kl71hn1i78hcvkdp7q81srq35nranpvysbmm8v34vk"; + }; + "plugins/EssentialsX.jar" = builtins.fetchurl { + url = "https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsX-2.20.1.jar"; + sha256 = "0hpm3fk073f2z8aah9l1inq27h9kd60jb2c1grcs8326v85s6bl0"; + }; + "plugins/EssentialsXChat.jar" = builtins.fetchurl { + url = "https://github.com/EssentialsX/Essentials/releases/download/2.20.1/EssentialsXChat-2.20.1.jar"; + sha256 = "19jwfymqgvjk0vkm1blhq2q6gi7jkgqznp6bxc3k1sqw4hh5raj0"; + }; + "plugins/LuckPerms.jar" = builtins.fetchurl { + url = "https://download.luckperms.net/1571/bukkit/loader/LuckPerms-Bukkit-5.4.154.jar"; + sha256 = "0ls539d99h4bc3mh0h84gdmgh8lxjakr9rp0il81m695j4j2l5mz"; + }; + "plugins/ProtocolLib.jar" = builtins.fetchurl { + url = "https://ci.dmulloy2.net/job/ProtocolLib/733/artifact/build/libs/ProtocolLib.jar"; + sha256 = "1gslh24kk7dcqiqxphzy8x2nrqa58f8gl5ah0iyg1ndx3pvr4z9m"; + }; + "plugins/Vault.jar" = builtins.fetchurl { + url = "https://github.com/MilkBowl/Vault/releases/download/1.7.3/Vault.jar"; + sha256 = "07fhfz7ycdlbmxsri11z02ywkby54g6wi9q0myxzap1syjbyvdd6"; + }; + "plugins/VoiceChat.jar" = builtins.fetchurl { + url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/Il6UOBoH/voicechat-bukkit-2.5.27.jar"; + sha256 = "1k95sy0hf74y80fzk7960ww8wk210phyaiqkn4q7wlagdq48mxqm"; + }; + }; + + # Config files + configFiles = { + "plugins/Essentials/config.yml" = ./essentialsconfig.yml; + "plugins/voicechat/voicechat-server.properties" = ./vcserver.properties; + }; }; } diff --git a/modules/system/services/server/minecraft/default.nix b/modules/system/services/server/minecraft/default.nix index 1e757e81..527091dc 100644 --- a/modules/system/services/server/minecraft/default.nix +++ b/modules/system/services/server/minecraft/default.nix @@ -1,7 +1,8 @@ { config, lib, minecraft, ... }: { imports = [ - ./servers/default.nix + ./common + ./servers minecraft.nixosModules.minecraft-servers ]; diff --git a/modules/system/services/server/minecraft/servers/blockworld/default.nix b/modules/system/services/server/minecraft/servers/blockworld/default.nix index ab6dcb8e..d6525204 100644 --- a/modules/system/services/server/minecraft/servers/blockworld/default.nix +++ b/modules/system/services/server/minecraft/servers/blockworld/default.nix @@ -1,20 +1,18 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.blockworld = { autoStart = false; package = pkgs.paperServers.paper-1_21_1; jvmOpts = "-Xmx3072M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 2; server-port = 30012; motd = "\\u00A7fArchival \\u00A7l\\u00A7n\\u00A7cBloxelcom \\u00A7r\\u00A7fMinecraft server."; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles; + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/cornworld/default.nix b/modules/system/services/server/minecraft/servers/cornworld/default.nix index d2a8cce1..fafef772 100644 --- a/modules/system/services/server/minecraft/servers/cornworld/default.nix +++ b/modules/system/services/server/minecraft/servers/cornworld/default.nix @@ -1,19 +1,17 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.cornworld = { package = pkgs.paperServers.paper-1_21_4; jvmOpts = "-Xmx2000M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30016; motd = "\\u00a7e\\u00a7lFreecorn Sever"; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles; + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/dewdemolisher/default.nix b/modules/system/services/server/minecraft/servers/dewdemolisher/default.nix index 3c478812..f3d13191 100644 --- a/modules/system/services/server/minecraft/servers/dewdemolisher/default.nix +++ b/modules/system/services/server/minecraft/servers/dewdemolisher/default.nix @@ -1,19 +1,17 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.dewdemolisher = { package = pkgs.paperServers.paper-1_21_1; jvmOpts = "-Xmx2000M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 2; server-port = 30010; motd = "\\u00A7l\\u00A7aDew Demolisher is here."; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles; + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/johnside/default.nix b/modules/system/services/server/minecraft/servers/johnside/default.nix index 644ab99a..c65ff0ce 100644 --- a/modules/system/services/server/minecraft/servers/johnside/default.nix +++ b/modules/system/services/server/minecraft/servers/johnside/default.nix @@ -1,18 +1,16 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.johnside = { package = pkgs.paperServers.paper-1_21_4; jvmOpts = "-Xmx2500M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 2; server-port = 30009; motd = "\\u00A7l\\u00A79Johnside SMP\\u00A7r \\u00A7l\\u00A7fworld for \\u00A74John lovers only."; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks // { + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks // { "plugins/CustomDiscs.jar" = builtins.fetchurl { url = "https://github.com/Navoei/CustomDiscs/releases/download/v3.0/custom-discs-3.0.jar"; sha256 = "0xv0zrkdmjx0d7l34nqag8j004pm9zqivc12d3zy9pdrkv7pz87d"; @@ -26,7 +24,7 @@ in { sha256 = "0mbp73xclr7f5m2lbdfz6is1j8vvyv1qwpl28sm089zrpm73qn6w"; }; }; - files = common.configFiles; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/marsh/default.nix b/modules/system/services/server/minecraft/servers/marsh/default.nix index 551f3bad..4bdbbd2e 100644 --- a/modules/system/services/server/minecraft/servers/marsh/default.nix +++ b/modules/system/services/server/minecraft/servers/marsh/default.nix @@ -1,19 +1,17 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.marsh = { package = pkgs.paperServers.paper-1_21_4; jvmOpts = "-Xmx2000M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30017; motd = "\\u00A7l\\u00A72Murky."; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles; + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/roguecraft/default.nix b/modules/system/services/server/minecraft/servers/roguecraft/default.nix index 0ffbb94c..b7a15a0e 100644 --- a/modules/system/services/server/minecraft/servers/roguecraft/default.nix +++ b/modules/system/services/server/minecraft/servers/roguecraft/default.nix @@ -1,12 +1,10 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.roguecraft = { package = pkgs.paperServers.paper-1_21_1; jvmOpts = "-Xmx3000M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30014; motd = "\\u00A7l\\u00A7bNixFox \\u00A7cRoguecraft \\u00A7bserver."; @@ -14,9 +12,9 @@ in { resource-pack = "https://nixfox.ca/roguecraftresourcepackredir"; resource-pack-sha1 = "b540c0562aba90c3ead2356bb9cb74fcf0db36b3"; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles // { + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles // { "world/datapacks/roguecraft.zip" = builtins.fetchurl { url = "https://nixfox.ca/roguecraftdatapackredir"; sha256 = "04zrkvzvi1i898al45fh9j3k635sf9qhwca7phbv4ynkfl8bz3q3"; diff --git a/modules/system/services/server/minecraft/servers/skyblock/default.nix b/modules/system/services/server/minecraft/servers/skyblock/default.nix index ccf02e9a..956f84ec 100644 --- a/modules/system/services/server/minecraft/servers/skyblock/default.nix +++ b/modules/system/services/server/minecraft/servers/skyblock/default.nix @@ -1,19 +1,17 @@ { config, lib, pkgs, ... }: -let - common = import ../../common { inherit pkgs; }; -in { +{ services = { minecraft-servers.servers.skyblock = { package = pkgs.paperServers.paper-1_21_4; jvmOpts = "-Xmx2000M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30015; motd = "\\u00A7l\\u00A7aBlocking in the sky"; }; - whitelist = common.whitelist; - symlinks = common.paperSymlinks; - files = common.configFiles; + whitelist = config.services.minecraft-servers.common.whitelist; + symlinks = config.services.minecraft-servers.common.paperSymlinks; + files = config.services.minecraft-servers.common.configFiles; }; cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.nixfox.ca" ]; }; diff --git a/modules/system/services/server/minecraft/servers/uberbeta/default.nix b/modules/system/services/server/minecraft/servers/uberbeta/default.nix index a8ae5827..6f3b3dc5 100644 --- a/modules/system/services/server/minecraft/servers/uberbeta/default.nix +++ b/modules/system/services/server/minecraft/servers/uberbeta/default.nix @@ -1,6 +1,5 @@ { config, lib, pkgs, ... }: let - common = import ../../common { inherit pkgs; }; uberBukkitZip = pkgs.fetchzip { url = "https://github.com/Moresteck/Project-Poseidon-Uberbukkit/releases/download/2.0.0/uberbukkit-2.0.0-java17.zip"; sha256 = "m4hgcqXJ43SnBGn6qNBGeEcXFv5Q8f/VFYJmx3aJ9PE="; @@ -14,7 +13,7 @@ in { minecraft-servers.servers.uberbeta = { package = uberBukkit; jvmOpts = "-Xmx512M"; - serverProperties = common.serverProperties // { + serverProperties = config.services.minecraft-servers.common.serverProperties // { difficulty = 3; server-port = 30005; }; diff --git a/modules/system/settings/nix/channels/default.nix b/modules/system/settings/nix/channels/default.nix index f1d4b4c8..965eafe3 100644 --- a/modules/system/settings/nix/channels/default.nix +++ b/modules/system/settings/nix/channels/default.nix @@ -1,11 +1,11 @@ { config, lib, pkgs, stable, unstable, ... }: -{ +with pkgs; { _module.args.pkgsStable = import stable { - inherit (pkgs.stdenv.hostPlatform) system; + inherit (stdenv.hostPlatform) system; inherit (config.nixpkgs) config; }; _module.args.pkgsUnstable = import unstable { - inherit (pkgs.stdenv.hostPlatform) system; + inherit (stdenv.hostPlatform) system; inherit (config.nixpkgs) config; }; }