76 lines
5.1 KiB
Markdown
76 lines
5.1 KiB
Markdown
# Permission Signs
|
|
|
|
This is a plugin loosely based on the permission signs plugin created by _ForgeUser7294733. As the previous plugin does
|
|
not offer source code and has a restrictive license, this plugin is written from scratch, but trying to somewhat imitate
|
|
the original plugin's behavior. It's not possible to load previous permission signs as they are stored without any
|
|
coordinates.
|
|
|
|
Basically permission signs is a plugin that allows for the sale of permissions using signs as the interface. A sign is
|
|
created with a displayed name, a set of permissions, a time limit (can be infinite) and a cost (can be zero). If a
|
|
player uses the sign to buy the permission, they will be granted the permission for the defined duration. Vault is used
|
|
to set permissions. Permanent permissions are set normally through Vault, but permissions with a duration set as not "0"
|
|
are treated as transient permissions to avoid any problems (such as the player having been granted the permission
|
|
permanently by another cause) when they expire.
|
|
|
|
## Commands
|
|
|
|
| Command | Permission | Description |
|
|
| -------- | -------- | -------- |
|
|
| /ps about | None | Displays information about the plugin |
|
|
| /ps create | permissionsigns.admin.create | Used for creating a new permission sign |
|
|
| /ps cancel | permissionsigns.admin.create | Used for manually cancelling a permission sign creation request |
|
|
| /ps reload | permissionsigns.admin.reload | Used for reloading data and config values from disk |
|
|
|
|
### The create command
|
|
|
|
/ps create <name> <permission,permission> <cost> <duration> - Creates a new permission sign. The name is used to
|
|
describe what the permission sign does. The permission,permission is the list of comma-separated permissions the
|
|
permission sign will grant to the using player. The cost is the cost to use the permission sign. The duration is the
|
|
number of seconds the player should keep the permission for. Use 0 for permanent.
|
|
|
|
#### The create command permission list
|
|
|
|
The simplest way of using the permission field is to just specify one permission such as `essentials.gamemode.creative`,
|
|
but you can put any number of comma-separated permissions in the field such
|
|
as: `essentials.gamemode.creatice,essentials.gamemode.survival,essentials.gamemode.spectator`.
|
|
|
|
This plugin also supports per-world permissions. By default, permissions are set for all worlds. You can change a
|
|
setting in the config to only grant the permission for the world the clicked sign belongs to. In addition to this, you
|
|
can override the default behavior by specifying the world before each permission node. *Any* specifies that a permission
|
|
should be given regardless of world, and *World_Name* specifies that a permission should only be set for the given
|
|
world. *World_Name* can also be specified as a different world that the one the permission sign belongs to.
|
|
|
|
The syntax for specifying the world is: `world:permission`, so for a list of permissions, it would be like
|
|
this: `world:essentials.gamemode.creatice,any:essentials.gamemode.survival,world_nether:essentials.gamemode.spectator`
|
|
|
|
## Permissions
|
|
|
|
| Node | Description |
|
|
| -------- | -------- |
|
|
| permissionsigns.* | Grants all permissions |
|
|
| --permissionsigns.use | Allows the usage of permission signs |
|
|
| --permissionsigns.admin | Allows the creation of permission signs and access to the /reload command |
|
|
| ----permissionsigns.admin.reload | Allows the usage of the /reload command |
|
|
| ----permissionsigns.admin.create | Allows the creation of permission signs |
|
|
|
|
## Configuration options
|
|
|
|
| Node | Description |
|
|
| -------- | -------- |
|
|
| language | The language used for the plugin (en, nb-no) |
|
|
| perWorldPermissions | Sets permissions for the current world instead of setting them globally |
|
|
| removePermissionSignIfMissing | If enabled, permission signs that have lost their physical sign will be removed during startup. This prevents permission signs from staying in a broken state until the sign is replaced. |
|
|
| enableIndirectSignProtection | Protects permission signs against indirect sources such as pistons and explosions. Only disable this if your permission signs are protected by another plugin. |
|
|
| enableExtensiveSignProtection | Whether to protect signs on "unstable" blocks such as sand or anvils. Does not protect signs on "lag pyramids" or similar, but protects signs on top of, or attached to a pillar of sand. |
|
|
|
|
## Language customization
|
|
|
|
All strings, even time units, are customizable. If you place a strings.yml file in the plugin folder, it will take
|
|
priority over built-in languages. If you want to change strings, look at PermissionSigns/src/main/resources/strings.yml
|
|
for the proper keys. All strings have the format: ENUM: "Displayed string". The enum must be identical as it defines
|
|
which string you have changed. All strings belonging to a language are beneath the language code and indented with two
|
|
spaces.
|
|
|
|
The easiest way to add a new language is to copy an existing language and paste it into your custom strings.yml and
|
|
change strings as necessary. If you don't include all strings, the remaining will use the built-in English translation.
|
|
Remember to change the language code to whichever you use for your custom language. |