configuration/groups.yml

Table of Contents

  1. Yaml Basics
  2. groups
    • groupname
      1. rank
      2. permissions
      3. worlds
  3. default groups.yml

Yaml Basics

First off, YAML (files with the file extension .yml) relies heavily on indentation. My files will all use two spaces; tabs will break your parser and cause errors, so don't use them. For more information on how to work with YAML, this page helped me a lot.

notes

Lines that start with a # (pound symbol) are comments; they are ignored by the parser.


groups

This value is the top level delimiter for the file. It has no purpose, other than to organize the other values in the file.

notes

This key should have no indentation (zero spaces before it), and no value after the colon.


groupname

By default, there are 4 groups: default, user, admin and owner, each with a few permissions nodes thrown in as examples.

notes

Group name keys should be prefixed by 2 spaces, and should not have any values after the colon.


rank

Each group should have a rank. The rank determines the group's 'power' when attempting to edit other groups, as well as the order in which the /promote command works (in order of rank, from lowest to highest).

notes

Each group's rank should be unique; do not duplicate them unless you're comfortable with the configuration process, as it may cause interesting errors.


permissions

Each group should have a permissions key. The permissions key shows a list of values as indicated in the example below. If you want a permission to evaluate true, add the node normally to the list. If you want it to evaluate false, add it with a '-' before it (a hyphen or minus sign). The default groups.yml has a few examples of how to do this.

notes

Should be prefixed by 4 spaces, and have no value immediately after the colon.

example
groups:
  default:
    rank: 1
    permissions:
    - example.true.node
    - -example.false.node
    worlds:
      world:
      # set a node that's only active for this world
      - example.true.world.node
      # override a global 'true' node to false
      - -example.true.node

worlds

Worlds keys are optional; they specify permissions nodes that are only active in the world specified by the key. This key is case-sensitive, and must match the name of the world folder exactly. If your world name has spaces in it, enclose the key in single quotes.

notes

Your 'worlds' key should be on the same indentation level as the permissions key (4 spaces), and have no value immediately after the colon.

example

See permissions


default file

groups:
  default:
    rank: 1
    permissions:
    - group.default
    - privileges.check
    worlds:
      world: []
      world_nether:
      - -privileges.build
      world_the_end: []
    inheritance: []
  user:
    rank: 2
    permissions:
    - group.user
    - privileges.dump
    worlds:
      world: []
      world_nether:
      - privileges.build
    inheritance:
    - default
  admin:
    rank: 3
    permissions:
    - group.admin
    - privileges.promote
    inheritance:
    - user
  owner:
    rank: 4
    permissions:
    - group.owner
    - privileges.self.edit
    - privileges.*
    inheritance:
    - admin

Comments

Posts Quoted:
Reply
Clear All Quotes