Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Как выдать разрешения игроку?

Discussion in 'Разработка плагинов для новичков' started by Earl Morze, Jul 3, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Earl Morze

    Earl Morze Новичок Пользователь

    Trophy Points:
    16
    На пример имеется конфиг:
    Code:
    groups:
      player:
         - perm.player
        - perm.etc
      admin:
         - perm.*
    players:
      ivan: admin
    
    Далее игрок заходит на сервер, ему выдаются права игрока, и если его ник ivan, еще и права админа.
    И вот суть вопроса: как эти права выдать?
    В гугле нашел только про PermissionAttachment, но я не понял как его использовать.
    Заранее благодарен.
     
  2. Хостинг MineCraft
    <
  3. Mr_RoboMan

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

    Trophy Points:
    123
    Кстати подписываюсь, тоже интересна тема как сделать что-то вроде своего PEX..
     
  4. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Проверяете ник игрока, если = ivan, выставляете ему группу, которую берёте по имени.
     
  5. Mr_RoboMan

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

    Trophy Points:
    123
    Я думаю я и ТС говорим не про это..
    Свою системку прав я уже реализовал у себя, НО, например проверить есть ли у игрока право, мне надо делать так:
    GWMServerPlugin.plugin.permission.hasPlayerPerm(....)!
    А вот как можно засунуть это глубоко в bukkit, чтоб можно было юзать player.hasPermission()?[DOUBLEPOST=1467555311,1467555254][/DOUBLEPOST]Ведь насколько я помню, если установить PEX, то права можно проверять и по player.hasPermission() и права установленный в PEX тоже будут работать..
     
  6. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Почему вы все так ленитесь декомпилировать чужие плагины?
    Инстанс главного класса - плохо.
     
    Last edited: Jul 3, 2016
  7. Bohdan_Hrytsak

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

    Trophy Points:
    76
    Имя в Minecraft:
    NegaTiV
    декомпиляция PeX тебе в помощь.
     
  8. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Убейся, пожалуйста, и не пиши то, что уже было написано.

    Существует такой прекрасный плагин, как rscPermissions.
    Исходник открыт и доступен всем - смотрите.
     
  9. Mr_RoboMan

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

    Trophy Points:
    123
  10. Автор темы
    Earl Morze

    Earl Morze Новичок Пользователь

    Trophy Points:
    16
    Да я просто попросил помощи в этом вопросе. Я гуглил, декомпилировал, но так и не смог понять как реализовывается выдача прав.
     
  11. Mr_RoboMan

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

    Trophy Points:
    123
    Декомпилировать то можно, но лично я - могу прочитать только небольшие плгинчики, не больше 10ки классов, но прочитать PEX с его колвом классов и понять хоть что-то - для меня IMPOSSIBLE..
    Ага, а еще статики, а еще вся джава костыли.
     
  12. Reality_SC

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

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    Воу воу воу, спасибо :)
    Работать с PermissionAttachment легко, это просто некая обёртка над какой-то другой коллекцией (скорее всего HashMap, но роли никакой не играет).
    https://github.com/SimSonic/rscPerm...Bukkit/BukkitPermissionManager.java#L107-L113
    Code:
    PermissionAttachment attachment = player.addAttachment(plugin);
    attachment.setPermission("permission", true); // или false, если отобрать.
     
  13. Автор темы
    Earl Morze

    Earl Morze Новичок Пользователь

    Trophy Points:
    16
    Огромное спасибо. Целый день ломал голову, а все так просто.
     
Thread Status:
Not open for further replies.

Share This Page