diff --git a/modules/discord.nix b/modules/discord.nix index c05160b..59ffa8d 100644 --- a/modules/discord.nix +++ b/modules/discord.nix @@ -5,31 +5,45 @@ let in { systemd.services.minecraft-discord-config = { - description = "Inject Discord bot token into Discord4Fabric config"; + description = "Inject Discord bot token into Discord-MC-Chat config"; wantedBy = [ "multi-user.target" ]; before = [ "docker-minecraft.service" ]; after = [ "agenix.service" ]; serviceConfig = { Type = "oneshot"; - ExecStart = pkgs.writeShellScript "setup-discord4fabric" '' - CONFIG_DIR="${mcDataDir}/config/discord4fabric" - mkdir -p "$CONFIG_DIR" + ExecStart = pkgs.writeShellScript "setup-discord-mc-chat" '' + set -euo pipefail + + CONFIG_FILE="${mcDataDir}/config/discord-mc-chat.json" + mkdir -p "${mcDataDir}/config" TOKEN=$(cat ${config.age.secrets.discord-bot-token.path}) - cat > "$CONFIG_DIR/config.json" < "$CONFIG_FILE" < %message%", - "joinFormat": "%player% joined the server", - "leaveFormat": "%player% left the server", - "deathFormat": "%message%", - "advancementFormat": "%player% has made the advancement **%advancement%**", - "discordToMinecraftFormat": "[Discord] <%user%> %message%" + "generic": { + "botToken": "$TOKEN", + "channelId": "1482486447591391285", + "consoleLogChannelId": "1482487413153464330", + "useWebhook": true, + "announceServerStartStop": true, + "announcePlayerJoinLeave": true, + "announceDeathMessages": true, + "announceAdvancements": true, + "broadcastChatMessages": true, + "adminsIds": [ + "1008533670426050704", + "839601350865584158", + "373272898368176129" + ] + }, + "multiServer": { + "enable": false + } } EOF + chmod 600 "$CONFIG_FILE" ''; }; }; diff --git a/modules/minecraft.nix b/modules/minecraft.nix index ea63064..034d2b9 100644 --- a/modules/minecraft.nix +++ b/modules/minecraft.nix @@ -59,7 +59,7 @@ let "styled-chat" # Discord bridge - "discord4fabric" + "discord-mc-chat" # Utilities "chunky" @@ -88,7 +88,7 @@ in virtualisation.oci-containers.backend = "docker"; virtualisation.oci-containers.containers.minecraft = { - image = "itzg/minecraft-server:latest"; + image = "itzg/minecraft-server:java21"; ports = [ "25565:25565" # Minecraft "24454:24454/udp" # Simple Voice Chat @@ -100,15 +100,15 @@ in EULA = "TRUE"; TYPE = "FABRIC"; VERSION = "1.21.4"; - MEMORY = "2G"; + MEMORY = "2560M"; MAX_PLAYERS = "10"; DIFFICULTY = "hard"; VIEW_DISTANCE = "10"; SIMULATION_DISTANCE = "10"; ENABLE_WHITELIST = "TRUE"; ENFORCE_WHITELIST = "TRUE"; - WHITELIST = "player1,player2"; # TODO: add your players - MOTD = "compsigh Minecraft"; # TODO: customize + WHITELIST = "jetpham"; + MOTD = "meet cool people \\u0026\\u0026 build cool things"; MODRINTH_PROJECTS = modrinthMods; JVM_XX_OPTS = jvmFlags; }; @@ -136,6 +136,9 @@ in ExecStart = pkgs.writeShellScript "setup-mod-configs" '' mkdir -p ${mcDataDir}/plugins/Chunky cp ${../configs/chunky.yml} ${mcDataDir}/plugins/Chunky/config.yml + + mkdir -p ${mcDataDir}/config + cp ${../configs/anti-xray.toml} ${mcDataDir}/config/anti-xray.toml ''; }; };