Зависимость одного мода от другого

Версия Minecraft
1.16.4
API
Forge
8
0
Здравствуйте, я тот ещё чайник в сфере моддинга, но делать что то хочется
Начал создавать аддон для мода назовем его "Rare Ice"
Уже создал структуру и есть пару предметов независимых от мода rare ice
И решил уже добавить зависимость от этого мода, начал гуглить про эти зависимости, но информация в интернете сильно обрывчата и непонятна для такого новичка как я.
Всё что я понял, что нужна папка libs и туда видимо нужно скидывать .jar aka моды.
Нужна команда dependencies = "required-after:ding" и compile fileTree(dir: 'lib', include: ['*.jar'])
Про компиляцию слышал и что нужно что то делать в файле build.grable. ещё что нужна библиотека в виде мода.

Но вся эта информация настолько не разжеванная что я не понимаю как ей пользоваться.
Могли бы вы помочь мне разобраться с темой про зависимостей модов?
Пожалуйста, не ругайтесь я могу сильно тупить так как мало чего знаю в сфере моддинга ведь я в нем второй день.
 
153
21
41
мало чего знаю в сфере моддинга ведь я в нем второй день
Мне кажется надо начинать с чего то другого.

Создаешь папку libs, а подключаешь все jar файлы из папки lib: "compile fileTree(dir: 'lib', include: ['*.jar'])".

Чтобы создать аддон тебе нужно api мода, у "Rare ice" его думаю нет. Остается только скачать исходники, которые есть на github, и добавлять что то в мод.
 
8
0
Ладно.
Создаешь папку libs, а подключаешь все jar файлы из папки lib:
Я так понимаю libs и lib это одно и тоже.
"compile fileTree(dir: 'lib', include: ['*.jar'])".
Куда конкретно нужно вписывать эту команду и нужно ли в ней что-то изменять? например тут
вместо * вставлять названия файла?
Остается только скачать исходники, которые есть на github, и добавлять что то в мод.
Окей я скачал исходник с github и что же мне нужно добавлять и куда в тот же libs?
 
153
21
41
Куда конкретно нужно вписывать эту команду и нужно ли в ней что-то изменять?
Прописывать в "dependencies".
compile fileTree(dir: 'libs', include: ['*.jar']), libs - папка где должны лежать библиотеки, *.jar - подключить все .jar файлы из папки libs. Это если есть API.

Если нет, скачиваешь исходники и запускаешь build.gradle, открывается среда, и дальше делаешь все что душе угодно.
 
7,099
324
1,509
8
0
Вроде сделал как сказали. Ну на сколько понял.
Написал команду так
Код:
dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
Добавил в Libs исходник в виде папки
Screenshot_1.jpg
запускаешь build.gradle, открывается среда, и дальше делаешь все что душе угодно.
Так и не понял как я должен запустить build.grable

Когда запускаю майн. Модов три как обычно, но когда добавляю в mods мод Rare Ice.
Он выдает ошибку модов
Screenshot_8.jpg
пока что не скину крашлог, а то сообщение и без него большое

Не до конца понимаю что это значит,

С вашей командой тоже самое происходит
 
Последнее редактирование:
7,099
324
1,509
А куда тогда исходник кидать?
Никуда. Зачем тебе исходники?
Берешь мод с курса, кладешь в libs, делаешь gradle refresh в ide и дом как либа добавлен в зависимости.
Если хочется прямо в ide читать исходники зависимости, то можно указать папку с ними отделтно. Idea, например, предлагает указать папку с сорцами при первом просмотре классов зависимости через свой декомпилятор
 
8
0
7,099
324
1,509
Ах, 1.16.4, в этой версии автоматической деобфускации всего, что попало теперь нет, поэтому нужно нужно подключить жарку через плоский локальный репозиторий.
Вот таким образом
+заюзать fg.deobf
Пример воркспейса с такой конфигурацией:
 
8
0
Вроде как правильно все написал, но ошибка осталась.
Может
Неправильно написал

Java:
    repositories {
        flatDir {
            dirs 'libs'
        }

dependencies {
        compile fileTree("./libs/")
        
    compile ("yeahyeah:modA:0.1"){
        transitive = true;
    }
    compile ("yeahyeah:modB:0.1")

    minecraft 'net.minecraftforge:forge:1.16.4-35.1.4'
    
      compile fg.deobf("rare-ice:RareIce:1.16.4-0.2.2")
 
7,099
324
1,509
Ну тогда ему нужно другое решение: скачать сорцы с гитхаба и сетапнуть воркспейс. Но это никак не связано с подключением мода как зависимости

А вообще, наличие апи - не обязательное требование дяя создания аддона
~~~
Вроде как правильно все написал, но ошибка осталась.
Может

Неправильно написал
Конечно неправильно. Нужно сначала разобраться. Зачем ты добавил строчку compile ("yeahyeah:modA:0.1")? Эта строчка добавляет modA в зависимости проекта. Тебе точно нужен modA в зависимостях? Вроде бы ты хотел только RareIce добавить.
Не нужно просто копипастить код из решений, хотя бы потому твоя проблема обычно чем-то отличается(здесь - именем зависимости).
Нужно обдумать, какое изменение ты хочешь внести и как существующее решение похожего вопроса отличается от желаемого
 
Последнее редактирование:
153
21
41
А вообще, наличие апи - не обязательное требование дяя создания аддона
В данном случае он не сможет сделать многое без api. А если и сделает, то это уже аддоном сложно назвать будет.
 
8
0
Ладно, я убрал ту команду
Java:
        compile fileTree("./libs/")
    {
           transitive = true;
    }
    compile ("yeahyeah:modB:0.1")

    minecraft 'net.minecraftforge:forge:1.16.4-35.1.4'
    
      compile fg.deobf("rare-ice:RareIce:1.16.4-0.2.2")
ничего не изменилось.
В данном случае он не сможет сделать многое без api. А если и сделает, то это уже аддоном сложно назвать будет.
Так что же мне делать опять возвращаться к источникам?
 
Сверху