dotfiles/hosts/lucent-firepit/minecraft.nix

135 lines
4.9 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
in {
config = {
modules.services.minecraft = {
enable = true;
servers = {
"dark-firepit" = {
enable = false;
#autoStart = false;
openFirewall = true;
serverProperties = {
server-port = 25565;
gamemode = 0;
motd = "dark-firepit, 1.19.2 Fabric";
white-list = true;
max-players = 8;
allow-flight = true;
enable-command-block = true;
enforce-secure-profile = false;
level-type = "terra:overworld/overworld";
snooper-enabled = false;
spawn-protection = 0;
};
whitelist = {
oatmealine = "241d7103-4c9d-4c45-9464-83b5365ce48e";
RustyMyHabibi = "e20305fa-a44c-44c9-b62e-6918e7c779d6";
Dj_Afganistan = "1f879917-1ad4-49c3-9908-90769ee73f85";
DumbDogDoodles = "d33e5e3b-85ab-4c93-a61b-605e2673fbe8";
SuneFoxie = "82e82ef9-ea17-4794-9051-928b5b8629c1";
FuzziestRedMoth = "21e1adf8-93f7-4173-a087-b3a9c02edec5";
};
package = pkgs.minecraftServers.fabric-1_19_2;
jvmOpts = "-Xmx6G";
};
"n3ko-test" = {
enable = true;
autoStart = true;
openFirewall = true;
serverProperties = {
server-port = 25595;
gamemode = 1;
motd = "N3KO SMP Testing server";
white-list = true;
max-players = 8;
allow-flight = true;
enable-command-block = true;
enforce-secure-profile = false;
#level-type = "terra:overworld/overworld";
snooper-enabled = false;
spawn-protection = 0;
};
whitelist = {
oatmealine = "241d7103-4c9d-4c45-9464-83b5365ce48e";
Cardboxneko = "3d406152-008c-4ec9-bf49-44c883baca6d";
};
package = pkgs.fabricServers.fabric-1_18_2;
jvmOpts = "-Xmx4G";
};
"wafflecraft" = let
packURL = "https://oat.zone/f/wafflecraft/pack.toml";
# https://git.sleeping.town/unascribed/unsup/releases
unsup = pkgs.fetchurl {
url = "https://git.sleeping.town/attachments/c521d178-8938-40a5-b21b-0333eef4099e";
sha256 = "c5bd49784392b651e4bc71fe57976f5b4fb14f09e0e23183ae5b94a821ae4756";
};
unsupIni = ''
version=1
preset=minecraft
source_format=packwiz
source=${packURL}
force_env=server
no_gui=true
[flavors]
shaders=no_shaders
'';
in {
enable = true;
autoStart = true;
openFirewall = true;
serverProperties = {
server-port = 25535;
gamemode = 1;
motd = "wafflecraft Real";
max-players = 32;
allow-flight = true;
enable-command-block = false;
enforce-secure-profile = false;
snooper-enabled = false;
spawn-protection = 0;
white-list = true;
view-distance = 16;
};
whitelist = {
oatmealine = "241d7103-4c9d-4c45-9464-83b5365ce48e";
plightshift = "de87f3e6-d44f-40af-8bff-48828694b616";
mangoafterdawn = "840ad485-1060-4bcf-8730-c552e5c8d62a";
drazilspirits = "1d912f45-978b-4edc-b026-26bd5ed6ce31";
segaskullll = "e6d510e6-a1d3-4801-8a5e-52d2c75b2446";
Tetaes = "4b149260-d56e-4835-b3f6-2dce173a92a5";
sorae_ = "9639d272-4c20-459d-adea-4aa89ee3cdc1";
GelloISMello = "a2883a99-fe5d-454d-98b9-d65e4cec7e7e";
triplej2000 = "8441715c-6aef-497c-9a43-cbcfce887219";
};
symlinks = {
"unsup.ini" = pkgs.writeTextFile {
name = "unsup.ini";
text = unsupIni;
};
};
# this is UGLY as FUCK; but unfortunately https://github.com/Infinidoge/nix-minecraft/issues/15
package = pkgs.jdk17;
jvmOpts = "-Xmx6G -javaagent:${unsup} "
+ lib.replaceStrings ["\n"] [" "] (lib.readFile "/srv/minecraft/wafflecraft/libraries/net/minecraftforge/forge/1.18.2-40.2.1/unix_args.txt");
};
};
};
systemd.services.minecraft-server-dark-firepit.serviceConfig = {
# packwiz workaround
# https://github.com/Infinidoge/nix-minecraft/issues/12#issuecomment-1235999072
# TODO: this doesn't work!!! it just goes "error code 1" and refuses to elaborate
#ExecStartPre = [
# ''cd "/srv/minecraft/dark-firepit"; nix-shell -p adoptopenjdk-hotspot-bin-16 --run "java -jar /srv/minecraft/dark-firepit/packwiz-installer-bootstrap.jar -g 'https://dark-firepit.oat.zone/Fire Pit 1.19.2/pack.toml'"''
#];
};
};
}