{ config, pkgs, ... }: { services.minecraft-servers.servers.velocity = { enable = true; package = pkgs.velocityServers.velocity; autoStart = true; openFirewall = true; jvmOpts = "-Xms256M -Xmx1024M"; symlinks = { "plugins/Luckperms.jar" = pkgs.fetchurl { url = "https://download.luckperms.net/1610/velocity/LuckPerms-Velocity-5.5.21.jar"; sha512 = "xAUogBzYUF71CuutcUPM1QJLVel/6Ihzui1Ksbdrd5qeGDqecULdHJtMNsLCM6XQJndGgBTrGv4xljLzVQsx7A=="; }; "plugins/Velocitab.jar" = pkgs.fetchurl { url = "https://hangarcdn.papermc.io/plugins/William278/Velocitab/versions/1.7.9/VELOCITY/Velocitab-1.7.9.jar"; sha512 = "2okGzE0QJz8RTOmVCZHBizokEuTwVvKRPwr6JhJUg5kpsWWhkF+k+XCMzI5aMwSbDy7+2W3NE1qvbfFZHAKdsw=="; }; "plugins/Message.jar" = pkgs.fetchurl { url = "https://hangarcdn.papermc.io/plugins/OskarsMC-Plugins/message/versions/1.4.0/VELOCITY/message-1.4.0-all.jar"; sha512 = "62503339714d7d26d71a98b2036cd04e91c9049567a033441d904a5f3190177bdc41dcd5183e6c51eb083a143edbfaf50642d44c99c1b83e7a3546a3654305c8"; }; "plugins/Send.jar" = pkgs.fetchurl { url = "https://github.com/OskarsMC-Plugins/send/releases/download/3.0.0/send-3.0.0.jar"; sha512 = "aff03bb13804cd01ecd649d283bfdb0b3411cb4df045670328a43f53a05f7386a76a536c4fcbbd3cdc718aa300f2ab2940c7437a181e31fa9f1c9c0e591896ab"; }; "plugins/Broadcast.jar" = pkgs.fetchurl { url = "https://github.com/OskarsMC-Plugins/broadcast/releases/download/1.0.0/broadcast-1.0.0.jar"; sha512 = "80911709bb8889a3a338d8430b6305d7a3530ff63640a59edf196344f53aca6a1830a57b38a54e01a31f09758e8d89f6fce65af87f63cd6c3d83a5e5d028f544"; }; }; symlinks."velocity.toml".value = { # Config version. Do not change this config-version = "2.7"; bind = "0.0.0.0:25565"; motd = "<#09add3>A Velocity Server"; show-max-players = 500; # displayed maximum players, not an actual cap online-mode = true; force-key-authentication = true; player-info-forwarding-mode = "modern"; forwarding-secret-file = "forwarding.secret"; announce-forge = false; # lets clients know server supports forge mods kick-existing-players = false; # kick when multiple connections are made from the same account ping-passthrough = "DISABLED"; forced-hosts = { }; }; files."plugins/velocitab/tab_groups.yml".value = { groups = [ { name = "default"; headers = [ "" ]; footers = [ "connected to %server%" ]; format = "%prefix%%username% %server%"; send_scoreboard_packets = true; nametag.prefix = "%prefix%"; nametag.suffix = ""; sorting_placeholders = [ "%role_weight%" "%username_lower%" ]; only_list_players_in_same_server = false; } ]; }; files."plugins/message/config.toml".value = { plugin = { enabled = true; luckperms-integration = true; # If luckperms is found, use luckperms prefixes and suffixes. miniplaceholders-integration = true; # If miniplaceholders is present, you can use the MiniPlaceholders placeholders in the messages. allow-self-message-sending = true; # Allow a player to send messages to themselves. }; messages = { message-sent = " "; message-received = " "; message-socialspy = "✉ spy "; }; aliases = { message = ["msg" "tell"]; reply = ["r"]; }; error-handlers = { }; developer-info.config-version = 1.2; }; files."plugins/send/config.toml".value = { plugin.enabled = true; servers.server-blacklist = false; developer-info.config-version = 0.2; messages = { send-success-plural="Sent players to ."; send-success-singular="Sent to ."; }; }; }; }