What a clusterfuck

This commit is contained in:
Jimbo 2024-10-09 03:36:08 -04:00
parent 91f88b8bb2
commit f29273be22
221 changed files with 779 additions and 956 deletions

View file

@ -0,0 +1,69 @@
{ pkgs, ... }:
{
# 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 whitelist
whitelist = {
K5G = "8656dc10-6050-4a17-b29e-88c4babbc54c";
JimmJam = "2f7affee-e10b-450f-a5e2-44c79a14a109";
Foxzilla04 = "f583f591-ad9b-4a30-8d91-514881b31394";
DewDemolisher = "9205524f-3886-483d-b471-82bb9905671a";
Freecorn1854 = "8299cd8d-3cd4-4779-8180-0d9db6dc12a9";
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";
};
# Common plugins
paperSymlinks = {
"plugins/Backuper.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/7cMAqMND/versions/DqtME18V/Backuper-3.1.0.jar";
sha256 = "0lml9mz8ky2g9iy5xb61s15biwlbxfi5w4mfamxfin2kl4w6ggq9";
};
"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/1556/bukkit/loader/LuckPerms-Bukkit-5.4.141.jar";
sha256 = "02ad0dl34vdk6b1wyflqa6wq440xrh5w7yf3z3w1x1g089myddw4";
};
"plugins/ProtocolLib.jar" = builtins.fetchurl {
url = "https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/artifact/build/libs/ProtocolLib.jar";
sha256 = "16krc7pyav4khnaxkyg27i5yxsgcdkildrn4nm5bhzh1f0ngqv2s";
};
"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/nS19YToN/voicechat-bukkit-2.5.20.jar";
sha256 = "023wjx0zxf9rc2x9vsqg398wapz0nlwfs5g6c8pci3qx75i5s4jx";
};
};
# Config files
configFiles = {
"plugins/Essentials/config.yml" = ./essentialsconfig.yml;
"plugins/voicechat/voicechat-server.properties" = ./vcserver.properties;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,36 @@
# Simple Voice Chat server config v2.5.16
# The port of the voice chat server, "-1" sets the port to the Minecraft servers port
port=-1
# The distance to where the voice can be heard
max_voice_distance=48.0
# The multiplier the voice distance will be reduced by when sneaking
crouch_distance_multiplier=1.0
# The multiplier the voice distance will be reduced by when whispering
whisper_distance_multiplier=0.5
# The opus codec
codec=VOIP
# The maximum size in bytes in a voice packet
# Set this to a lower value if your voice packets don't arrive
mtu_size=1024
# The frequency in which keep alive packets are sent
# Setting this to a higher value may result in timeouts
keep_alive=1000
# If group chats are allowed
enable_groups=true
# If players are allowed to record the voice chat
allow_recording=true
# If spectators are allowed to talk to other players
spectator_interaction=false
# If spectators can talk to players they are spectating
spectator_player_possession=false
# If players without the mod should get kicked from the server
force_voice_chat=false
# The amount of milliseconds, the server should wait to check if the player has the mod installed
# Only active when force_voice_chat is set to true
login_timeout=10000
# The range where the voice chat should broadcast audio to
# A value <0 means 'max_voice_distance'
broadcast_range=-1.0
# If the voice chat server should reply to pings
allow_pings=true

View file

@ -0,0 +1,19 @@
{ inputs, ... }:
{
imports = [
inputs.minecraft.nixosModules.minecraft-servers
./servers/velocity
./servers/dewdemolisher
./servers/johnside
./servers/roguecraft
./servers/blockworld
./servers/uberbeta
];
nixpkgs.overlays = [ inputs.minecraft.overlay ];
services.minecraft-servers = {
enable = true;
eula = true;
};
}

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
let
common = import ../common.nix { inherit pkgs; };
in {
services.minecraft-servers.servers.blockworld = {
enable = true;
autoStart = false;
package = pkgs.paperServers.paper-1_21_1;
jvmOpts = "-Xmx3072M";
serverProperties = common.serverProperties // {
difficulty = 2;
server-port = 30012;
motd = "\\u00A7fArchival \\u00A7l\\u00A7n\\u00A7cBloxelcom \\u00A7r\\u00A7fMinecraft server.";
};
whitelist = common.whitelist;
symlinks = common.paperSymlinks;
files = common.configFiles;
};
}

View file

@ -0,0 +1,18 @@
{ pkgs, ... }:
let
common = import ../common.nix { inherit pkgs; };
in {
services.minecraft-servers.servers.dewdemolisher = {
enable = true;
package = pkgs.paperServers.paper-1_21_1;
jvmOpts = "-Xmx2000M";
serverProperties = common.serverProperties // {
difficulty = 2;
server-port = 30010;
motd = "\\u00A7l\\u00A7aDew Demolisher is here.";
};
whitelist = common.whitelist;
symlinks = common.paperSymlinks;
files = common.configFiles;
};
}

View file

@ -0,0 +1,67 @@
{ pkgs, outputs, ... }:
let
common = import ../common.nix { inherit pkgs; };
in {
services = {
minecraft-servers.servers.johnside = {
enable = true;
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/BlueMap.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/swbUV1cr/versions/TL5ElRWX/BlueMap-5.3-spigot.jar";
sha256 = "08ls3wk0333vjg49kcmri884pcgm2xk9xdhwcxyffbh4ra0xrlbw";
};
"plugins/BlueMapOfflinePlayers.jar" = builtins.fetchurl {
url = "https://github.com/TechnicJelle/BlueMapOfflinePlayerMarkers/releases/download/v3.0/BlueMapOfflinePlayerMarkers-3.0.jar";
sha256 = "1f07w53q7yr4mvph7013d7ajxmp4lnsv6b1ab14y2x0bmqv39nwr";
};
"plugins/BlueMapMarkerManager.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/a8UoyV2h/versions/E0XoPfJV/BMM-2.1.5.jar";
sha256 = "1vpnqglybysxnqyzkjnwbwg000dqkbk516apzvhmg39wlfaysl9d";
};
"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;
};
# BlueMap webhost
nginx.virtualHosts."john.${outputs.secrets.jimDomain}" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:31010";
proxyWebsockets = true;
};
};
};
# Allow Nginx to read and write to paths
systemd.services.nginx.serviceConfig = {
ReadWritePaths = [ "/var/www/Jimbo-Landing-Page/streams/hls/" ];
};
# Open HTTP and HTTPs ports
networking.firewall = {
allowedTCPPorts = [
80 443 # Nginx
];
};
}

View file

@ -0,0 +1,36 @@
{ pkgs, outputs, ... }:
let
common = import ../common.nix { inherit pkgs; };
in {
services = {
minecraft-servers.servers.roguecraft = {
enable = true;
package = pkgs.paperServers.paper-1_21_1;
jvmOpts = "-Xmx3000M";
serverProperties = common.serverProperties // {
difficulty = 3;
server-port = 30014;
motd = "\\u00A7l\\u00A7bJimbo's \\u00A7cRoguecraft \\u00A7bserver.";
require-resource-pack = true;
resource-pack = "https://${outputs.secrets.jimDomain}/roguecraftresourcepackredir";
resource-pack-sha1 = "b540c0562aba90c3ead2356bb9cb74fcf0db36b3";
};
whitelist = common.whitelist;
symlinks = common.paperSymlinks;
files = common.configFiles // {
"world/datapacks/roguecraft.zip" = builtins.fetchurl {
url = "https://${outputs.secrets.jimDomain}/roguecraftdatapackredir";
sha256 = "04zrkvzvi1i898al45fh9j3k635sf9qhwca7phbv4ynkfl8bz3q3";
};
};
};
nginx.virtualHosts."${outputs.secrets.jimDomain}".locations = {
"/roguecraftdatapackredir" = {
return = "301 https://cdn.modrinth.com/data/HtKjVijx/versions/Rme4c23R/Roguecraft%201.2.6%20-%20Data%20Pack.zip";
};
"/roguecraftresourcepackredir" = {
return = "301 https://cdn.modrinth.com/data/HtKjVijx/versions/C6bITJnq/Roguecraft%201.2.5.4%20-%20Resource%20Pack.zip";
};
};
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
let
common = import ../common.nix { 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=";
stripRoot = false;
};
uberBukkit = pkgs.vanillaServers.vanilla.overrideAttrs (oldAttrs: {
src = "${uberBukkitZip}/uberbukkit-2.0.0.jar";
});
in {
services.minecraft-servers.servers.uberbeta = {
enable = true;
package = uberBukkit;
jvmOpts = "-Xmx512M";
serverProperties = common.serverProperties // {
difficulty = 3;
server-port = 30005;
};
};
}

View file

@ -0,0 +1,50 @@
{ pkgs, ... }:
let
common = import ../common.nix { inherit pkgs; };
in {
services.minecraft-servers.servers.velocity = {
enable = true;
package = pkgs.velocityServers.velocity;
jvmOpts = "-Xmx512M";
symlinks = {
"plugins/Geyser.jar" = builtins.fetchurl {
url = "https://download.geysermc.org/v2/projects/geyser/versions/2.4.2/builds/660/downloads/velocity";
sha256 = "09z938v6xrgbiba8rxgi7cdh3xxkv9fdampy15k6fmwddmj9y4a2";
};
"plugins/Floodgate.jar" = builtins.fetchurl {
url = "https://download.geysermc.org/v2/projects/floodgate/versions/2.2.3/builds/109/downloads/velocity";
sha256 = "1hxdf38qzpzdnyn2gn1152fyd54bi37i0ayc82dgcjf0qrcbmv0c";
};
"plugins/LuckPerms.jar" = builtins.fetchurl {
url = "https://download.luckperms.net/1556/velocity/LuckPerms-Velocity-5.4.141.jar";
sha256 = "0j5f7r3g8h4f8z8ppakwfk96hijp3slr0vxyj9v8x4h8w5rcl9d1";
};
"plugins/SkinsRestorer.jar" = builtins.fetchurl {
url = "https://github.com/SkinsRestorer/SkinsRestorer/releases/download/15.4.2/SkinsRestorer.jar";
sha256 = "14nl9mi958bfqwqz9182cxj7m6l15kalq3wjmjqzy50s52si35wf";
};
"plugins/ViaVersion.jar" = builtins.fetchurl {
url = "https://github.com/ViaVersion/ViaVersion/releases/download/5.0.3/ViaVersion-5.0.3.jar";
sha256 = "02gf91ysialgvbl0w8awa0dsi1yb33ac7clmz0wika1xigk9z10r";
};
"plugins/ViaBackwards.jar" = builtins.fetchurl {
url = "https://github.com/ViaVersion/ViaBackwards/releases/download/5.0.3/ViaBackwards-5.0.3.jar";
sha256 = "1wqk68pjrzl1zhajb9lxa1s6wzj85rb0c2riycv9yysr5bcxssqi";
};
"plugins/Voicechat.jar" = builtins.fetchurl {
url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/svvcJhgC/voicechat-velocity-2.5.20.jar";
sha256 = "0nw85x24qa9skbhfgbhsjl2r7d9xshr9f04nnq490zbgz7716lqq";
};
};
};
# Open ports for proxy
networking.firewall = {
allowedTCPPorts = [
25565 19132 30013 5657 # Minecraft server info
];
allowedUDPPorts = [
25565 19132 30013 # Minecraft server, VC, and Bedrock
];
};
}