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

Как узнать есть ли на нике лицензия?

Тема в разделе "Оффтопик", создана пользователем ZiGO_356, 8 июл 2019.

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

    ZiGO_356 Ньюби

    Баллы:
    0
  2. alexandrage

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

    Баллы:
    173
    Онлайн мод труе.
     
  3. Toster_tpl

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

    Баллы:
    153
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Это не так. Это не единственный способ.
    У тебя недостаточно знаний для помощи другим людям на этом форуме.
    Зачастую твои ответы не только неверные, но и вовсе не несут какого-либо смысла (дублирование ответа другого участника обсуждения или предложение закрыть тему).
    Пожалуйста, думай трижды, прежде чем давать ответ, дабы не вводить людей в заблуждение.
    Также хочу заметить, что тупое набивание сообщений почти на любом адекватном форуме наказывается баном )
     
    Последнее редактирование: 16 июл 2019
  5. alexandrage

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

    Баллы:
    173
    Ну от части он прав. Наличие акка на нике посмотреть можно, а вот зашел игрок с лицухи или нет, только онлайн мод.
     
  6. TheSkiffSailor

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

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Я тут погуглил и понял что можно проверить.
    Берешь UUID - Player#getUniqueId();
    Проверяешь 15 символ включая `-` (12345-789...)
    Он всегда будет цифрой, если эта цифра 4 - игрок в лицухи.
    Если цифра равна 3 - игрок играет с кряка (ТЛаунчер или чтото подобное)
     
  7. alexandrage

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

    Баллы:
    173
     
  8. TheSkiffSailor

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

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Если игрок зайдет с ника на котором есть лицуха, то это выдаст что у него лицуха есть, тк хотя на пиратке можно зайти с любого ника
     
  9. TheSkiffSailor

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

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    [​IMG]
     
  10. SimMiMo

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

    Баллы:
    76
    Мне кажется перехватом пакетов и с изменением структуры авторизации можно что-то нахимичить попробовать.
    https://github.com/SpigotMC/BungeeC..._5/bungee/connection/InitialHandler.java#L402
    Например здесь уже делать что-то, сохранить там в переменную ник игрока если онлайн мод, а дальше уже работать, ну и просто закомментировать кик )
     
  11. Toster_tpl

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

    Баллы:
    153
    Прочитайте еще раз название темы
     
  12. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Начнем с того, что автору темы нужно было проверять просто наличие лицензии на нике, т.е. проверять, занят ли тот или иной ник в самом майнкрафте. Возможно для скачивания скина, возможно ещё для чего-то, ХЗ. Для этой задачи достаточно той ссылки, что предоставил Toster_tpl.

    А вот если нужно убедиться в том, что на сервер заходит лицензионщик, а не пират - тут ситуация поинтереснее.
    При помощи BungeeAPI можно включать онлайн-мод отдельным игрокам буквально при помощи одного метода.
    Вот только проблема в том, что при включении онлайн-мода игрок будет сам (по своему желанию) отключаться от сервера, если авторизация не пройдена. И со стороны сервера на этот механизм повлиять нельзя, если мы говорим о клиенте без модификаций.

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

    А вот это вообще полная ахинея, т.к. сервер сам получает UUID игрока, а не берёт его с клиента.
    Если это онлайн-мод - делается запрос на сервера Можанг. По какому алгоритму генерируется UUID у них - лишь богам и Нотчу известно. Возможно вообще рандомные айдишники записываются при регистрации аккаунта.
    Если это оффлайн-мод - UUID генерируется прямо на сервере по простенькому алгоритму, связанному исключительно с ником игрока.
     
  13. SimMiMo

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

    Баллы:
    76
    Ребята сделали через переключение команды, что логично в целом. https://github.com/games647/FastLogin/wiki/FAQ
     
  14. alexandrage

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

    Баллы:
    173
    Это не так делали. При первом заходе игрока встречает онлайн мод.
    После кика он отключается для данного айпи и игрок входит повторно, если ник еще не проходил онлайн мод.
    Все в автоматическом режиме. Это делали чтоб был таблист со скинами для лицушников.
     
  15. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Это, конечно, прекрасно, но ты действительно думаешь, что кто-то будет перезаходить на сервере ещё раз, если нет лицензии?
     
  16. alexandrage

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

    Баллы:
    173
    Не поверишь, но так и делали. Только потом всем стало пофиг на таблист.
    И то был крупный сервер, не какая то пустышка. Тут на рб многие завидовали и пытались узнать, как повторить.
    Это было интересно в 1.8, когда только ввели.
     
    Последнее редактирование: 16 июл 2019
  17. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Сейчас такое не взлетит. 99% игроков будут просто забивать на сервер после получения сообщения Bad login. Реально удобнее просто команду ввести для подключения лицензии.
    Другой вопрос в том, почему у игроков со включенным online-mode не видны головы в табл-листе. Не варик на банже включить онлайн-мод и просто отключать его при входе игрокам, у которым не включен вход по лицензии?
     
  18. alexandrage

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

    Баллы:
    173
    Взлетит не взлетит, но так было и это был рабочий варик.
     
  19. HauserGrim

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

    Баллы:
    96
    Если бы это было возможно или не сложно, то об этом бы уже написали, но вот моя тупая (или не очень) идея:
    Сервер при включенном онлайн моде проверяет лицензию, а что если изменить ядро так, чтобы даже при входе пирата проверяло лицензию, но его всё-равно пускало, при разных результатах, конечно, что-то делало (мб новые ивенты или доп детали к playerjoinevent'у)

    Кстати, как правильно эвент или ивент? Вроде в event оно и как Э, и как И может звучать... (оффтоп в оффтопе xD)

    ЗЫ Это всё к обсуждению выше, а не к самой теме.
     
    Последнее редактирование: 16 июл 2019
  20. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Если бы ты внимательно прочитал моё сообщение, то понял бы, что невозможно проверить наличие лицензии у оффлайн-игрока. А онлайн-игрок сам отключается, если у него проблемы с лицензией.
    Ты хоть с нуля ядро напиши - проблему это не решит, понимаешь?
    Нужно патчить authlib на клиенте или вовсе менять систему авторизации (на клиенте в том числе, опять же).

    Ближе к Э.
     

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