PermissionsEX — различия между версиями

Материал из DS-HOST Wiki
Перейти к: навигация, поиск
 
Строка 2: Строка 2:
  
  
'''Установка'''
+
== Установка ==
Скачать последнюю версию плагина: ссылка
+
# Скачать последнюю версию плагина: '''[http://dev.bukkit.org/server-mods/permissionsex ссылка]'''
Поместить PermissionsEX.jar в папку plugins/ на сервере.
+
# Поместить '''PermissionsEX.jar''' в папку '''plugins/''' на сервере.
Перезапустить сервер.
+
# Перезапустить сервер.
  
'''Использование'''
+
== Использование ==
Для распределения прав игрокам нужно отредактировать файл permissions.yml по адресу plugins/PermissionsEx. Это можно сделать с помощью любого текстового редактора, но для удобности рекомендуется использовать Notepad++
+
Для распределения прав игрокам нужно отредактировать файл permissions.yml по адресу plugins/PermissionsEx. Это можно сделать с помощью любого текстового редактора, но для удобности рекомендуется использовать [http://notepad-plus-plus.org Notepad++]<br />
Открыв его мы увидим:
+
Открыв его мы увидим:<br />
groups:  
+
groups:  
  default:  
+
    default:  
      default: true  
+
        default: true  
      permissions:  
+
        permissions:  
      — modifyworld.*
+
        — modifyworld.*
Значение этих строк следующее:
+
Значение этих строк следующее:<br />
groups: — указывает, что ниже будут идти группы и их права.
+
'''groups:''' — указывает, что ниже будут идти группы и их права.<br />
default: — название группы, куда попадают все только что зашедшие на сервер игроки, если они не прописаны в других группах. Вы можете менять это название на какое захотите.
+
'''default:''' — название группы, куда попадают все только что зашедшие на сервер игроки, если они не прописаны в других группах. Вы можете менять это название на какое захотите.<br />
default: true — параметр, который задаёт группу, как группу по-умолчанию. То есть, все права этой группы будет иметь любой игрок, для которого не определены другие группы и/или исключения.
+
'''default:''' true — параметр, который задаёт группу, как группу по-умолчанию. То есть, все права этой группы будет иметь любой игрок, для которого не определены другие группы и/или исключения.<br />
permissions: — все, что идёт ниже, это и есть сами "права" для группы, сюда нужно прописывать permissions от различных плагинов установленных на вашем сервере. Значение null означает, что у группы/игрока нет никаких прав.
+
'''permissions:''' — все, что идёт ниже, это и есть сами "права" для группы, сюда нужно прописывать permissions от различных плагинов установленных на вашем сервере. Значение ''null'' означает, что у группы/игрока нет никаких прав.<br />
- modifyworld.* — возможность "модифицировать" мир. Если Вы не намерены конкретно определять, что игроки могут или не могут изменять в игровом мире, то это право лучше оставить как есть, а если намеренны, то смотрите в Modifyworld.
+
'''- modifyworld.*''' — возможность "модифицировать" мир. Если Вы не намерены конкретно определять, что игроки могут или не могут изменять в игровом мире, то это право лучше оставить как есть, а если намеренны, то смотрите в [https://github.com/PEXPlugins/PermissionsEx/wiki/Modifyworld Modifyworld].<br />
  
Рассмотрим как мы можем отредактировать данный файл:
+
Рассмотрим как мы можем отредактировать данный файл:<br />
groups:  
+
groups:  
  player: true (Для включения автомотической выдачи игрока)  
+
    player: true (Для включения автомотической выдачи игрока)  
      default: true  
+
        default: true  
      permissions:  
+
        permissions:  
      — modifyworld.*
+
        — modifyworld.*
  Admins:  
+
    Admins:  
      default: false  
+
        default: false  
      inheritance:  
+
        inheritance:  
      — default
+
        — default
      permissions:  
+
        permissions:  
      — '*'  
+
        — '*'  
users:  
+
users:  
  BigBoss:  
+
    BigBoss:  
      group:  
+
        group:  
      — Admins  
+
        — Admins  
      options:  
+
        options:  
          rank: '1'  
+
            rank: '1'  
      permissions:
+
        permissions:
  
Здесь мы добавили новую группу Admins, а также права для отдельного игрока BigBoss:.
+
Здесь мы добавили новую группу '''Admins''', а также права для отдельного игрока '''BigBoss:'''.<br />
default: false — означает, что данная группа не является группой по-умолчанию.
+
'''default:''' false — означает, что данная группа '''не является''' группой по-умолчанию.<br />
inheritance: — параметр, с помощью которого можно установить наследственность прав определённой группы, в данном случае — это группа default. Это значит, что Вам не придётся еще раз прописывать права группы default для группы Admins.
+
'''inheritance:''' — параметр, с помощью которого можно установить наследственность прав определённой группы, в данном случае — это группа '''default'''. Это значит, что Вам не придётся еще раз прописывать права группы '''default''' для группы '''Admins'''.<br />
Звездочка ('*') означает, что у группы/игрока есть абсолютно все права на все плагины, установленные на сервере.
+
Звездочка ('*') означает, что у группы/игрока есть абсолютно все права на все плагины, установленные на сервере.<br />
users: — означает, что ниже идут права отдельных игроков.
+
'''users:''' — означает, что ниже идут права отдельных игроков.<br />
BigBoss: — имя игрока для которого настраиваются отдельные права.
+
'''BigBoss:''' — имя игрока для которого настраиваются отдельные права.<br />
group: Admins — указывает на то, что игрок входит в группу Admins
+
'''group: Admins''' — указывает на то, что игрок входит в группу '''Admins'''<br />
rank: — ранг игрока.
+
'''rank:''' [[PermissionsEX/Ранг|ранг]] игрока.<br />
  
Если Вы хотите раскрасить ники игроков и добавить к ним префиксы и суффиксы то нужно включить и настроить в permissions.yml Chat Manager.
+
Если Вы хотите раскрасить ники игроков и добавить к ним префиксы и суффиксы то нужно включить и настроить в permissions.yml [[PermissionsEX/Chat Manager|Chat Manager]].
  
Важно! В YAML нужно чётко соблюдать последовательность, один лишний пробел — и параметр работать не будет. Поэтому для проверки permissions.yml рекомендуется использовать этот сайт. Там в левое окошко нужно вставить ваш код из permissions.yml, и если в правом окне не выдаст ошибок, то код написан правильно и он будет работать, если будут ошибки, то оно выдаст номер забракованной строки.
+
'''Важно!''' В YAML нужно чётко соблюдать последовательность, один лишний пробел — и параметр работать не будет. Поэтому для проверки permissions.yml рекомендуется использовать [http://yaml-online-parser.appspot.com этот] сайт. Там в левое окошко нужно вставить ваш код из permissions.yml, и если в правом окне не выдаст ошибок, то код написан правильно и он будет работать, если будут ошибки, то оно выдаст номер забракованной строки.
  
Команды и права  
+
== Команды и права ==
 
С помощью следующих команд вы можете управлять PEX прямо через консоль или игровой чат, не редактируя файл permissions.yml
 
С помощью следующих команд вы можете управлять PEX прямо через консоль или игровой чат, не редактируя файл permissions.yml
Добавление префиксов и суффиксов будет работать только если включен Chat Manager или EssentialsChat (начиная с 1.6.4).
+
*Добавление префиксов и суффиксов будет работать только если включен [[PermissionsEX/Chat Manager|Chat Manager]] или EssentialsChat (начиная с 1.6.4).
Значение параметров: <такой> параметр обязателен для указания; [такой] параметр — опциональный.
+
*Значение параметров: <такой> параметр обязателен для указания; [такой] параметр — опциональный.
Параметр [world] позволяет локализировать действие команды в определенном мире.
+
*Параметр [world] позволяет локализировать действие команды в определенном мире.
Там где упоминается единственное/множественное можно перечислять параметры через запятую.
+
*Там где упоминается единственное/множественное можно перечислять параметры через запятую.
  
Служебные  
+
=== Служебные ===
 +
{| class="wikitable" width="100%" border="1"
 +
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission
 +
! width="40%" | Описание
 +
|-
 +
|/pex || permissions.manage ||| Показывает помощь по PEX
 +
|-
 +
|/pex toggle debug || permissions.manage ||| Вкл./откл. режим отладки (создает много отладочной информации в server.log)
 +
|-
 +
|/pex user <user> check <permission> || permissions.manage.<user> ||| Проверить право <permission> игрока <user>
 +
|-
 +
|/pex reload || permissions.manage.reload ||| Перезагружает плагин
 +
|-
 +
|/pex config <node> [value] || permissions.manage.config ||| Выводит значение <node> из конфигурации PEX. Дополнительно можно ввести [value] чтобы задать новое значения для параметра.
 +
|-
 +
|/pex backend || permissions.manage.backend ||| Вывести используемые на данный момент бэкенды.
 +
|-
 +
|/pex backend <backend> || permissions.manage.backend ||| Change the permissions backend on-the-fly (Use with caution!) Note that this will only change the backend on-the-fly, it will not save the change in the config file, nor will it convert anything. This is for testing only.)
 +
|-       
 +
|/pex hierarchy || permissions.manage.users ||| Показывает полную иерархию игроков/групп
 +
|-
 +
|/pex dump <backend> <filename> || permissions.manage.dump ||| Создает дамп пользователей и групп в выбранный формат <backend> в файл <filename>
 +
|}
  
 +
=== Управление правами игроков ===
 +
{| class="wikitable" width="100%" border="1"
 +
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission
 +
! width="40%" | Описание
 +
|-
 +
|/pex users || permissions.manage.users ||| Показывает список всех записанных пользователей. И игроков сервера
 +
|-
 +
|/pex user <user> [world] || permissions.manage.users ||| Показывает права игрока <user>
 +
|-
 +
|/pex user <user> prefix [newprefix] [world] || permissions.manage.users.prefix.<user> ||| Установить игроку <user> префикс [newprefix]
 +
|-
 +
|/pex user <user> suffix [newsuffix] [world] || permissions.manage.users.suffix.<user> ||| Установить игроку <user> суффикс [newsuffix]
 +
|-
 +
|/pex user <user> delete || permissions.manage.users.<user> ||| Удалить игрока <user> из бэкенда, используемого на данный момент.
 +
|-
 +
|/pex user <user> add <permission> [world] || permissions.manage.users.permissions.<user> ||| Дать право <permission> игроку <user>
 +
|-
 +
|/pex user <user> remove <permission> [world] || permissions.manage.users.permissions.<user> ||| Забрать право <permission> у игрока <user>
 +
|-
 +
|/pex user <user> timed add <permission> [lifetime] [world] || permissions.manage.users.permissions.timed.<user> ||| Дать временное право <permission> игроку <user> на время [lifetime] (в сек.) Выставите значение на "" (две двойные скобки) если вы хотите использовать право во всех мирах!
 +
|-
 +
|/pex user <user> timed remove <permission> || permissions.manage.users.permissions.timed.<user> ||| Забрать у игрока <user> временное право <permission>
 +
|-
 +
|/pex user <user> set <option> <value> [world] || permissions.manage.users.permissions.<user> ||| Выставить опцию <option> на значение <value>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>
 +
|}
  
Команда
+
=== Управление правами групп игроков ===
Permission  
+
{| class="wikitable" width="100%" border="1"
Описание
+
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission  
 +
! width="40%" | Описание
 +
|-
 +
|/pex user <user> group list [world] || permissions.manage.membership.<user> ||| Показать список групп в которых состоит игрок <user>
 +
|-
 +
|/pex user <user> timed add <group> <time> [*][min\hour\day] = [3min] || permissions.manage.membership.<user> ||| Добавить игрока <user> в группу <group> на время [lifetime]
 +
|-
 +
|/pex user <user> group set <group> [world] || permissions.manage.membership.<user> ||| Установить группу <group> для игрока <user> (удалит его из остальных групп)
 +
|-
 +
|/pex user <user> group remove <group> [world] || permissions.manage.membership.<user> ||| Удалить игрока <user> из группы <group>
 +
|}
  
/pex permissions.manage Показывает помощь по PEX
+
=== Управление правами групп ===
 +
{| class="wikitable" width="100%" border="1"
 +
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission
 +
! width="40%" | Описание
 +
|-
 +
|/pex groups || permissions.manage.groups.list ||| Показать все зарегистрированные группы
 +
|-
 +
|/pex default group [world] || permissions.manage.groups.inheritance ||| Показать группу по-умолчанию
 +
|-
 +
|/pex set default group <group> [world] || permissions.manage.groups.inheritance ||| Установить группу <group>, как группу по-умолчанию
 +
|-
 +
|/pex group <group> prefix [newprefix] [world] || permissions.manage.groups.prefix.<group> ||| Установить группе <group> префикс [newprefix]
 +
|-
 +
|/pex group <group> suffix [newsuffix] [world] || permissions.manage.groups.suffix.<group> ||| Установить группе <group> суффикс [newsuffix]
 +
|-
 +
|/pex group <group> create [parents] || permissions.manageups.create.<group> ||| Создать группу <group> и если нужно установить для нее родительскую группу/группы [parents]
 +
|-
 +
|/pex group <group> delete || permissions.manage.groups.remove.<group> ||| Удалить группу <group>
 +
|-
 +
|/pex group <group> parents [world] || permissions.manage.groups.inheritance.<group> ||| Список родительских групп для группы <group>
 +
|-
 +
|/pex group <group> parents set <parents> [world]|| permissions.manage.groups.inheritance.<group> ||| Установить группе <group> родительскую группу/группы <parents>
 +
|-
 +
|/pex group <group> || permissions.manage.groups.permissions.<group> ||| Показать все права группы <group>
 +
|-
 +
|/pex group <group> add <permission> [world] || permissions.manage.groups.permissions.<group> ||| Дать право <permission> группе <group>
 +
|-
 +
|/pex group <group> remove <permission> [world] || permissions.manage.groups.permissions.<group> ||| Забрать право <permission> у группы <group>
 +
|-
 +
|/pex group <group> timed add <permission> [lifetime] [world] || permissions.manage.groups.permissions.timed.<group> ||| Дать временное право <permission> группе <group> на время [lifetime] (в сек.)
 +
|-
 +
|/pex group <group> timed remove <permission> [world] || permissions.manage.groups.permissions.timed.<group> ||| Забрать временное право <permission> у группы <group>
 +
|-
 +
|/pex group <group> set <option> <value> [world] || permissions.manage.groups.permissions.<group> ||| Выставить опцию <option> значение <value> для <group>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>
 +
|-
 +
|/pex group <group> weight [value] || permissions.manage.groups.weight.<group> ||| Показать/установить вес группы
 +
|}
  
/pex toggle debug  permissions.manage Вкл./откл. режим отладки (создает много отладочной информации в server.log)
+
=== Управление игроками в группах ===
 +
{| class="wikitable" width="100%" border="1"
 +
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission
 +
! width="40%" | Описание
 +
|-
 +
|/pex group <group> users || permissions.manage.membership.<group> ||| Показать всех игроков в группе <group>
 +
|-
 +
|/pex group <group> user add <user> [world] [time] || permissions.manage.membership.<group> ||| Добавить игрока/игроков <user> в группу <group> на время [time]
 +
|-
 +
|/pex group <group> user remove <user> [world] || permissions.manage.membership.<group> ||| Удалить игрока/игроков из группы <group>
 +
|-
 +
|/pex promote <user> <ladder> || permissions.user.promote.<ladder> ||| Повысить игрока <user>  в высшую группу <ladder>
 +
|-
 +
|/pex demote <user> <ladder> || permissions.user.demote.<ladder> ||| Понизить игрока <user> в низшую группу <ladder>
 +
|-
 +
|}
  
/pex user <user> check <permission>  permissions.manage.<user> Проверить право <permission> игрока <user>
+
=== Управление наследственностью миров ===
 +
{| class="wikitable" width="100%" border="1"
 +
|-
 +
! width="30%" | Команда
 +
! width="30%" | Permission
 +
! width="40%" | Описание
 +
|-
 +
|/pex worlds || permissions.manage.worlds ||| Показать загруженные миры
 +
|-
 +
|/pex world <world> || permissions.manage.worlds ||| Показать информацию о наследственности мира <world>
 +
|-
 +
|/pex world <world> inherit <parentWorlds> || permissions.manage.worlds.inheritance ||| Установить родительский мир/миры <parentWorlds> для мира <world>
 +
|}
  
/pex reload  permissions.manage.reload  Перезагружает плагин
+
== Критика ==
 +
API полномочий Bukkit’а (также называющееся “superperms”) был разработан с целью централизации конфигурации прав пользователей, отсутствия необходимости поиска плагинов, которые были бы совместимы с какой-то определенной системой прав. Все текущие плагины полностью поддерживают ‘superperms’, кроме PermissionsEx.
 +
PEX же работает против этой системы путем встраивания собственного кода. Это вызывало проблемы как у PEX, так и в самом Bukkit'е. Реализация "superperms" очень слабая, в некоторых случаях приводящая к серьезным сбоям. PEX пытается перенаправить все проверки привилегий через свою собственную систему, вместо работы с "superperms" Bukkit'а.
  
/pex config <node> [value]  permissions.manage.config  Выводит значение <node> из конфигурации PEX. Дополнительно можно ввести [value] чтобы задать новое значения для параметра.
+
С версии 1.13 PEX поддерживает superperms
 +
=== Что не так? ===
 +
* Неверная реализация дочерних привилегий. Может привести к тому, что у пользователей есть привилегии, которых им не давали напрямую.
 +
* PEX приводит к проблемам в других плагинах.<ref>Шаги к повтору — [https://docs.google.com/document/d/1BIgAU7senSG1hY0BjQAQFAnbuOqFhpln7ffN6pkOp4s/edit|Why PermissionsEx is broken] — Things PermissionsEx has broken — Breaks other plugins without error messages</ref>
 +
* Дэдлоки. Фриз сервера с комментарием ‘Read timed out’.
 +
* Когда PEX вылетает, вместе с ним в небытие уходит множество других плагинов (в силу жесткого встраивания кода в Bukkit).
 +
* Использование SQL приводит к лагам сервера. При удалении/добавлении привилегии происходит '''полная''' перезапись всех привилегий пользователя на сервере.
  
/pex backend  permissions.manage.backend  Вывести используемые на данный момент бэкенды.
+
=== Что использовать вместо PEX? ===
 
+
* [http://dev.bukkit.org/server-mods/bpermissions/ bPermissions]. На данный момент единственная замена с возможностью импорта конфигурации PEX.
/pex backend <backend>  permissions.manage.backend  Change the permissions backend on-the-fly (Use with caution!) Note that this will only change the backend on-the-fly, it will not save the change in the config file, nor will it convert anything. This is for testing only.)
+
* [http://dev.bukkit.org/server-mods/permbukkit/ PermissionsBukkit].
       
+
* [http://dev.bukkit.org/server-mods/privileges/ Privileges].
/pex hierarchy  permissions.manage.users  Показывает полную иерархию игроков/групп
+
 
+
/pex dump <backend> <filename>  permissions.manage.dump  Создает дамп пользователей и групп в выбранный формат <backend> в файл <filename>
+
 
+
 
+
Управление правами игроков
+
 
+
 
+
Команда
+
Permission
+
Описание
+
 
+
/pex users  permissions.manage.users  Показывает список всех записанных пользователей. И игроков сервера
+
 
+
/pex user <user> [world] permissions.manage.users  Показывает права игрока <user>
+
 
+
/pex user <user> prefix [newprefix] [world]  permissions.manage.users.prefix.<user>  Установить игроку <user> префикс [newprefix]
+
 
+
/pex user <user> suffix [newsuffix] [world]  permissions.manage.users.suffix.<user>  Установить игроку <user> суффикс [newsuffix]
+
 
+
/pex user <user> delete  permissions.manage.users.<user>  Удалить игрока <user> из бэкенда, используемого на данный момент.
+
 
+
/pex user <user> add <permission> [world]  permissions.manage.users.permissions.<user>  Дать право <permission> игроку <user>
+
+
/pex user <user> remove <permission> [world]  permissions.manage.users.permissions.<user>  Забрать право <permission> у игрока <user>
+
 
+
/pex user <user> timed add <permission> [lifetime] [world]  permissions.manage.users.permissions.timed.<user>  Дать временное право <permission> игроку <user> на время [lifetime] (в сек.) Выставите значение на "" (две двойные скобки) если вы хотите использовать право во всех мирах!
+
 
+
/pex user <user> timed remove <permission>  permissions.manage.users.permissions.timed.<user>  Забрать у игрока <user> временное право <permission>
+
 
+
/pex user <user> set <option> <value> [world]  permissions.manage.users.permissions.<user>  Выставить опцию <option> на значение <value>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>
+
 
+
 
+
Управление правами групп игроков
+
 
+
 
+
Команда
+
Permission
+
Описание
+
 
+
/pex user <user> group list [world] permissions.manage.membership.<user>  Показать список групп в которых состоит игрок <user>
+
 
+
/pex user <user> timed add <group>  [*][min\hour\day] = [3min]  permissions.manage.membership.<user>  Добавить игрока <user> в группу <group> на время [lifetime]
+
 
+
/pex user <user> group set <group> [world]  permissions.manage.membership.<user>  Установить группу <group> для игрока <user> (удалит его из остальных групп)
+
 
+
/pex user <user> group remove <group> [world]  permissions.manage.membership.<user>  Удалить игрока <user> из группы <group>
+
 
+
 
+
Управление правами групп
+
 
+
 
+
Команда
+
Permission
+
Описание
+
 
+
/pex groups  permissions.manage.groups.list  Показать все зарегистрированные группы
+
 
+
/pex default group [world]  permissions.manage.groups.inheritance  Показать группу по-умолчанию
+
 
+
/pex set default group <group> [world]  permissions.manage.groups.inheritance  Установить группу <group>, как группу по-умолчанию
+
 
+
/pex group <group> prefix [newprefix] [world]  permissions.manage.groups.prefix.<group>  Установить группе <group> префикс [newprefix]
+
 
+
/pex group <group> suffix [newsuffix] [world]  permissions.manage.groups.suffix.<group>  Установить группе <group> суффикс [newsuffix]
+
 
+
/pex group <group> create [parents]  permissions.manageups.create.<group>  Создать группу <group> и если нужно установить для нее родительскую группу/группы [parents]
+
 
+
/pex group <group> delete  permissions.manage.groups.remove.<group>  Удалить группу <group>
+
 
+
/pex group <group> parents [world]  permissions.manage.groups.inheritance.<group>  Список родительских групп для группы <group>
+
 
+
/pex group <group> parents set <parents> [world] permissions.manage.groups.inheritance.<group>  Установить группе <group> родительскую группу/группы <parents>
+
 
+
/pex group <group>  permissions.manage.groups.permissions.<group>  Показать все права группы <group>
+
 
+
/pex group <group> add <permission> [world]  permissions.manage.groups.permissions.<group>  Дать право <permission> группе <group>
+
 
+
/pex group <group> remove <permission> [world]  permissions.manage.groups.permissions.<group>  Забрать право <permission> у группы <group>
+
 
+
/pex group <group> timed add <permission> [lifetime] [world]  permissions.manage.groups.permissions.timed.<group>  Дать временное право <permission> группе <group> на время [lifetime] (в сек.)
+
+
/pex group <group> timed remove <permission> [world]  permissions.manage.groups.permissions.timed.<group>  Забрать временное право <permission> у группы <group>
+
 
+
/pex group <group> set <option> <value> [world]  permissions.manage.groups.permissions.<group>  Выставить опцию <option> значение <value> для <group>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>
+
 
+
/pex group <group> weight [value]  permissions.manage.groups.weight.<group>  Показать/установить вес группы
+
 
+
 
+
Управление игроками в группах
+
 
+
 
+
Команда
+
Permission
+
Описание
+
 
+
/pex group <group> users  permissions.manage.membership.<group>  Показать всех игроков в группе <group>
+
 
+
/pex group <group> user add <user> [world] [time]  permissions.manage.membership.<group>  Добавить игрока/игроков <user> в группу <group> на время [time]
+
 
+
/pex group <group> user remove <user> [world]  permissions.manage.membership.<group>  Удалить игрока/игроков из группы <group>
+
 
+
/pex promote <user> <ladder>  permissions.user.promote.<ladder>  Повысить игрока <user>  в высшую группу <ladder>
+
 
+
/pex demote <user> <ladder>  permissions.user.demote.<ladder>  Понизить игрока <user> в низшую группу <ladder>
+
 
+
 
+
 
+
Управление наследственностью миров
+
 
+
 
+
Команда
+
Permission
+
Описание
+
 
+
/pex worlds  permissions.manage.worlds  Показать загруженные миры
+
 
+
/pex world <world>  permissions.manage.worlds  Показать информацию о наследственности мира <world>
+
 
+
/pex world <world> inherit <parentWorlds>  permissions.manage.worlds.inheritance  Установить родительский мир/миры <parentWorlds> для мира <world>
+

Текущая версия на 12:27, 11 декабря 2016

PermissionsEX (PEX) — плагин который позволяет легко разграничивать полномочия игроков на сервере. Имеет встроенные дополнения Modifyworld, которое дает возможность определять что игроки могут или не могут изменять в игровом мире.


Содержание

Установка

  1. Скачать последнюю версию плагина: ссылка
  2. Поместить PermissionsEX.jar в папку plugins/ на сервере.
  3. Перезапустить сервер.

Использование

Для распределения прав игрокам нужно отредактировать файл permissions.yml по адресу plugins/PermissionsEx. Это можно сделать с помощью любого текстового редактора, но для удобности рекомендуется использовать Notepad++
Открыв его мы увидим:

groups: 
   default: 
       default: true 
       permissions: 
       — modifyworld.*

Значение этих строк следующее:
groups: — указывает, что ниже будут идти группы и их права.
default: — название группы, куда попадают все только что зашедшие на сервер игроки, если они не прописаны в других группах. Вы можете менять это название на какое захотите.
default: true — параметр, который задаёт группу, как группу по-умолчанию. То есть, все права этой группы будет иметь любой игрок, для которого не определены другие группы и/или исключения.
permissions: — все, что идёт ниже, это и есть сами "права" для группы, сюда нужно прописывать permissions от различных плагинов установленных на вашем сервере. Значение null означает, что у группы/игрока нет никаких прав.
- modifyworld.* — возможность "модифицировать" мир. Если Вы не намерены конкретно определять, что игроки могут или не могут изменять в игровом мире, то это право лучше оставить как есть, а если намеренны, то смотрите в Modifyworld.

Рассмотрим как мы можем отредактировать данный файл:

groups: 
   player: true (Для включения автомотической выдачи игрока) 
       default: true 
       permissions: 
       — modifyworld.*
   Admins: 
       default: false 
       inheritance: 
       — default
       permissions: 
       — '*' 
users: 
   BigBoss: 
       group: 
       — Admins 
       options: 
           rank: '1' 
       permissions:

Здесь мы добавили новую группу Admins, а также права для отдельного игрока BigBoss:.
default: false — означает, что данная группа не является группой по-умолчанию.
inheritance: — параметр, с помощью которого можно установить наследственность прав определённой группы, в данном случае — это группа default. Это значит, что Вам не придётся еще раз прописывать права группы default для группы Admins.
Звездочка ('*') означает, что у группы/игрока есть абсолютно все права на все плагины, установленные на сервере.
users: — означает, что ниже идут права отдельных игроков.
BigBoss: — имя игрока для которого настраиваются отдельные права.
group: Admins — указывает на то, что игрок входит в группу Admins
rank:ранг игрока.

Если Вы хотите раскрасить ники игроков и добавить к ним префиксы и суффиксы то нужно включить и настроить в permissions.yml Chat Manager.

Важно! В YAML нужно чётко соблюдать последовательность, один лишний пробел — и параметр работать не будет. Поэтому для проверки permissions.yml рекомендуется использовать этот сайт. Там в левое окошко нужно вставить ваш код из permissions.yml, и если в правом окне не выдаст ошибок, то код написан правильно и он будет работать, если будут ошибки, то оно выдаст номер забракованной строки.

Команды и права

С помощью следующих команд вы можете управлять PEX прямо через консоль или игровой чат, не редактируя файл permissions.yml

  • Добавление префиксов и суффиксов будет работать только если включен Chat Manager или EssentialsChat (начиная с 1.6.4).
  • Значение параметров: <такой> параметр обязателен для указания; [такой] параметр — опциональный.
  • Параметр [world] позволяет локализировать действие команды в определенном мире.
  • Там где упоминается единственное/множественное можно перечислять параметры через запятую.

Служебные

Команда Permission Описание
/pex permissions.manage Показывает помощь по PEX
/pex toggle debug permissions.manage Вкл./откл. режим отладки (создает много отладочной информации в server.log)
/pex user <user> check <permission> permissions.manage.<user> Проверить право <permission> игрока <user>
/pex reload permissions.manage.reload Перезагружает плагин
/pex config <node> [value] permissions.manage.config Выводит значение <node> из конфигурации PEX. Дополнительно можно ввести [value] чтобы задать новое значения для параметра.
/pex backend permissions.manage.backend Вывести используемые на данный момент бэкенды.
/pex backend <backend> permissions.manage.backend Change the permissions backend on-the-fly (Use with caution!) Note that this will only change the backend on-the-fly, it will not save the change in the config file, nor will it convert anything. This is for testing only.)
/pex hierarchy permissions.manage.users Показывает полную иерархию игроков/групп
/pex dump <backend> <filename> permissions.manage.dump Создает дамп пользователей и групп в выбранный формат <backend> в файл <filename>

Управление правами игроков

Команда Permission Описание
/pex users permissions.manage.users Показывает список всех записанных пользователей. И игроков сервера
/pex user <user> [world] permissions.manage.users Показывает права игрока <user>
/pex user <user> prefix [newprefix] [world] permissions.manage.users.prefix.<user> Установить игроку <user> префикс [newprefix]
/pex user <user> suffix [newsuffix] [world] permissions.manage.users.suffix.<user> Установить игроку <user> суффикс [newsuffix]
/pex user <user> delete permissions.manage.users.<user> Удалить игрока <user> из бэкенда, используемого на данный момент.
/pex user <user> add <permission> [world] permissions.manage.users.permissions.<user> Дать право <permission> игроку <user>
/pex user <user> remove <permission> [world] permissions.manage.users.permissions.<user> Забрать право <permission> у игрока <user>
/pex user <user> timed add <permission> [lifetime] [world] permissions.manage.users.permissions.timed.<user> Дать временное право <permission> игроку <user> на время [lifetime] (в сек.) Выставите значение на "" (две двойные скобки) если вы хотите использовать право во всех мирах!
/pex user <user> timed remove <permission> permissions.manage.users.permissions.timed.<user> Забрать у игрока <user> временное право <permission>
/pex user <user> set <option> <value> [world] permissions.manage.users.permissions.<user> Выставить опцию <option> на значение <value>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>

Управление правами групп игроков

Команда Permission Описание
/pex user <user> group list [world] permissions.manage.membership.<user> Показать список групп в которых состоит игрок <user>
/pex user <user> timed add <group> permissions.manage.membership.<user> Добавить игрока <user> в группу <group> на время [lifetime]
/pex user <user> group set <group> [world] permissions.manage.membership.<user> Установить группу <group> для игрока <user> (удалит его из остальных групп)
/pex user <user> group remove <group> [world] permissions.manage.membership.<user> Удалить игрока <user> из группы <group>

Управление правами групп

Команда Permission Описание
/pex groups permissions.manage.groups.list Показать все зарегистрированные группы
/pex default group [world] permissions.manage.groups.inheritance Показать группу по-умолчанию
/pex set default group <group> [world] permissions.manage.groups.inheritance Установить группу <group>, как группу по-умолчанию
/pex group <group> prefix [newprefix] [world] permissions.manage.groups.prefix.<group> Установить группе <group> префикс [newprefix]
/pex group <group> suffix [newsuffix] [world] permissions.manage.groups.suffix.<group> Установить группе <group> суффикс [newsuffix]
/pex group <group> create [parents] permissions.manageups.create.<group> Создать группу <group> и если нужно установить для нее родительскую группу/группы [parents]
/pex group <group> delete permissions.manage.groups.remove.<group> Удалить группу <group>
/pex group <group> parents [world] permissions.manage.groups.inheritance.<group> Список родительских групп для группы <group>
/pex group <group> parents set <parents> [world] permissions.manage.groups.inheritance.<group> Установить группе <group> родительскую группу/группы <parents>
/pex group <group> permissions.manage.groups.permissions.<group> Показать все права группы <group>
/pex group <group> add <permission> [world] permissions.manage.groups.permissions.<group> Дать право <permission> группе <group>
/pex group <group> remove <permission> [world] permissions.manage.groups.permissions.<group> Забрать право <permission> у группы <group>
/pex group <group> timed add <permission> [lifetime] [world] permissions.manage.groups.permissions.timed.<group> Дать временное право <permission> группе <group> на время [lifetime] (в сек.)
/pex group <group> timed remove <permission> [world] permissions.manage.groups.permissions.timed.<group> Забрать временное право <permission> у группы <group>
/pex group <group> set <option> <value> [world] permissions.manage.groups.permissions.<group> Выставить опцию <option> значение <value> для <group>. Выставите значение на "" (две двойные кавычки) если вы хотите убрать опцию <option>
/pex group <group> weight [value] permissions.manage.groups.weight.<group> Показать/установить вес группы

Управление игроками в группах

Команда Permission Описание
/pex group <group> users permissions.manage.membership.<group> Показать всех игроков в группе <group>
/pex group <group> user add <user> [world] [time] permissions.manage.membership.<group> Добавить игрока/игроков <user> в группу <group> на время [time]
/pex group <group> user remove <user> [world] permissions.manage.membership.<group> Удалить игрока/игроков из группы <group>
/pex promote <user> <ladder> permissions.user.promote.<ladder> Повысить игрока <user> в высшую группу <ladder>
/pex demote <user> <ladder> permissions.user.demote.<ladder> Понизить игрока <user> в низшую группу <ladder>

Управление наследственностью миров

Команда Permission Описание
/pex worlds permissions.manage.worlds Показать загруженные миры
/pex world <world> permissions.manage.worlds Показать информацию о наследственности мира <world>
/pex world <world> inherit <parentWorlds> permissions.manage.worlds.inheritance Установить родительский мир/миры <parentWorlds> для мира <world>

Критика

API полномочий Bukkit’а (также называющееся “superperms”) был разработан с целью централизации конфигурации прав пользователей, отсутствия необходимости поиска плагинов, которые были бы совместимы с какой-то определенной системой прав. Все текущие плагины полностью поддерживают ‘superperms’, кроме PermissionsEx. PEX же работает против этой системы путем встраивания собственного кода. Это вызывало проблемы как у PEX, так и в самом Bukkit'е. Реализация "superperms" очень слабая, в некоторых случаях приводящая к серьезным сбоям. PEX пытается перенаправить все проверки привилегий через свою собственную систему, вместо работы с "superperms" Bukkit'а.

С версии 1.13 PEX поддерживает superperms

Что не так?

  • Неверная реализация дочерних привилегий. Может привести к тому, что у пользователей есть привилегии, которых им не давали напрямую.
  • PEX приводит к проблемам в других плагинах.<ref>Шаги к повтору — PermissionsEx is broken — Things PermissionsEx has broken — Breaks other plugins without error messages</ref>
  • Дэдлоки. Фриз сервера с комментарием ‘Read timed out’.
  • Когда PEX вылетает, вместе с ним в небытие уходит множество других плагинов (в силу жесткого встраивания кода в Bukkit).
  • Использование SQL приводит к лагам сервера. При удалении/добавлении привилегии происходит полная перезапись всех привилегий пользователя на сервере.

Что использовать вместо PEX?