Туториал [UPD] Система авторизации клиента

го скайп все скажу leo_pro100
 
Вообщем в связи с тем что туториал от Бухара (система авторизации клиента) устарел, и многим он непонятен, я решил написать новый, с обновлёнными ссылками и подробным описанием моих действий. В этом туториале мы рассмотрим как сделать лаунчер с автообновлением, систему загрузки скинов, привязку клиент<->сервер.
Теперь я вас ознакомлю с файлами и программами которые нам понадобятся: InClassTranslator, NetBeans, исходники лаунчера, скрипты авторизации, скрипты проверки авторизации и файлы обновления (minecraft.jar и client.zip добавьте свой. Подробнее об этом в конце туториала.)

1) Начнём с модификации клиента. Скачиваем InClassTranslator. Открываем наш minecraft.jar и вытаскиваем следующие файлы:

Для версии 1.3.1
asu.class - Заменяем http://session.minecraft.net/game/joinserver.jsp?user= на путь к файлу joinserver.php | Внимание! В конец ссылки обязательно допишите ?user=
aup.class - Заменяем http://s3.amazonaws.com/MinecraftSkins/ на путь к папке со скинами. | Внимание! В конце ссылки обязательно должен быть слэш "/"
auq.class - Заменяем http://s3.amazonaws.com/MinecraftSkins/ на путь к папке со скинами. | Внимание! В конце ссылки обязательно должен быть слэш "/"
Для версии 1.2.5
adl.class - Заменяем http://session.minecraft.net/game/joinserver.jsp?user= на путь к файлу joinserver.php | Внимание! В конец ссылки обязательно допишите ?user=
rv.class - Заменяем http://s3.amazonaws.com/MinecraftSkins/ на путь к папке со скинами. | Внимание! В конце ссылки обязательно должен быть слэш "/"
vq.class - Заменяем http://s3.amazonaws.com/MinecraftSkins/ на путь к папке со скинами. | Внимание! В конце ссылки обязательно должен быть слэш "/"
yw.class - Заменяем http://s3.amazonaws.com/MinecraftCloaks/ на путь к папке с плащами. | Внимание! В конце ссылки обязательно должен быть слэш "/"

2) Теперь мы будем редактировать исходники лаунчера. Качаем их (лично я рекомендую брать auth_system_launcher_zip_src.zip). Скачали, распаковали. Скачиваем и устанавливаем NetBeans. Установили. Открываем NetBeans, нажимаем Файл->Создать проект... В появившемся окне, в левом столбике выбираем "Java", а в правом "Приложение Java". Жмём "Далее". Тут можно выбрать название проекта, и его расположение. Теперь, важно, убираем галочку с "Создать главный класс" и жмём "Готово". Мы создали проект. Теперь нажимаем на него правой кнопкой мыши и выбираем "Свойства". В "Папки с пакетами исходных файлов:" удаляем папку "src", нажимаем "Добавить папку" и выбираем папку с исходниками лаунчера. Выбрали. В "Формат исходного/двоичного кода" я советую выбрать JDK 6. Жмём "Ок". Теперь щёлкаем по нашему проекту два раза. У нас выплыло меню. Два раза щёлкаем по первой строчке, затем по последней (net.minecraft). Теперь приступим к редактированию исходников. Два раза щёлкаем GameUpdater.java. Ищем на 171 строчке ссылку на скачку обновлений. Меняем на свою. Открываем LauncherFrame.java. На 101 строчке видим ссылку. Меняем её на ссылку к файлу auth.php. Открываем LoginForm.java. На 300 строке меняем ссылку регистрации на свою (к файлу reg.php). На 355 строке меняем ссылку на скачку вашего лаунчера. На 189 строке меняем ссылку на ваши новости. Теперь, если вы хотите изменить директорию игры, то откройте Util.java. На 29 строке измените "minecraft" на ваше название. Откроем minecraft.jar. Идём в net/cmineraft/client и вытаскиваем файл Minecraft.class. Откроем его с помощью InClassTranslator. Ищем строку minecraft (с маленькой буквы) и меняем на своё название. Теперь засовываем обратно. Поздравляю, второй этап завершён!

3) Скачиваем и распаковываем скрипты авторизации. Открываем connect.php. Внутри файла подробная инструкция настройки, но если что-то непонятно пишите в комментарии. Настроили. Заливаем все файлы (кроме папки sql) на свой сайт. Теперь заходим в phpMyAdmin. Выбираем Базу Данных и жмём "Импорт". Нажимаем "Выбрать файл" и закачиваем все файлы из папки sql (Откройте с помощью любого текстового редактора файл add_columns.sql и в первой строке вместо tabe_name напишите название вашей таблицы с пользователями). Импортировали. Теперь давайте проверим, правильно ли вы настроили connect.php. Скачиваем скрипты проверки авторизации и закидываем их в туже папку, в которой находятся скрипты авторизации. Откройте файл index1.php. Введите ваш логин и пароль, а в поле "Версия лаунчера" введите 13. Если вы всё настроили правильно, то скрипт вам выдаст что-то типа этого: цифры:буквы_цифры:логин:нужные_нам_цифры: Копируем нужные_нам_цифры и открываем index2.php. Вводим логин, в поле "Сессия" вводим нужные_нам_цифры. а в поле "Сервер" вводим 1. Если скрипт выдал YES, то открываем index3.php. Там вводим логин, а в поле "Сервер" вводим 1. Если скрипт выдал "ОК" то поздравляю вас, вы всё правильно настроили. На этом заканивается 3 этап.

4) Это последний этап нашого туториала. Откройте ваш Craftbukkit с помощью архиватора. Зайдите в папку net/minecraft/server. Вытащите файл ThreadLoginVerifier.class. Откройте его, и измените http://session.minecraft.net/game/checkserver.jsp?user= на вашу сылку к файлу checkserver.php | Внимание! В конец ссылки обязательно припишите ?user= Засовываем обратно. В настройках сервера ставим online mod=true и пробуем зайти.
Всё! На этом основная часть туториала заканчивается!

5) Теперь поговорим о файлах обновления. Скачиваем архив с файлами обновления. Распаковываем. Это уже в принципе готовый комплект файлов обновления, вам остаётся лишь добавить сюда свой minecraft.jar и client.zip. Теперь подробнее поговорим о нём. В этом архиве содержаться дополнительные файлы и папки. Например texturpacks, servers.dat settings.txt. P.S. client.zip обязательно должен присутствовать в папке с обновлениями, даже если он пустой. Сделали всё необходимое? Молодцы! Заливайте эти файлы в папку откуда должны качаться обновления.
5.1) Теперь поговорим о том, как изменить версию игры, чтобы лаунчер предупредил вас об этом и запросил разрешение на закачку новой версии игры. Для этого нужно зайти в phpMyAdmin, перейти в таблицу с версиями игры и лаунчера и изменить значение в строке latest-game-build.
Как изменить версию лаунчера. Для этого опять же зайдите в phpMyAdmin, выберите таблицу с версиями лаунчера и игры и измените значение в строке launcher-version. Изменили. Теперь откройте исходники лаунчера, откройте файл LauncherFrame.java и измените значение у
VERSION = новая_версия; | Находится в районе 18-20 строк.
(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + новая версия; | Находится в районе 100-105 строк.
Теперь откройте LoginForm.java и в районе 354-360 строк замените ссылку на путь к скачке лаунчера.
Всё, мы изменили версию лаунчера. При заходе со старого нам будет писаться что текущий лаунчер устарел, и попросит вас скачать новый.


Ответы на часто задаваемые вопросы:
В: Скрипты авторизации работают нормально, но при входе через клиент пишет "Failed To Verify Username!".
О: Вы не указали или указали неверную ссылку к скрипту joiserver.php с файле NetClientHandler.java.

В: Не могу зайти на сервер. Пишет "Bad Login".
О: Внимательно проверьте connect.php. Возможно вы указали неверную таблицу с пользователями, или неверные названия колонок сессии игрока и сессии сервера.

В: В файле регистрации вместо букв отображаются кракозябры.
О: Перекодируете его в ASCII.

В: Лаунчер пишет "Невозможно подключиться к базе данных"
О: Проверьте, импортировали ли вы таблицу data в вашу базу данных и правильное ли название колонок сессии игрока и сервера вы указали.

В: Лаунчер пишет "Неверный логин или пароль"
О: Проверьте, правильную ли ссылку вы указали к файлу auth.php.
Исходники лаунчеров
Империя - Язык: Java
Asn007-Launcher - Язык: Java
Лаунчер AnjoCaido - Язык: Java
Slenky Launcher - Язык: Java
[TXDL SE] - Язык: Java
Maximusorg Launcher - Java
ThisCraft - Язык: Visual Basic .NET
Open Source Visual basic Launcher - Язык: Visual Basic .NET
vLauncher - Язык: C++

-----------------------------------------------------------
Monocraft [OpenSource, Framework, Launcher]
Примеры настройки connect.php
DLE
<?php
if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!');
$crypt = 'hash_dle';
$db_host= 'localhost'; // Ip-адрес базы данных
$db_port= '3306'; // Порт базы данных
$db_user= 'root'; // Пользователь базы данных
$db_pass= 'root'; // Пароль базы данных
$db_database= 'DATABASE';
$db_table = 'dle_users';
$db_columnUser = 'name';
$db_columnPass = 'password';
$db_columnSesId = 'sesId';
$db_columnServer = 'serverId';
$db_GameDatatable = 'data';
$db_Propertycolumn = 'property';
$db_Valuecolumn = 'value';
$link = @mysql_connect($db_host.':'.$db_port,$db_user,$db_pass) or die('Невозможно установить соединение с базой данных!');
mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");
?>
WordPress
<?php
if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!');
$crypt = 'hash_wordpress';
$db_host= 'localhost'; // Ip-адрес базы данных
$db_port= '3306'; // Порт базы данных
$db_user= 'root'; // Пользователь базы данных
$db_pass= 'root'; // Пароль базы данных
$db_database= 'DATABASE';
$db_table = 'wp_users';
$db_columnUser = 'user_login';
$db_columnPass = 'user_pass';
$db_columnSesId = 'sesId';
$db_columnServer = 'serverId';
$db_GameDatatable = 'data';
$db_Propertycolumn = 'property';
$db_Valuecolumn = 'value';
$link = @mysql_connect($db_host.':'.$db_port,$db_user,$db_pass) or die('Невозможно установить соединение с базой данных!');
mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");
?>
Xenforo
<?php
if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!');
$crypt = 'hash_xenforo';
$db_host= 'localhost'; // Ip-адрес базы данных
$db_port= '3306'; // Порт базы данных
$db_user= 'root'; // Пользователь базы данных
$db_pass= 'root'; // Пароль базы данных
$db_database= 'DATABASE';
$db_table = 'xf_user';
$db_columnUser = 'username';
$db_columnPass = 'data';
$db_tableOther = 'xf_user_authenticate';
$db_columnSesId = 'sesId';
$db_columnServer = 'serverId';
$db_GameDatatable = 'data';
$db_Propertycolumn = 'property';
$db_Valuecolumn = 'value';
$link = @mysql_connect($db_host.':'.$db_port,$db_user,$db_pass) or die('Невозможно установить соединение с базой данных!');
mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");
?>
Система скинов
Вообщем вот что должно получиться.
Скачиваем, распаковываем архив, заливаем файлы на свой сайт и настраиваем bd_con.php под себя. Далее импортируем файлы из папки MySQLImport в вашу БД. Чтобы назначить себя администратором, вам требуется зарегистрироваться, зайти в таблицу с пользователями и изменить в колонке lvl цифру 1 на 15.
П.С. Здесь встроена функция новостей для лаунчера. Сам скрипт вывода находится в папке mcraftServer под названием news.php.
Автор NC22
Внутриигровой магазин
Ссылка. Инструкция внутри.
Автор mops1k
Если появились кроказябры
NUe9YGjeZg4.jpg
Не открывается aup.class
 
в твоей подписи написано про засранность форума, потому что такие как ты его засирают. Не вижу смысла цитировать все сообщение.
Нет как раз я не туплю, я говорю то что увидел! И то что не получается + засраны не из-за меня!
 
@Agresor98,теперь нажми на иконку папки в верхнем левом углу и выбери свои файлы которые нада открыть точней файл
 
Это пишет при попытке открыть файл
 
У кого откроется файл aup.class сообщите
 

Вложения

Назад
Верх