You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.2 KiB

{ pkgs, lib, ... }: {
services.minecraft-servers.servers.proxy = rec {
extraPostStart = ''
echo 'lpv import initial.json.gz' > /run/minecraft-server/proxy.stdin
'';
extraReload = extraPostStart;
symlinks = {
"plugins/LuckPerms.jar" = let build = "1475"; in pkgs.fetchurl rec {
pname = "LuckPerms";
version = "5.4.64";
url = "https://download.luckperms.net/${build}/velocity/${pname}-Velocity-${version}.jar";
hash = "sha256-8w9lt7Tuq8sPdLzCoSzE/d56bQjTIv1r/iWyMA4MtLk=";
};
"plugins/luckperms/initial.json.gz".format = pkgs.formats.gzipJson { };
"plugins/luckperms/initial.json.gz".value = let
mkPermissions = lib.mapAttrsToList (key: value: { inherit key value; });
in {
groups = {
owner.nodes = mkPermissions {
"group.admin" = true;
"prefix.1000.&5" = true;
"weight.1000" = true;
"librelogin.*" = true;
"luckperms.*" = true;
"velocity.command.*" = true;
};
admin.nodes = mkPermissions {
"group.default" = true;
"prefix.900.&6" = true;
"weight.900" = true;
"huskchat.command.broadcast" = true;
};
default.nodes = mkPermissions {
"huskchat.command.channel" = true;
"huskchat.command.msg" = true;
"huskchat.command.msg.reply" = true;
};
};
users = {
"3fc76c64-b1b2-4a95-b3cf-0d7d94db2d75" = {
username = "misterio7x";
nodes = mkPermissions {
"group.owner" = true;
};
};
"10ffa557-322a-4b6c-9b3e-cdc2792163ae" = {
username = "kirao";
nodes = mkPermissions {
"group.admin" = true;
};
};
};
};
};
files = {
"plugins/luckperms/config.yml".value = {
server = "proxy";
storage-method = "mysql";
data = {
address = "127.0.0.1";
database = "minecraft";
username = "minecraft";
password = "@DATABASE_PASSWORD@";
table-prefix = "luckperms_";
};
messaging-service = "sql";
};
};
};
}