Туториал 1.6.2 сборка от bootstrap до mcpc+ с подключением к webMCR

  • Автор темы Автор темы caver
  • Дата начала Дата начала

caver

Активный участник
Пользователь
Баллы
88
UPD: 20130905 Обновил ссылки на лаунчер.

Коротенький туториал по сборке своего собственного клиента и сервера 1.6.2 c "курсистками и шахматами"

0. Необходимые инструменты и знания
  • основные понятия в linux, умение пользоваться консолью
  • netbeans 7
  • linux сервер с установленным wine
  • git
1. Bootsrap

Бустрап (не путайте с 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 который можно выложить клиентам для скачивания.

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.

Далее немного магии, чтобы бустрап скачивал этот лаунчер, нам нужно провести несколько манипуляций:
  • pack200 -g launcher.pack launcher.jar
  • lzma launcher.pack
Итого имеем launcher.pack.lzma

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

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.

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
 

Вложения

@MySt1k, это пошаговая инструкция по установке сервера, клиента minecraft 1.6.x а также всей веб-обвязки
 
After downloading, the MD5 hash didn't match. Retrying
Downloading: http://ordinary-minecraft.ru/MineCraft/MinecraftDownload/launcher/launcher.pack.lzma (try 10/10)
что это?

он его нормально скачал, а md5 не правильный, откуда он его берет? с чем сверяет?

ладно, отрубил md5, теперь лаунчер, где он соединяется с auth.php?
даже указав ему auth16x.php или auth.php у меня ничего хорошего не вышло, и не понятно где указывается сервер и порт к которому подключаться
 
Мне не надо, т.к WebMCR не использую. А полезно! Лайк поставлю ;)
 
на каком линуксе тестировался buildclient.sh? что то у меня на дебиане и хубунте отказывается работать.


Код:
fbuilder# ./buildclient.sh
./buildclient.sh: 18: ./buildclient.sh: [[: not found
Performing a Forge setup, it may take a lot of time
./buildclient.sh: 40: ./buildclient.sh: pushd: not found
./buildclient.sh: 43: ./buildclient.sh: pushd: not found
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 48: ./buildclient.sh: popd: not found
./buildclient.sh: 50: ./buildclient.sh: pushd: not found
./buildclient.sh: 52: ./buildclient.sh: python2: not found
./buildclient.sh: 53: ./buildclient.sh: python2: not found
./buildclient.sh: 55: ./buildclient.sh: popd: not found
unzip:  cannot find or open /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup, /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup.zip or /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup.ZIP.
unzip:  cannot find or open /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar, /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar.zip or /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar.ZIP.
cp: не удалось выполнить stat для «/home/blackadder/fbuilder/9.10.0.804/forge/mcp/src/minecraft/*»: Нет такого файла или каталога
./buildclient.sh: 68: ./buildclient.sh: pushd: not found
 
на каком линуксе тестировался buildclient.sh? что то у меня на дебиане и хубунте отказывается работать.


Код:
fbuilder# ./buildclient.sh
./buildclient.sh: 18: ./buildclient.sh: [[: not found
Performing a Forge setup, it may take a lot of time
./buildclient.sh: 40: ./buildclient.sh: pushd: not found
./buildclient.sh: 43: ./buildclient.sh: pushd: not found
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 45: ./buildclient.sh: patch: not found
 
./buildclient.sh: 48: ./buildclient.sh: popd: not found
./buildclient.sh: 50: ./buildclient.sh: pushd: not found
./buildclient.sh: 52: ./buildclient.sh: python2: not found
./buildclient.sh: 53: ./buildclient.sh: python2: not found
./buildclient.sh: 55: ./buildclient.sh: popd: not found
unzip:  cannot find or open /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup, /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup.zip or /home/blackadder/fbuilder/9.10.0.804/forge/mcp/jars/versions/1.6.2/1.6.2.jar.backup.ZIP.
unzip:  cannot find or open /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar, /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar.zip or /home/blackadder/fbuilder/9.10.0.804/forge/mcp/temp/client_reobf.jar.ZIP.
cp: не удалось выполнить stat для «/home/blackadder/fbuilder/9.10.0.804/forge/mcp/src/minecraft/*»: Нет такого файла или каталога
./buildclient.sh: 68: ./buildclient.sh: pushd: not found

просто поставь все что ему не хватает для счастья
 
хм.. заменил /bin/sh на /bin/bash, установил patch, заменил phyton2 на phyton и вроде заработало...
подскажите каким образом к этому клиенту прикрутить litloader??
разобрался..
 
все бы хорошо, но не догоню как это провернуть:

pack200 -g launcher.pack launcher.jar
lzma launcher.pack
Итого имеем launcher.pack.lzma
 
в консоли писать.

как сделать minecraft.jar не требующий библиотек. чтоб был 1 файлом?
 
Думаю слить все библиотеки в 1 файл
 
Библиотеки в один файл можно упаковать таким образом (требуется установленный Ant, скачать его под Windows можно здесь):
1. Создаём отдельную пустую папку.
2. Копируем в неё все библиотеки из %APPDATA%\.minecraft\libraries (для нужной версии конечно).
Совет: Чтобы скопировать все библиотеки вбейте в папку libraries поиск по файлам *.jar
3.
Создаём в нашей папке, куда мы скопировали файл build.xml со следующим содержимым:
Код:
<project name="libpack" default="default" basedir=".">
   <target name="default"> 
     <zip destfile="libs.jar">
       <zipgroupfileset dir="." includes="*.jar"/>
     </zip>
   </target>
</project>
4. Запускаете командную строку в нашей папке и вводите команду ant.
Совет: В Windows Vista/7/8 можно открыть командную строку в необходимой папке при помощи сочетания клавиш Shift + правый клик по свободному месту в папке.
Если всё прошло успешно, то в папке появится файл libs.jar большого размера.
5. Открываем полученный файл libs.jar любым ZIP архиватором и удаляем оттуда папку META-INF.
6. Готово! Теперь вы можете редактировать ClassPath, оставив для запуска игры один единственный получивщийся ф
 
Назад
Верх