- Баллы
- 88
UPD: 20130905 Обновил ссылки на лаунчер.
Коротенький туториал по сборке своего собственного клиента и сервера 1.6.2 c "курсистками и шахматами"
0. Необходимые инструменты и знания
2. Launcher
3. Client
4. Server mcpc+
5. webMCR
Коротенький туториал по сборке своего собственного клиента и сервера 1.6.2 c "курсистками и шахматами"
0. Необходимые инструменты и знания
- основные понятия в linux, умение пользоваться консолью
- netbeans 7
- linux сервер с установленным wine
- git
Бустрап (не путайте с Twitter bootsrap) является утилитой для скачивания и обновления лаунчера.
Клонируем https://github.com/caver115/minebootstrap16x лучше всего это делать прямо из NetBeans "Team->Git->Clone", открываем проект. Добавляем внешнюю библиотеку в проект
"Libraries ->Add JAR/Folder" которая находится в $PROJECT_HOME$/minebootstrap16x/lib/mineboot.cut.jar
Редактируем Downloader.java правим
URL e = new URL("http://webmcr.caver.org/MineCraft/MinecraftDownload/launcher/launcher.pack.lzma");
На нужный вам хост.
Редактируем Util.java
ublic static final String APPLICATION_NAME = "mcuw16x";
имя рабочей директории вашего проекта (точек добавлять НЕ НАДО, они добавятся автоматически)
Компилируем проект.
Распаковываем $PROJECT_HOME$/minebootstrap16x/lib/mineboot.cut.jar в пустую директорию, туда же копируем содержимое папки $PROJECT_HOME$/minebootstrap16x/build/classes (как вариант кинуть все сразу в
mineboot.cut.jar)
Собираем .jar-ку из это директории
Переименовываем в minecraft.jar, это уже наш готовый Bootstrap который можно выложить клиентам для скачивания.
Клонируем https://github.com/caver115/minebootstrap16x лучше всего это делать прямо из NetBeans "Team->Git->Clone", открываем проект. Добавляем внешнюю библиотеку в проект
"Libraries ->Add JAR/Folder" которая находится в $PROJECT_HOME$/minebootstrap16x/lib/mineboot.cut.jar
Редактируем Downloader.java правим
URL e = new URL("http://webmcr.caver.org/MineCraft/MinecraftDownload/launcher/launcher.pack.lzma");
На нужный вам хост.
Редактируем Util.java
ublic static final String APPLICATION_NAME = "mcuw16x";
имя рабочей директории вашего проекта (точек добавлять НЕ НАДО, они добавятся автоматически)
Компилируем проект.
Распаковываем $PROJECT_HOME$/minebootstrap16x/lib/mineboot.cut.jar в пустую директорию, туда же копируем содержимое папки $PROJECT_HOME$/minebootstrap16x/build/classes (как вариант кинуть все сразу в
mineboot.cut.jar)
Собираем .jar-ку из это директории
Переименовываем в minecraft.jar, это уже наш готовый Bootstrap который можно выложить клиентам для скачивания.
2. Launcher
Клонируем https://github.com/caver115/minelauncher16x-1.2.2 лучше всего это делать прямо из NetBeans "Team->Git->Clone", открываем проект. Добавляем внешнюю библиотеку в проект
"Libraries ->Add JAR/Folder" которая находится в $PROJECT_HOME$/minelauncher16x-1.2.2/lib/l121.zip
Редактируем LauncherConstants.java
public static final String SERVER_URL = "http://webmcr.caver.org/";
На нужный вам хост.
Компилируем проект.
Распаковываем $PROJECT_HOME$/minelauncher16x-1.2.2/lib/l121.zip в пустую директорию, туда же копируем содержимое папки $PROJECT_HOME$/minelauncher16x-1.2.2/build/classes (как вариант кинуть все сразу в
l121.zip)
сносим файлик Starter.java (нужен исключительно для отладки без bootstrap)
Собираем .jar-ку из это директории
Переименовываем в launcher.jar, это уже наш готовый launcher.
Далее немного магии, чтобы бустрап скачивал этот лаунчер, нам нужно провести несколько манипуляций:
"Libraries ->Add JAR/Folder" которая находится в $PROJECT_HOME$/minelauncher16x-1.2.2/lib/l121.zip
Редактируем LauncherConstants.java
public static final String SERVER_URL = "http://webmcr.caver.org/";
На нужный вам хост.
Компилируем проект.
Распаковываем $PROJECT_HOME$/minelauncher16x-1.2.2/lib/l121.zip в пустую директорию, туда же копируем содержимое папки $PROJECT_HOME$/minelauncher16x-1.2.2/build/classes (как вариант кинуть все сразу в
l121.zip)
сносим файлик Starter.java (нужен исключительно для отладки без bootstrap)
Собираем .jar-ку из это директории
Переименовываем в launcher.jar, это уже наш готовый launcher.
Далее немного магии, чтобы бустрап скачивал этот лаунчер, нам нужно провести несколько манипуляций:
- pack200 -g launcher.pack launcher.jar
- lzma launcher.pack
3. Client
Клиента мы будем собирать с форжем, чтобы 3 раза не бегать за одной фигней 
В аттаче лежит файлик fbilder.zip
Распаковываем на Linux машине с wine
Заходим в папку patches и редактируем 2 файла
AbstractClientPlayer.java.skinscloack.patch
NetClientHandler.java.joinserver.patch
В этих патчах изменяем хост ....http://webmcr.caver.org/game/... на свой собственный.
Запускаем buildclient.sh и ждем компиляции клиента.
В итоге получается файл 1.6.2-forge-9.10.0.803.jar - это именно игровой клиент с интегрированный Forge и русским font.txt

В аттаче лежит файлик fbilder.zip
Распаковываем на Linux машине с wine
Заходим в папку patches и редактируем 2 файла
AbstractClientPlayer.java.skinscloack.patch
NetClientHandler.java.joinserver.patch
В этих патчах изменяем хост ....http://webmcr.caver.org/game/... на свой собственный.
Запускаем buildclient.sh и ждем компиляции клиента.
В итоге получается файл 1.6.2-forge-9.10.0.803.jar - это именно игровой клиент с интегрированный Forge и русским font.txt
4. Server mcpc+
Клонируем https://github.com/MinecraftPortCentral/MCPC-Plus/
Читаем Readme.md и делаем все как написано до пункта 4 включительно
Далее, кидаем разархивированный патч из аттача ThreadLoginVerifier.java.1.patch в папку MCPC-Plus/patches/minecraft/net/minecraft/network/
Редактируем его на предмет хоста
===
new URL("http://webmcr.caver.org/game/checkserver.jsp?user=
===
Переходим к пункту 5 согласно документации и далее по списку.
в конечном итоге получаем в папке MCPC-Plus/eclipse/Forge/target/ файл
mcpc-plus-1.6.2-R0.1-forge789-B0.jar - это ГОТОВЫЙ сервер mcpc+ c интегрированным Forge.
Читаем Readme.md и делаем все как написано до пункта 4 включительно
Далее, кидаем разархивированный патч из аттача ThreadLoginVerifier.java.1.patch в папку MCPC-Plus/patches/minecraft/net/minecraft/network/
Редактируем его на предмет хоста
===
new URL("http://webmcr.caver.org/game/checkserver.jsp?user=
===
Переходим к пункту 5 согласно документации и далее по списку.
в конечном итоге получаем в папке MCPC-Plus/eclipse/Forge/target/ файл
mcpc-plus-1.6.2-R0.1-forge789-B0.jar - это ГОТОВЫЙ сервер mcpc+ c интегрированным Forge.
5. webMCR
Устанавливаем webMCR из репозитория https://github.com/NC22/webMCR
После первоначальной настройки webMCR нам потребуется инициализоровать наш собственный репозитарий версий.
структура MinecraftDownload
MinecraftDownload
|\launcher <- сюда следует положить наш лаунчер из п.2 данной хаутушки
|\lib <- здесь лежат библиотеки которые вытягиваются НЕ ИЗ s3.amazonaws.com
|\versions <- основной репозитарий версий minecraft
versions/versions.json список доступных Online версий
===
{
"versions": [
{
"id": "1.6.2-mcuw", <- редактируем по вкусу, для понимания назовем это $VERSION$
"time": "2013-07-09T11:53:44+02:00",
"releaseTime": "2013-07-05T15:09:02+02:00",
"type": "release"
}
],
"latest": {
"release": "1.6.2-mcuw" <- должно совпадать с верхней
}
}
====
versions/$VERSION$/$VERSION$.json нас интересуют несколько строки
===
"id": "1.6.2-mcuw", <- заменяем на $VERSION$
....
и все последующие строки с хостами http://mcuw.caver.org/ меняем на свой.
===
Это сложнее объяснить чем самому дойти, поэтому в аттаче живая запакованная папка MinecraftDownload
После первоначальной настройки webMCR нам потребуется инициализоровать наш собственный репозитарий версий.
структура MinecraftDownload
MinecraftDownload
|\launcher <- сюда следует положить наш лаунчер из п.2 данной хаутушки
|\lib <- здесь лежат библиотеки которые вытягиваются НЕ ИЗ s3.amazonaws.com
|\versions <- основной репозитарий версий minecraft
versions/versions.json список доступных Online версий
===
{
"versions": [
{
"id": "1.6.2-mcuw", <- редактируем по вкусу, для понимания назовем это $VERSION$
"time": "2013-07-09T11:53:44+02:00",
"releaseTime": "2013-07-05T15:09:02+02:00",
"type": "release"
}
],
"latest": {
"release": "1.6.2-mcuw" <- должно совпадать с верхней
}
}
====
versions/$VERSION$/$VERSION$.json нас интересуют несколько строки
===
"id": "1.6.2-mcuw", <- заменяем на $VERSION$
....
и все последующие строки с хостами http://mcuw.caver.org/ меняем на свой.
===
Это сложнее объяснить чем самому дойти, поэтому в аттаче живая запакованная папка MinecraftDownload