Subject

Everything in PermissionsEx is based around the subject. A subject is a user, group, server console, irc bot, or any other object that has permissions access. Each subject is composed of segments which each have a set of permissions, options, and inheritance that are active when the segment's set of parameters matches.

Permissions

Permissions exist in a tree structure where each node has a weighting. A permission is split by the . character, and each segment can be set to a value.

TODO

Options

Options are a simple key-value mapping. When multiple locations

Parents

Any subject can inherit from any other subject.

Contexts

Contexts are tags that can be applied to a segment that restrict the segment's applicability to a certain player state. Sponge provides several contexts and PermissionsEx applies a few more, but any plugin can add its own contexts (for example a region protection plugin could add a region context to allow for region-specific permissions). When PermissionsEx calculates permissions for a set of active contexts, any segment whose set of contexts is a subset of the subject's active contexts will be considered.

PermissionsEx Contexts

Context Key

Example Value

Description

server-tag

creative

Tags applied to the current server (in permissionsex.conf)

before-time

2020-07-01T08:00:00

Only active before this time

after-time

2008-04-01T00:00:00

Only active after the provided time

Time formats

When using before-time and after-time, PermissionsEx supports a variety of formats:

  • ISO Date Time: 2011-12-03T10:15:30 or 2011-12-03T10:15:30+01:00 or 2011-12-03T10:15:30+01:00[Europe/Paris]

  • ISO Time Relative to Today: 10:15 or 10:15:30 or 10:15:30+01:00

  • ISO Date: 2011-12-03 2011-12-03+01:00

  • RFC 1123: Tue, 3 Jun 2008 11:05:30 GMT

  • PermissionsEx Relative Time Format: +1d2h-3m (more on this later)

  • Seconds since Epoch: 1578779386573

PermissionsEx Relative Time Format

Times in PermissionsEx can be expressed in terms of the current time. The format is as follows:

  • A leading sign (+ or -)

  • Quantity (such as 2)

  • Unit (such as m for minute)

A relative time must always begin with a sign, however the same sign will be used until a new one is specified before a later quantity.

Here is a table of the current supported units:

  • Seconds: second, seconds, s

  • Minutes: minute, minutes, m

  • Hours: hour, hours, h

  • Days: day, days, d

  • Weeks: week, weeks, w

  • Months: month, months

  • Years: year, years

For example, to express 3 days from now, the following can be used: +3d

2 days, 4 minutes less 16 seconds can be expressed in the following way: +2d4m-16s

In this way, administrators will be able to easily specify times relative to the current time.