1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Плагин [GEN] rscPermissions v0.10.x — идеальный менеджер прав для мультисерверных сред [1.2.5 - 1.10.x]

Тема в разделе "Релизы плагинов", создана пользователем Reality_SC, 8 янв 2014.

Статус темы:
Закрыта.
  1. maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Когда будет поддержка Essentials?
     
  2. Serafim

    Serafim Активный участник Пользователь

    Баллы:
    68
    Подскажите плагин чата, который отображает эти префиксы? Столько уже перепробовал и iChat и MChat и HeroChat и Essentials Chat и еще какие-то... ни один не вывел префикс. Команда rscp user <ник> p - возвращает префикс из БД верный.
    И как вообще работает этот менеджер прав? Стоит право *, HereChat пишет You don`t have permissions to speak in global... rscp user <ник> lp - возвращает *, я в верной группе, все как надо, если верить плагину... но прав половины нет...
    добавил право (зачем-то) herochat.speak.* - получаю ошибку во время отправки сообщения в чат
    [20:50:55 WARN]: [Herochat] Task #309 for Herochat v5.6.7-SNAPSHOT generated an
    exception
    java.lang.ArrayIndexOutOfBoundsException: -1
    at ru.simsonic.rscPermissions.Engine.ResolutionResult.getDeorderedGroups
    (ResolutionResult.java:46) ~[?:?]
    at ru.simsonic.rscPermissions.Bukkit.VaultPermission.getPlayerGroups(Vau
    ltPermission.java:295) ~[?:?]
    at ru.simsonic.rscPermissions.Bukkit.VaultPermission.getPrimaryGroup(Vau
    ltPermission.java:316) ~[?:?]
    at ru.simsonic.rscPermissions.Bukkit.VaultChat.getPrimaryGroup(VaultChat
    .java:199) ~[?:?]
    at com.dthielke.herochat.StandardChannel.applyFormat(StandardChannel.jav
    a:141) ~[?:?]
    at com.dthielke.herochat.StandardChannel.processChat(StandardChannel.jav
    a:390) ~[?:?]
    at com.dthielke.herochat.MessageHandler.handle(MessageHandler.java:160)
    ~[?:?]
    at com.dthielke.herochat.HCPlayerListener$1.run(HCPlayerListener.java:36
    ) ~[?:?]
    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftTask.run(CraftTask.java
    :71) ~[CraftTask.class:1.7.10-1481.148]
    at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.mainThreadHea
    rtbeat(CraftScheduler.java:346) [CraftScheduler.class:1.7.10-1481.148]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.jav
    a:873) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(Dedicated
    Server.java:431) [lt.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.jav
    a:809) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:669) [M
    inecraftServer.class:?]
    at java.lang.Thread.run(Unknown Source) [?:1.7.0_80]
     
  3. chief

    chief Активный участник Пользователь

    Баллы:
    76
    Какая версия ядра? Vault присутствует?
    Могу дать плагин исключительно на префиксы, если найду
     
  4. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    HeroChat прекрасно выводит префиксы, у меня он стоит. Вот мой конфиг:
    Код:
    moderator-permissions:
      can-kick: true
      can-ban: true
      can-mute: true
      can-remove-channel: false
      can-modify-nick: true
      can-modify-color: true
      can-modify-distance: true
      can-modify-password: true
      can-modify-format: false
      can-modify-shortcut: false
      can-modify-verbose: true
      can-modify-focusable: false
      can-modify-crossworld: false
      can-color-messages: true
      can-view-info: true
      can-focus: true
      can-modify-chatcost: false
    default-channel: Global
    censors: []
    format:
      default: '{color}[{nick}]&r{prefix}{sender}{suffix}&r: {msg}'
      announce: '{color}[{nick}]&r {msg}'
      emote: '{color}[{nick}] * {msg}'
      private-message: '&d{convoaddress} {convopartner}&f: {msg}'
    use-channel-emotes: true
    ...
    У тебя нет ни префиксов групп, ни игроков?

    HeroChat — довольно старый зверь и он не предлагает "сборников прав" со звёздочкой, вроде как. Вот мой конфиг:
    upload_2016-1-21_9-48-4.png
    upload_2016-1-21_9-48-49.png
    Ты как-то умудрился что-то такое странное забить в БД, что сломал плагин.
    Спасибо, отличный стресс-тест, я исправлю эту строчку. Но данные у тебя записаны некорректно.

    Обрати внимание, правильно ли у тебя назначены права группам (а не игрокам с именами групп).
     
  5. Serafim

    Serafim Активный участник Пользователь

    Баллы:
    68
    Нашел ошибку, вернее неверную трактовку, описания полей в таблицах Бд я нигде не нашел, сделал по типу PEX, там вот проблема была в чем: в таблице `rscp_inheritance` поле `entity` содержало имя рассматриваемой группы (допустим 'Admin'), поле `parent` содержало имя группы родителя - от которой я собирался наследовать все права (допустим 'Moder'). А надо было почему-то делать наоборот, т.е. группа, которую мы называем родителем, по факту получает права от дочерней группы... Решил попробовать это, только потому, что увидел на скриншоте образец наследственности, иначе бы не догадался. Спасибо за помощь)
    @chief, если не затруднит, подскажи плагин чата
     
  6. chief

    chief Активный участник Пользователь

    Баллы:
    76
  7. MySt1k

    MySt1k Старожил Пользователь

    Баллы:
    173
    Тестировал ChatEx, ChatManager, EssentialsChat, LiteChat, ichat еще несколько штук и у меня везде работали префиксы... Кажется просто кто-то не умеет работать с бд
     
  8. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ну так правильно, дочерние группы наследуют то, что им дают родители. А как иначе? :)
    Может быть в PEX другая терминология, типа entity / child?
     
  9. maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Все. Я сделал себе порт essentials под rscPermissions
     
  10. Linkinkov

    Linkinkov Старожил Пользователь

    Баллы:
    173
    Skype:
    linkinkov1
    Имя в Minecraft:
    linkinkov
    Выкладывайте в общий доступ, если возможно
     
  11. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    В тестовой сборке 0.9.20b есть новая фишка типа указывать идентификаторы энтитей по wildcard-у. Сделал это исключительно для себя (да и как весь плагин, в общем-то).
    Рассказываю:

    У меня на сервер можно зайти вообще нигде не регистрируясь, это называется Гостевая учётка. Кроме неё ещё можно зарегаться на форуме (что лучше) или просто воспользоваться лицухой. Гости имеют супер-стрёмный скин и должны быть ограничены от всего того, чем можно хоть как-то попортить сервер :)

    В таблице entities указал им чёрный (самые нечитаемый) цвет ника.
    upload_2016-2-19_15-37-35.png
    В таблице inheritance указал, что все игроки (type = 1), имеющие ник, начинающийся на "Guest_" (а именно такого плана случайные ники генерирует моя кастомная обвязка) — будут получать поверх группу Guests, причём с максимальным приоритетом (среди используемых мной), то есть она всегда будет применяться в конце и перекрывать права, полученные от групп с меньшим приоритетом.
    upload_2016-2-19_15-40-13.png
    Прошу ознакомиться пользователей моего плагина с картинкой выше, ибо это вообще неплохой пример того, как можно организовать на проекте дерево групп. А то никак руки не дойдут включить пример структуры в БД...
    upload_2016-2-19_15-46-26.png

    Вот так, на сервер всегда можно зайти без каких-либо проволочек, заценить его, и если понравилось — отправляться на регистрацию.
     
  12. Linkinkov

    Linkinkov Старожил Пользователь

    Баллы:
    173
    Skype:
    linkinkov1
    Имя в Minecraft:
    linkinkov
    Начал с PEX часто получать stall сервера, то есть подвисы и превышено время ожидания.
    Все сервера подключены к удаленной БД, используется какой то кеш? Или будет такая же проблема как с PEX?
     
  13. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Во-первых, rscPermissions всегда делает запросы к удалённой БД в параллельном потоке, а также в другом параллельном потоке производя расчёт конкретных прав для рассматриваемого игрока. В основном потоке проскакивают лишь небольшие Runnable, которые применяют обновления прав к игроку.

    Всегда при получении свежей порции данных от БД плагин сохраняет их в .json кэш (три файла по названиям соответствующих таблиц). При включении считывается именно он и сразу же применяется, а обновлённые права игроки получат после получения порции от СУБД.

    То есть, плагин всеми силами пытается не тормозить сервер. Возможно, могут быть какие-то нестандартные ситуации, которые я не учёл, связанные с периодичной недоступностью СУБД, но сам с ними не сталкивался.
     
    Последнее редактирование: 14 мар 2016
  14. brinza

    brinza Старожил Пользователь

    Баллы:
    103
     
  15. MySt1k

    MySt1k Старожил Пользователь

    Баллы:
    173
    Да потому что он и так работал :D

    В ранних версиях не работал, но потом @Reality_SC исправил. С каких билдов не помню, у меня ЛС затерлась
     
  16. maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Не проще взять и дописать в Essentials PermissionsHandler для rscPermissions, который наследует абстрактный интерфейс IPermissionsHandler
     
  17. ICCraft

    ICCraft Активный участник Пользователь

    Баллы:
    68
    тут работают отрицательные права с - ?
     
  18. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    К сожалению, я никогда не пользовался Essentials, это вроде как какой-то сложный зверь для меня, и я не в курсе его API. Спасибо за наводку, я при свободной минутке попробую выяснить, как же использовать этот IPermissionsHandler.
    В таблице pesmissions есть отдельная колонка value (битовая), в которой 1 — дать право, 0 — забрать право. Впервые это увидел у zPermissions, но в итоге сам пришёл к такому повороту событий.
     
  19. maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Да не за что :)
     
  20. chief

    chief Активный участник Пользователь

    Баллы:
    76
    Дублируется префикс и суффикс, если он отсутствует в привилегии выше
    Группа Б есть дочерней группой А. Если, у группы Б префикс и суффикс отсутствуют, то префикс и суффикс берутся от группы А и дублируются (то есть отражаются дважды).
    spigot 1.9.2
     
Статус темы:
Закрыта.

Поделиться этой страницей