145 lines
3.9 KiB
Nix
Executable file
145 lines
3.9 KiB
Nix
Executable file
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (config.sops) secrets;
|
|
inherit (inputs.nix-minecraft.lib) collectFilesAt;
|
|
|
|
modpack-shaderRetired = pkgs.fetchPackwizModpack {
|
|
url = "https://git.dnywe.com/dachxy/shader-retired-modpack/raw/branch/main/pack.toml";
|
|
packHash = "sha256-NPMS8j5NXbtbsso8R4s4lhx5L7rQJdek62G2Im3JdmM=";
|
|
};
|
|
|
|
modpack-landscape = pkgs.fetchPackwizModpack {
|
|
url = "https://git.dnywe.com/dachxy/landscape-modpack/raw/branch/main/pack.toml";
|
|
packHash = "sha256-mQSE4PMrOupARpEIzdzg+gOD0VQGII4MrBUyr8VevKk=";
|
|
};
|
|
|
|
fabricProxy = pkgs.fetchurl rec {
|
|
pname = "FabricProxy-Lite";
|
|
version = "2.11.0";
|
|
url = "https://cdn.modrinth.com/data/8dI2tmqs/versions/nR8AIdvx/${pname}-${version}.jar";
|
|
hash = "sha256-68er6vbAOsYZxwHrszLeaWbG2D7fq/AkNHIMj8PQPNw=";
|
|
};
|
|
|
|
velocityCfg = config.services.velocity;
|
|
in
|
|
{
|
|
systemConf.security.allowedDomains = [
|
|
"api.mojang.com"
|
|
"textures.minecraft.net"
|
|
"session.minecraft.net"
|
|
"login.microsoftonline.com"
|
|
];
|
|
|
|
sops.secrets."velocity" = {
|
|
owner = velocityCfg.user;
|
|
};
|
|
|
|
sops.secrets."fabricProxy" = {
|
|
owner = "minecraft";
|
|
};
|
|
|
|
services.velocity = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
host = "0.0.0.0";
|
|
port = 25565;
|
|
settings = {
|
|
motd = "<#09add3>POG, MC server!";
|
|
player-info-forwarding-mode = "modern";
|
|
forwarding-secret-file = "${secrets."velocity".path}";
|
|
|
|
servers = {
|
|
shader-retired = "127.0.0.1:30066";
|
|
landscape = "127.0.0.1:30067";
|
|
|
|
try = [
|
|
"shader-retired"
|
|
];
|
|
};
|
|
|
|
forced-hosts = {
|
|
"server.vnet.dn" = [
|
|
"shader-retired"
|
|
];
|
|
"retired.mc.dnywe.com" = [
|
|
"shader-retired"
|
|
];
|
|
"landscape.mc.dnywe.com" = [
|
|
"landscape"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
services.minecraft-servers = {
|
|
enable = true;
|
|
eula = true;
|
|
};
|
|
|
|
services.minecraft-servers.servers = {
|
|
shader-retired =
|
|
let
|
|
mcVersion = modpack-shaderRetired.manifest.versions.minecraft;
|
|
fabricVersion = modpack-shaderRetired.manifest.versions.fabric;
|
|
serverVersion = lib.replaceStrings [ "." ] [ "_" ] "fabric-${mcVersion}";
|
|
in
|
|
{
|
|
enable = true;
|
|
autoStart = true;
|
|
jvmOpts = "-Xms2144M -Xmx8240M";
|
|
package = pkgs.fabricServers.${serverVersion}.override { loaderVersion = fabricVersion; };
|
|
symlinks = collectFilesAt modpack-shaderRetired "mods" // {
|
|
"mods/FabricProxy-Lite.jar" = fabricProxy;
|
|
};
|
|
files = {
|
|
"config/FabricProxy-Lite.toml" = "${secrets."fabricProxy".path}";
|
|
};
|
|
serverProperties = {
|
|
server-port = 30066;
|
|
difficulty = 3;
|
|
gamemode = "survival";
|
|
max-player = 20;
|
|
motd = "Bro!!!!";
|
|
accepts-flight = true;
|
|
accepts-transfers = true;
|
|
hardcore = false;
|
|
};
|
|
};
|
|
|
|
landscape =
|
|
let
|
|
mcVersion = modpack-landscape.manifest.versions.minecraft;
|
|
fabricVersion = modpack-landscape.manifest.versions.fabric;
|
|
serverVersion = lib.replaceStrings [ "." ] [ "_" ] "fabric-${mcVersion}";
|
|
in
|
|
{
|
|
enable = false;
|
|
autoStart = true;
|
|
enableReload = true;
|
|
jvmOpts = "-Xms2144M -Xmx8240M";
|
|
package = pkgs.fabricServers.${serverVersion}.override { loaderVersion = fabricVersion; };
|
|
symlinks = collectFilesAt modpack-landscape "mods" // {
|
|
"mods/FabricProxy-Lite.jar" = fabricProxy;
|
|
};
|
|
files = {
|
|
"config/FabricProxy-Lite.toml" = "${secrets."fabricProxy".path}";
|
|
};
|
|
serverProperties = {
|
|
server-port = 30067;
|
|
difficulty = 3;
|
|
gamemode = "survival";
|
|
max-player = 20;
|
|
motd = "Landscape, daug!";
|
|
accepts-flight = true;
|
|
accepts-transfers = true;
|
|
hardcore = false;
|
|
};
|
|
};
|
|
};
|
|
}
|