Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 01.06.2020 в Записи блога

  1. 2 балла
    Портирование мода с 1.14 на 1.7.10 версию оказалось настоящим эпическим сражением, продлившимся целый день. Сейчас я опишу, как мне удалось в нём победить. Половину дня я пытался понять, почему один мой Gradle (для Minecraft 1.7.10) не может определить версию Java по строке «12.0.1», а другой (для 1.14) заявляет, что надо указать версию плагина «forge». Ключом к решению оказалось использование OpenJDK 10 и обновление Gradle до 4.1 версии. На этом проблемы не закончились. Gradle стал скачивать нужные файлы, но не смог скачать их все. Некоторые файлы (такие, как twitch-5.16.jar) отсутствуют на двух сайтах-источниках (minecraftforge.net и ещё один), а с официального сайта Minecraft Java скачать файлы не может, так как там есть проблема с сертификатом. Добавление корневого сертификата с minecraft.net в доверенные (тут как раз пригодилось то, что я скачал дополнительную Java) ничего не дало. Я скачал все недостающие файлы через браузер, и тут у меня возникла проблема: а в какую папку их надо положить? Не считать ведь хеш-суммы каждого файла и не раскидывать по отдельным папкам руками? Решение оказалось очень простым: если Gradle стучится и проверяет, нет ли файла на files.minecraftforge.net, то этот запрос можно перехватить и направить на локальный сервер, где файл уже есть. Как это можно сделать? Правильно, с помощью файла hosts. Тогда я прописал перенаправление с files.minecraftforge.net на 127.0.0.1, поднял локальный сервер и положил туда все нужные файлы. Запустил Gradle - ура, все файлы скачались! Сервер можно выключать. Дальше осталось совсем немного: посмотреть в исходники каких-нибудь модов под 1.7.10 и разобраться, как они работают. Поменять в своём коде пришлось (почти) только основной класс. Также изменился файл локализации. В каком виде мод работает (OCTechnics.java): Файл ./common/blocks/BasicFactoryBlock.java: assets/octechnics/lang/en_us.lang: tile.octechnics:basic_factory_block.name=Factory Base Текстуры немного переехали: из папки block попали в папку blocks. Наконец, я запустил мод и он заработал: в первой вкладке творческого инвентаря появился блок с моей текстурой, правильно названный и нормально ставящийся в мир. Этого я и хотел! Дальнейшие приключения (расширение ассортимента и добавление к блокам блок-сущностей) будут в следующей статье.
  2. 1 балл
    Благодаря посту «Путь от нуля до разработчика OpenComputers» я вспомнил, что сам тоже хотел сделать моды для Minecraft. Два раза я пытался установить всё необходимое, два раза Gradle ругался на отсутствие JDK. Почему бы не попробовать ещё раз? К тому же, нашлась замечательная ссылка на документацию Forge: https://mcforge.readthedocs.io/en/latest/gettingstarted/ (спасибо @Totoro). Итак, я раскопал на диске Gradle от 1.14 версии Minecraft и выполнил новую для себя команду gradlew genEclipseRuns . Жду… нет, ничего не завершается с ошибкой, Minecraft спокойно декомпилируется, и наконец появляется надпись «BUILD SUCCESSFUL». До такого этапа я раньше не доходил, поэтому решил выбрать, какую из своих идей реализовать. Мне понравилась идея заводика, интегрированного с OpenComputers. Заводик импортирует в себя руду, перерабатывает (с помощью верстаков, печек, дробилок) и экспортирует готовый продукт. При этом каждую команду даёт компьютер из OpenComputers. Как и положено по документации, я написал в файл TestMod.java: В файл mcmod.info (прямо внутри папки src/main/resources): Пишу gradlew build. Мод собирается. Закидываю его к другим модам, запускаю Minecraft 1.14. Запуск происходит очень спокойно, никакого мода по имени OCTechnics в списке не появилось. Что делать? Правильно, искать другие моды под ту же версию (не важно, исходники или скомпилированные моды, главное, чтобы работали). Смотреть, где там лежат файлы и делать такие же файлы у себя. Нашёлся некий файл pack.mcmeta. Пишем туда (спасибо IronChests): Кроме того, нужен ещё файл mods.toml: На этом этапе я безуспешно пытался понять, какие ссылки (для проверки обновлений мода) сюда надо подключить. В конце концов просто удалил их все. Тогда в логах пропала ошибка MalformedURL, и мод стал опознаваться. Итоговая схема расположения файлов: src - main - java - org - octechnics - octechnics - TestMod.java - resources - assets - octechnics - lang - en_us.json (пустой) - META-INF - mods.toml - mcmod.info - pack.mcmeta В следующей записи - создание базового блока для завода.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...