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

Помогите Сессия

Тема в разделе "Разработка плагинов для новичков", создана пользователем serega6531, 22 май 2014.

  1. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Помогите, мне нужно получить сессию игрока. Нет, не чтобы украсть. Можно использовать любые способы, рефлексию и т.д.
     
  2. MegaFlary

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

    Баллы:
    153
    Думаю, потребуется изменение самого ядра сервера.
     
  3. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Рефлексией никак нельзя?
     
    ПриветОтЛайки нравится это.
  4. Defilak

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

    Баллы:
    78
    Имя в Minecraft:
    Defilak
    Сессия на сервере или в клиенте?
    На сервере сессия игрока не хранится насколько я знаю.
    Ну а в клиенте вытащить рефлексией сессию реально.
     
  5. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    На сервере, получить нужно только с помощью плагина.
     
  6. MegaFlary

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

    Баллы:
    153
    Плагином не получится. Нужно найти, в каком месте подключается игрок на сервер и оттуда брать сессию.
     
    ПриветОтЛайки нравится это.
  7. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Мне нужно простым плагином брать.
     
  8. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Это в принципе одно и тоже.
    Первый цитируемый имеет ввиду подмену классов через перекомпиляцию; второй — в рантайме.
    Имей ввиду, что плагины и ядро сервера загружаются разными ClassLoader-ами.
    Получения лоадера ядра в коде плагина:
    Код:
    ClassLoader pluginClassLoader = VoxilePlugin.class.getClassLoader();
    ClassLoader serverClassLoader = pluginClassLoader.getParent();
    Ну а дальше сам копай, ищи промежуток между созданием соединения и генерацией события PlayerPreLoginAsync.

    Ничего не могу сказать за сложность реализации, ибо не очень в теме.
     
    ПриветОтЛайки нравится это.
  9. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Сессию игрока - никак, она не передаётся на сервер.
     
  10. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Жаль, спасибо всем.
     
    ПриветОтЛайки и Reality_SC нравится это.
  11. MegaFlary

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

    Баллы:
    153
    А как же тогда проходит проверка игрока через checkserver?
     
  12. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    http://wiki.vg/Authentication
     
  13. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Покопался на GitHub'e, нашел вот это, наверно не подойдет.
     
  14. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Код:
     public Session(OfflinePlayer player) {
            this(player, UUID.randomUUID().toString());
        }
     
  15. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    UUID и сессия так-то разные вещи.
     

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