-
Notifications
You must be signed in to change notification settings - Fork 51
Permissions
OpenInv uses a permission hierarchy where all permission nodes (with the exception of access levels) are granted by parent nodes. For example, if you want to grant openinv.inventory.edit.self and openinv.inventory.edit.other, you can grant the parent node openinv.inventory.edit instead.
Legacy permissions for versions < 5.0.0 can be found here.
openinv is the parent of all other nodes. This is the generic "I should be able to do everything" node. It grants access level 1.
At least one viewing node is required to use /openinv.
openinv.inventory.open.self: Permission to view own inventory.
openinv.inventory.open.other: Permission to view others' inventories.
openinv.inventory.edit.self: Permission to edit own inventory. Also grants openinv.inventory.open.self for convenience.
openinv.inventory.edit.other: Permission to edit others' inventories. Also grants openinv.inventory.open.other for convenience.
Note
As these permissions grant viewing nodes, if you negate them, you indirectly negate the viewing nodes. To allow viewing you will need to explicitly grant the viewing nodes.
openinv.inventory.slot.head.any: Allow putting any item into the head slot.
openinv.inventory.slot.chest.any: Allow putting any item into the chest slot.
openinv.inventory.slot.legs.any: Allow putting any item into the legs slot.
openinv.inventory.slot.feet.any: Allow putting any item into the feet slot.
openinv.inventory.slot.drop: Allow access to the drop slot, used to drop items as if the player had dropped them. Access to the drop slot also requires permission to edit the viewed inventory.
Warning
If a plugin ignores OpenInv's slot types and attempts to insert things into the wrong slots directly, they may still drop at the player - this is to prevent item deletion. Exercise caution with sorting plugins!
At least one viewing node is required to use /openender.
openinv.enderchest.open.self: Permission to view own ender chest.
openinv.enderchest.open.other: Permission to view others' ender chests.
openinv.enderchest.edit.self: Permission to edit own ender chest. Also grants openinv.enderchest.open.self for convenience.
openinv.enderchest.edit.other: Permission to edit others' ender chests. Also grants openinv.enderchest.open.other for convenience.
Note
As these permissions grant viewing nodes, if you negate them, you indirectly negate the viewing nodes. To allow viewing you will need to explicitly grant the viewing nodes.
At least one node is required to use /clearinv and /clearender.
openinv.clear.self: Permission to clear own inventory and ender chest.
openinv.clear.other: Permission to clear others' inventories and ender chests.
Note
These nodes are entirely separate from viewing and editing nodes! You can grant access to /clearinv without granting access to /openinv or /openender.
openinv.access.offline: Access offline players for inventories, ender chests, and searching.
openinv.access.online: Access online players for inventories, ender chests, and searching.
openinv.access.crossworld: Access players in other worlds for inventories, ender chests, and searching.
Access levels are a way to control who can access others' inventories. For example, maybe you're building a new game mode and you don't want your regular moderators sneaking peeks of the spicy features you're adding to rewards. Maybe you have a creative world and don't want inventories opened in that world.
Note
At this time, OpenInv does not support permissions for offline players - it's not a feature of Bukkit. If you want access nodes to work accurately, make sure to not grant openinv.access.offline to restricted users!
Nodes are modeled after vanilla's permission levels and function like a ranking system. Everyone without a specific node has access level 0. Players with higher levels can access players with lower levels, and players with lower levels cannot access players with higher levels.
Note
Access alone doesn't grant permission to use /openinv, /openender, or any other features! Players require the correct corresponding permissions to use features. Access levels are just a measure for controlling which subsets of others an individual has access to.
openinv.access.level.1: Granted by openinv.access. Allows access to players with access up to level 1.
openinv.access.level.2: Not granted by openinv.access! Allows access to players with access up to level 2.
openinv.access.level.3: Not granted by openinv.access! Allows access to players with access up to level 3.
openinv.access.level.4: Not granted by openinv.access! Allows access to players with access up to level 4.
Tie behavior is determined by access mode, defaulting to the configuration setting settings.equal-access. Valid values are allow to allow, deny to block access, and view for view-only mode. The default is allow. Permissions are available to override the configuration setting.
openinv.access.equals.edit: Allows editing players with equal access levels.
openinv.access.equals.view: Allows viewing players with equal access levels.
openinv.access.equals.deny: Denies viewing players with equal access levels.
openinv.spectate.click: Perform normal inventory manipulation while in spectator mode.
openinv.container.any: Grants access to /anycontainer.
openinv.container.silent: Grants access to /silentcontainer.
openinv.search.inventory: Grants access to /searchinv, /searchender, and /searchenchant.
openinv.search.container: Grants access to /searchcontainer.
OpenInv's nodes are all now lower case. Additionally, parent nodes grant any child nodes (so openinv.inventory.open grants openinv.inventory.open.self and openinv.inventory.open.other) aside from access levels.
| Old Node | Equivalent New Nodes |
|---|---|
OpenInv.* |
openinv |
OpenInv.openinv |
openinv.inventory.open.other |
OpenInv.openself |
openinv.inventory.open.self |
OpenInv.editinv |
openinv.inventory.edit and openinv.inventory.slot
|
OpenInv.openonline |
openinv.access.online |
OpenInv.openoffline |
openinv.access.offline |
OpenInv.openender |
openinv.enderchest.open.self |
OpenInv.editender |
openinv.enderchest.edit.self and openinv.enderchest.edit.other
|
OpenInv.openenderall |
openinv.enderchest.open.self and openinv.enderchest.open.other
|
OpenInv.exempt |
openinv.access.level.1 (with config setting settings.equal-access: deny) |
OpenInv.override |
openinv.access.level.2 |
OpenInv.crossworld |
openinv.access.crossworld |
OpenInv.search |
openinv.search.inventory |
OpenInv.searchenchant |
openinv.search.inventory |
OpenInv.anychest |
openinv.container.any |
OpenInv.any.default |
N/A: feature removed - only affects first usage. |
OpenInv.silent |
openinv.container.silent |
OpenInv.silent.default |
N/A: feature removed - only affects first usage. |
OpenInv.spectate |
openinv.spectate.click |