вторник, 11 марта 2014 г.

Запуск Minecraft 1.7.2 с модами в линукс

Если вас не устраивает официальный лаунчер Minecraft, что может быть по нескольким причинам, например, из-за необходимости вводить пароль, или же игра падает при попытке запустить через лаунчер, можно воспользоваться простым shell-скриптом, который автоматически запустит игру, подгрузит все необходимые библиотеки, нужно ввести только никнейм или же настроить вообще без его ввода.

Запуск без модов

В ранних версиях (до 1.6.2, если я не ошибаюсь), можно было просто запустить jar-файл, который находился в папке bin внутри каталога .minecraft, указав папку с библиотеками под конкретную архитектуру (native). В более новых версиях лаунчер загружает библиотеки, находящиеся в папке libraries. Для их загрузки в скрипте нужно указать папки с классами при помощи ключа -cp, в java папкой считается также zip-архив, которым и является jar-файл. Поэтому нужно перечислить в параметре ключа -cp все загружаемые jar-файлы, можно сделать это при помощи вызова find. Также нужно задать класс, который будет являться точкой входа при запуске (параметр командной строки без ключа). Полностью скрипт запуска у меня выглядит так:

#!/bin/sh
echo -n 'nick [player]: ' && read username
if [ -z $username ]
then
    username="player"
fi
ver=1.7.2
CLASSPATH=`find libraries -name \*.jar |tr '\n' ':'`
CLASSPATH="${CLASSPATH}versions/$ver/$ver.jar"
java -Xmx1G \
  -cp $CLASSPATH \
  -Djava.library.path=versions/$ver/$ver-natives \
  net.minecraft.client.main.Main \
  --username $username \
  --version $ver \
  --accessToken 0

Сначала он просит ввести ник, если ничего не введено, то по умолчанию используется ник "player". Далее указывается версия для поиска, после производится поиск всех подгружаемых jar-файлов при помощи find и замены переносов строк на двоеточия, также к списку прибавляется сам jar-файл игры. Последней командой запускается java-машина со сделующими агрументами:

  • -Xmx1G - выделять не более 1 гигабайта оперативный памяти процессу;
  • -cp - как уже говорилось, список jar-файлов, разделённых через двоеточие;
  • -Djava.library.path - папка с нативными библиотеками (для конкретной аппаратной реализации);
  • net.minecraft.client.main.Main - класс для запуска игры (точка входа);
  • --username, --version - думаю, и так понятно;
  • --accessToken - для запуска также необходим и этот параметр.

Запуск с модами, не требующими Forge

Для запуска модов, не требующих Forge, достаточно закинуть файл мода в папку libraries и поменять расширение на jar, тогда не требуется заменять классы в архиве с игрой, но придётся удалить папку META-INF. Кстати, также можно было и делать в старых версиях, просто нужно в списке папок с классами первыми указывать моды.

Запуск с модами, требующими Forge

Сначала необходимо установить Forge, для этого должен быть хоть один запуск произведён через официальный лаунчер (или magic-лаунчер), после чего нужно запустить инсталляционную версию Forge, которая найдёт папку, создаст профиль с форж и установит все необходимые библиотеки.

По сути в нашем скрипте практически ничего менять не нужно, нужно изменить только точку входа: net.minecraft.launchwrapper.Launch, а также добавить ещё один параметр командной строки. В итоге получаем следующий скрипт:

#!/bin/sh
echo -n 'nick [player]: ' && read username
if [ -z $username ]
then
    username="player"
fi
ver=1.7.2-Forge10.12.0.1024
CLASSPATH=`find libraries -name \*.jar |tr '\n' ':'`
CLASSPATH="${CLASSPATH}versions/$ver/$ver.jar"
java -Xmx1G \
  -cp $CLASSPATH \
  -Djava.library.path=versions/$ver/$ver-natives \
  net.minecraft.launchwrapper.Launch \
  --username $username \
  --version $ver \
  --accessToken 0 \
  --tweakClass cpw.mods.fml.common.launcher.FMLTweaker

Где 1.7.2-Forge10.12.0.1024 - папка, которая была создана в папке versions после установки Forge (зависит от версии).

Если после установки Forge игра не запускается, нужно попробовать запустить официальным лаунчером созданный профиль Forge, даже, если не запустится, лаунчер скачает недостающие библиотеки.

Важно!

После запуска стандартного лаунчера, он снёс мне половину папки assets, поэтому при запуске у меня был доступен только английский язык, и не было звуков. В принципе игра автоматически должна скачать всё это, но я не стал ждать и восстановил всю папку, т.к. использую систему управления версиями для экспериментами над сборками.

Комментариев нет:

Отправить комментарий