Add module to define Minecraft players
This commit is contained in:
parent
e8d5aea2dc
commit
80691f1491
3 changed files with 31 additions and 15 deletions
|
@ -1,11 +1,14 @@
|
||||||
{
|
{
|
||||||
|
tcp = {
|
||||||
|
minecraft = 13914;
|
||||||
|
|
||||||
|
};
|
||||||
adguardhome-dns = 53;
|
adguardhome-dns = 53;
|
||||||
adguardhome-http = 3001;
|
adguardhome-http = 3001;
|
||||||
adguardhome-dhcp-udp = 67;
|
adguardhome-dhcp-udp = 67;
|
||||||
forgejo-http = 3000;
|
forgejo-http = 3000;
|
||||||
jellyfin-http = 8096;
|
jellyfin-http = 8096;
|
||||||
koito = 4110;
|
koito = 4110;
|
||||||
minecraft = 13914;
|
|
||||||
navidrome-https = 4533;
|
navidrome-https = 4533;
|
||||||
nginx-https = 443;
|
nginx-https = 443;
|
||||||
ntfy-http = 2586;
|
ntfy-http = 2586;
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
{ config, pkgs, inputs, ... }:
|
{ config, pkgs, inputs, ... }:
|
||||||
let serverIcon = ./server-icon.png;
|
let
|
||||||
|
serverIcon = ./server-icon.png;
|
||||||
|
players = import ./players.nix;
|
||||||
|
ports = import ../_port-definitions.nix;
|
||||||
|
playersToOps = players:
|
||||||
|
map (player: {
|
||||||
|
name = player.name;
|
||||||
|
uuid = player.uuid;
|
||||||
|
level = 4;
|
||||||
|
bypassesPlayerLimit = true;
|
||||||
|
}) players;
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = with pkgs; [ mcrcon ];
|
environment.systemPackages = with pkgs; [ mcrcon ];
|
||||||
networking.firewall.allowedTCPPorts = [ 13914 ];
|
networking.firewall.allowedTCPPorts = with ports.tcp; [ minecraft ];
|
||||||
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
||||||
services.minecraft-servers = {
|
services.minecraft-servers = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -27,12 +37,13 @@ in {
|
||||||
enforce-whitelist = true;
|
enforce-whitelist = true;
|
||||||
hide-online-players = true;
|
hide-online-players = true;
|
||||||
max-players = 10;
|
max-players = 10;
|
||||||
motd = "NixOS Server";
|
motd =
|
||||||
|
"NixOS Server (${config.services.minecraft-servers.servers.fabric_prod.package.name})";
|
||||||
online-mode = true;
|
online-mode = true;
|
||||||
pause-when-empty-seconds = 60;
|
pause-when-empty-seconds = 60;
|
||||||
pvp = true;
|
pvp = true;
|
||||||
"rcon.password" = "@MINECRAFT_RCON_PASSWORD@";
|
"rcon.password" = "@MINECRAFT_RCON_PASSWORD@";
|
||||||
server-port = 13914;
|
server-port = ports.tcp.minecraft;
|
||||||
simulation-distance = 10;
|
simulation-distance = 10;
|
||||||
spawn-protection = 0;
|
spawn-protection = 0;
|
||||||
view-distance = 10;
|
view-distance = 10;
|
||||||
|
@ -72,16 +83,8 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
files = {
|
files = {
|
||||||
"ops.json".value = [{
|
"ops.json".value = playersToOps (with players; [ engullejamones ]);
|
||||||
name = "engullejamones";
|
"whitelist.json".value = with players; [ engullejamones ];
|
||||||
uuid = "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc";
|
|
||||||
level = 4;
|
|
||||||
bypassesPlayerLimit = true;
|
|
||||||
}];
|
|
||||||
"whitelist.json".value = [{
|
|
||||||
name = "engullejamones";
|
|
||||||
uuid = "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc";
|
|
||||||
}];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
10
hosts/greatyamada/services/minecraft/players.nix
Normal file
10
hosts/greatyamada/services/minecraft/players.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
builtins.listToAttrs (map (player: {
|
||||||
|
name = builtins.elemAt player 0;
|
||||||
|
value = {
|
||||||
|
name = builtins.elemAt player 0;
|
||||||
|
uuid = builtins.elemAt player 1;
|
||||||
|
};
|
||||||
|
}) [
|
||||||
|
|
||||||
|
[ "engullejamones" "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc" ]
|
||||||
|
])
|
Loading…
Add table
Add a link
Reference in a new issue