Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Утилита [Forge, Skins, Cloaks, Joinserver] Создание клиента для личного сервера

Тема в разделе "Модификации клиента", создана пользователем caver, 10 июл 2013.

  1. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    После того как накропал альфу версии авторизацинного сервера для 1.6.x возник вопрос с генерацией "патченного" клиента c переопределение URL для /joinserver и загрузки скинов/плащей с нужного мне сервера, а также интегрировать Forge. Пошел старой накатанной дорогой. Т.е. Взял MCP декомпилировал клиента, поменял пути NetClientHandler.java и AbstractClientPlayer.java собрал, залил в jar. В общем все как обычно. Вооружился новой системой установки Forge для 1.6.x и думал что получу тут же все из коробки и даже не чизнув. А вот фигушки. В новых форджах произошли серьезные изменения.
    1. Forge в виде пака install патчит все на лету
    2. Вывод из 1: проверяется целостность файлов в клиенте, если что не так ругаемся (в принципе меня удовлетворял такой вариант) однако п.3
    3. Forge стал патчить пресловутый NetClientHandler.java, соответственно Forge патчи не накладываются -> неизвестно какие последствия, проверять не хочется.
    Начал разбираться как и что. После недолгого курения форумов и документации я принял решение собирать собственно клиент с Forgeм из сорцов, с промежуточным подсовыванием своих патчей.
    В аттаче скриптик ( linux only !!! впрочем желающие могут попробовать под cygwin) c патчами для клиента.

    Способ употребления:
    1. Скачать и распаковать архив.
    2. Зайти в директорию forge.builder
    3. Отредактировать buildclient.sh на предмет версии клиента и форджа (актуальные версии форджа можно узнать на официальном сайте)
    4. Зайти в директорию forge.builder/patches и отредактировать AbstractClientPlayer.java.skinscloack.patch NetClientHandler.java.joinserver.patch на предмет URL вашего сайта, заменяя "YOUR.SITE.HERE" на нужное
    5. Запустить buildclient.sh и ждать пока сборка закончится (это может занять МНОГО времени, в связи с тем что выкачиваются библиотеки и assets)
    6. Использовать 1.6.2-forge.jar по назначению :D

    PS: Третьим патчем FMLSanityChecker.java.dirtyhack.patch отключается проверка на наличие сертификата в META-INF, никаких параметров fml.ignoreInvalidMinecraftCertificates передавать не надо.
    PPS: Из .json файла надо обязательно удалить ноду с библиотекой net.minecraftforge:minecraftforge:9.10.0.xxx
     

    Вложения:

    • fbuilder.zip
      Размер файла:
      3 КБ
      Просмотров:
      100
    blackadder, DrublFuck и syllik нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    Чтобы не парится с редактированием выкладывают .json файлик
     

    Вложения:

  4. Dantara

    Dantara Активный участник Пользователь

    Баллы:
    63
    Супер! Мне нравится!!!
     
  5. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    К вопросу "О бездумном запихивание Optifine в клиент с форджем"

    ===
    fml/patches/minecraft/net/minecraft/client/renderer/RenderBlocks.java.patch
    fml/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch
    fml/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch
    fml/patches/minecraft/net/minecraft/server/integrated/IntegratedServerListenThread.java.patch
    patches/minecraft/net/minecraft/client/renderer/EntityRenderer.java.patch
    patches/minecraft/net/minecraft/client/renderer/OpenGlHelper.java.patch
    patches/minecraft/net/minecraft/client/renderer/RenderBlocks.java.patch
    patches/minecraft/net/minecraft/client/renderer/RenderGlobal.java.patch
    patches/minecraft/net/minecraft/client/renderer/Tessellator.java.patch
    patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch
    patches/minecraft/net/minecraft/client/renderer/texture/TextureAtlasSprite.java.patch
    patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch
    patches/minecraft/net/minecraft/client/renderer/WorldRenderer.java.patch
    patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch
    patches/minecraft/net/minecraft/server/management/PlayerInstance.java.patch
    ===
    Это список файлов из форджа которые пересекаются с optifine
    Т.е. если БЕЗДУМНО запихнуть оптик в клиент с форджем получим полный винегрет.
     
  6. Trespasser

    Trespasser Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    trespasser
    Че тогда разраб оптика пишет именно о бездумном впихивании оптика в клиент с форджем. Или он не видит этих накладок?
     
    slavik123123123 нравится это.
  7. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    Ну как бы ты читал что они рекомендуют ?
    Вкратце: отрубаем нафиг все проверки, а дальше трава не расти.
    Раньше (в 1.5.2) фордж с оптиком не пересекался, сейчас попа :([DOUBLEPOST=1373616304,1373616201][/DOUBLEPOST]В итоге будет корректно (как задуманно разработчиками) работать либо фордж либо оптик, либо что более вероятно, полезут глюки в обоих.[DOUBLEPOST=1373616413][/DOUBLEPOST]Т.е. по уму разработчикам оптика надо брать в зуб сорцы форжа, брать свои оптиковские патчи и дружить все это добро. Я вчера mcp/forge побаловался, оценил объем патчей - порядка 200 килобайт и куча режектов.
     
  8. 0mi4

    0mi4 Активный участник

    Баллы:
    68
    Можешь в батник переделать плж? :)
     
  9. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    @Omi4 поставь уже cygwin и не парь мозги
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Не понимаю зачем столько шума из ничего. Оптифайн спокойно дружит с Forge.
    Запускаю таким батником.
    Код:
    java -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Xmx1G -Djava.library.path=versions\1.6.2\natives -cp libraries\net\minecraftforge\minecraftforge\9.10.0.776\minecraftforge-9.10.0.776.jar;libraries\net\minecraft\launchwrapper\1.3\launchwrapper-1.3.jar;libraries\org\scala-lang\scala-library\2.10.2\scala-library-2.10.2.jar;libraries\org\scala-lang\scala-compiler\2.10.2\scala-compiler-2.10.2.jar;libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar;libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;libraries\com\google\guava\guava\14.0\guava-14.0.jar;libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;versions\1.6.2\OptiFine.zip;versions\1.6.2\1.6.2.jar net.minecraft.launchwrapper.Launch --username zenit --session 123456789 --version Forge9.10.0.776 --gameDir minecraft --assetsDir assets --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
    Никаких ошибок в консоли не обнаружил. Forge теперь почти не затрагивает код клиента, только 3 класса aqw$1.class wi$1.class yc$1.class
     
  11. Trespasser

    Trespasser Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    trespasser
    Зачем в запуске
    versions\1.6.2\OptiFine.zip ? Работает прекрасно и без этого.
     
  12. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Затем чтоб каждый рас не патчить сам клиент новой версией optifine. Тупо заменил архив и все.
     
  13. Trespasser

    Trespasser Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    trespasser
    Дык, зачем в параметрах явы zip? Или я чего-то не знаю.
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Как ты отстал от жизни о_О , не скоро, а уже вовсю :D. Там важен порядок загрузки.
     
  15. denwd

    denwd Старожил Пользователь

    Баллы:
    103
    Под 164 уже не работает а так удобно.
     
  16. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Не работает что?
     
    slavik123123123 нравится это.
  17. denwd

    denwd Старожил Пользователь

    Баллы:
    103
    Cannot detect of version : cygwin. Please report to your closest sysadmin
    Traceback (most recent call last):
    File "install.py", line 76, in <module>
    decompile=options.decompile, gen_conf=False)
    File "install.py", line 17, in fml_main
    disable_assets=disable_assets)
    File "/home/G/forge.builder/9.11.1.933/forge/fml/fml.py", line 1027, in decompile_minecraft
    print 'Decompile Exception: %d ' % e.code
    TypeError: %d format: a number is required, not NoneType
    First run, backup a src dir to /home/G/forge.builder/9.11.1.933/forge/mcp/src.backup
    cp: не удалось выполнить stat для «/home/G/forge.builder/9.11.1.933/forge/mcp/src»: No such file or directory
    buildclient.sh: line 38: pushd: /home/G/forge.builder/9.11.1.933/forge/mcp/src: No such file or directory
    can't find file to patch at input line 3
    Perhaps you used the wrong -p or --strip option?
    The text leading up to this was:
    --------------------------
    |--- ../src_base/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java
    |+++ ../src_work/minecraft/net/minecraft/client/entity/AbstractClientPlayer.java
    --------------------------
    File to patch:
     
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    ЛОЛКА :D.
     
  19. denwd

    denwd Старожил Пользователь

    Баллы:
    103
    ?вы о чем(что такое лолка?имя что ли ваше?)
     
  20. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Вот тебе класс для 1.6.4 http://yadi.sk/d/5NBsJxfuB4i5D Комбилится без проблем.
    От чего у тебя такие ошибки мне не понять.
     
  21. denwd

    denwd Старожил Пользователь

    Баллы:
    103
    $ ./buildclient.sh
    Found a backup src dir, restoring
    /forge.builder/9.11.1.933/forge/mcp/src /forge.builder
    patching file minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
    patch: **** unexpected end of file in patch

    /forge.builder
    /forge.builder/9.11.1.933/forge/mcp /forge.builder
    Cannot detect of version : cygwin. Please report to your closest sysadmin
    Cannot detect of version : cygwin. Please report to your closest sysadmin
    /forge.builder
    unzip: cannot find or open /forge.builder/9.11.1.933/forge/mcp/temp/client_reobf.jar, /forge.builder/9.11.1.933/forge/mcp/temp/client_reobf.jar.zip or /forge.builder/9.11.1.933/forge/mcp/temp/client_reobf.jar.ZIP.
    cp: пропускается каталог «/forge.builder/9.11.1.933/forge/mcp/src/minecraft/assets»
    cp: пропускается каталог «/forge.builder/9.11.1.933/forge/mcp/src/minecraft/cpw»
    cp: пропускается каталог «/forge.builder/9.11.1.933/forge/mcp/src/minecraft/ibxm»
    cp: пропускается каталог «/forge.builder/9.11.1.933/forge/mcp/src/minecraft/net»
    cp: пропускается каталог «/forge.builder/9.11.1.933/forge/mcp/src/minecraft/paulscode»
    /forge.builder/temp /forge.builder
    ./buildclient.sh: line 62: jar: команда не найдена


    вот что осталось)
     
    Последнее редактирование: 17 окт 2013

Поделиться этой страницей