Система авторизации клиента позволяет зайти на сервер только игрокам использующим ваш лаунчер и клиент. Соответственно отпадает надобность в плагинах авторизации.
Для использования этой системы нужно скачать
исходники лаунчера(смотрите прикрепленные файлы),
написанный мною скрипт(смотрите прикрепленные файлы), а также
mcp44 для редактирования клиента и официального сервера или
In Class Translator(смотрите прикрепленные файлы) для редактирования bukkit сервера.
Заливаем скрипты на свой сайт, все в одну папку и настраиваем
connect.php под свою базу данных. Если у вас уже есть таблица с аккаунтами, то нужно добавить в нее колонки
server и
session. Если нет, то импортируйте файл
accounts.sql в свою MySQL базу. Также обязательно нужно импортировать файл
data.sql
Описание полей в таблице
data:
launcher-version : версия лаунчера(если не знаете зачем оно, не трогайте)
last-game-build : версия клиента(любое значение, указывать без точек), это нужно изменять когда вы заливаете новую версию клиента
Теперь открываем исходники лаунчера в
eclipse или
NetBeans. В файле
GameUpdater.java заменяем
http://s3.amazonaws.com/MinecraftDownload/ на ссылку откуда будет качаться клиент, в файле
LauncherFrame.java заменяем
https://login.minecraft.net/ на ссылку к файлу
auth.php , в файле
LoginForm.java заменяем
http://www.minecraft.net/register.jsp на ссылку к своей регистрации и
http://www.minecraft.net/download.jsp на ссылку загрузок на своем сайте(не обязательно) и компилируем(как это сделать:
ссылка).
Теперь откройте папку куда распаковали
mcp44 и закиньте клиентскую папку
bin и чистый
minecraft_server.jar(если у вас официальный сервер) в папку
jars. Декомпилируйте. Откройте
src\minecraft\net\minecraft\src\NetClientHandler.java в любом текстовом редакторе и замените
http://session.minecraft.net/game/joinserver.jsp?user= на ссылку к файлу joinserver.php и обязательно оставьте ?user= в конце. Потом откройте src\minecraft_server\net\minecraft\src\ThreadLoginVerifier.java в любом текстовом редакторе и замените
http://session.minecraft.net/game/checkserver.jsp?user= на ссылку к файлу
checkserver.php и обязательно оставьте ?user= в конце. Рекомпилируйте и запустите файл reobfuscate.bat. Теперь закинте файл в папке reobf\minecraft в minecraft.jar и файл в папке reobf\minecraft_server в minecraft_serer.jar. Все, запускайте сервер c параметром online-mode=true и пробуйте.
Если используете bukkit сервер, то извлеките из craftbukkit-0.0.1-SNAPSHOT.jar файл net\minecraft\server\ThreadLoginVerifier.class, откройте его в In Class Translator и замените
http://session.minecraft.net/game/checkserver.jsp?user= на ссылку к файлу
checkserver.php и обязательно оставьте ?user= в конце. Закинте файл ThreadLoginVerifier.class обратно в craftbukkit-0.0.1-SNAPSHOT.jar. Все, запускайте сервер c параметром online-mode=true и пробуйте.
Скрипт поддерживает md5 хеш и хеш плагина xauth. Т.е. если у вас стоял плагин авторизации, вы без труда можете перейти на эту систему.
скрипты для проверки
простая регистрация с мд5 хэшем
Файлы, которые нужно редактировать In Class Translator'ом в версии 1.0.0
в клиенте:
Код:
abp.class - путь к joinserver.php
di.class - путь к папке со скинами
vi.class - путь к папке с плащами
zb.class - путь к папке со скинами
vanilla server:
Код:
n.class - путь к checkserver.php
bukkit: