Импорт библиотеки из другого мода в мой.

Версия Minecraft
1.7.10
API
Forge
Всех приветствую, если был такой вопрос сразу прошу не бить, я еще новичок на данном форуме и адекватно пользоваться поиском не научился..
Собственно, суть вопроса, создаю свое дополнение к моду, мне необходимо импортировать его как библиотеку в мой мод чтобы я мог работать с его классами и менять значения допустим той же "маны". Как я могу это реализовать?

На импорт такого вида Eclipse ругается.
1626568121534.png

Насколько я знаю у данного мода нет API, на просторах интернета видел видео, гайды, но, только с модами которые имеют API и естественно их решение мне не подходит. Либо же я плохо ищу и у этого мода оно имеется. Пожалуйста, ткните носом в то, что я делаю неправильно.
 
Решение
Не обращай внимания на ошибки при импорте мода-библиотеки. С библиотекой ты не сможешь сразу запустить из среды и протестировать - тебе надо будет скомпилировать мод и тестить в клиенте с установленной библиотекой вместе с твоим модом.
Для того чтобы привязать библиотеку к моду, нужно написать в файле build.gradle вот такое (или раскомментить, если у тебя такое есть):
Java:
dependencies {
    compile fileTree(dir: './libs/', include: ['*.jar'])
}
А после этого тебе нужно создать папку "libs" в той же папке, где и находится файл build.gradle (в корне проекта). Закинь в эту папку твой мод-библиотеку и всё. Можешь компилить и проверять.

P.S. А если ты хочешь чтобы при загрузке твоего мода при запуске клиента просило установить твой...
Не обращай внимания на ошибки при импорте мода-библиотеки. С библиотекой ты не сможешь сразу запустить из среды и протестировать - тебе надо будет скомпилировать мод и тестить в клиенте с установленной библиотекой вместе с твоим модом.
Для того чтобы привязать библиотеку к моду, нужно написать в файле build.gradle вот такое (или раскомментить, если у тебя такое есть):
Java:
dependencies {
    compile fileTree(dir: './libs/', include: ['*.jar'])
}
А после этого тебе нужно создать папку "libs" в той же папке, где и находится файл build.gradle (в корне проекта). Закинь в эту папку твой мод-библиотеку и всё. Можешь компилить и проверять.

P.S. А если ты хочешь чтобы при загрузке твоего мода при запуске клиента просило установить твой мод-библиотеку, добавь следующий код в мейн класс в init:
Java:
Loader.isModLoaded("bibliotheca");
заместо bibliotheca - ты должен написать точное modid твоего мода-библиотеки.
 
Последнее редактирование:
на ошибки при импорте мода-библиотеки
тебе надо будет скомпилировать мод
Противоречия, не?
с ошибками в импорте ты хрен что скомпилируешь.
compile fileTree(dir: './libs/', include: ['*.jar'])
Этот код подключает любой jar'ник как библиотеку к проекту. форджа подхватывает всё, что там есть и сканит на аннотацию модовую.
эклипс должен начать нормально работать с импортами из этой либы.
Loader.isModLoaded("bibliotheca");
костыль. в аннотации Mod есть специальное поле для зависимостей.
 
Чтобы обфускация не мешала - можно добавить CodeChickenCore в сборку
 
Не обращай внимания на ошибки при импорте мода-библиотеки. С библиотекой ты не сможешь сразу запустить из среды и протестировать - тебе надо будет скомпилировать мод и тестить в клиенте с установленной библиотекой вместе с твоим модом.
Для того чтобы привязать библиотеку к моду, нужно написать в файле build.gradle
Сделал все по вашим рекомендациям но Eclipse все равно ругается на импорт мода, так и должно быть? Проигнорировать?
Компиляция при этом произошла успешно.
 
Последнее редактирование:
А если зависимость опциональная
Мне не доводилось работать с опционалками, но CNFE можно ловить try-catch и на этой основе принимать решения о дальнейших действиях.
 
Мне не доводилось работать с опционалками, но CNFE можно ловить try-catch и на этой основе принимать решения о дальнейших действиях.
Пчёлик)
В опциональное относятся все те межмодовые связи, что нельзя передать через фордж (там какой-то эвент есть для передачи сообщений между модами на момент загрузки), то есть, это всякие интеграции, которые включаются когда в сборке есть определенный мод. Например, регистрация аспектов таума для своих предметов. Пример, конечно, не очень, так как апи таума можно просто в пакет с модом положить, но все же. Думаю, лучше вызвать isModLoaded, чем trycatch'ить.

Если хочешь продолжить тему, то пойдем в оффтоп/лс.
 
перейти на использование ИДЕИ вместо эклипса...
ХВАТИТ уже свою дурацкую идеюю форсить
При попытке использовать переменные из импортированного мода компилятор не хочет работать.
Покажи код, ато ты заскринил какой-то отрезок, ничего не видно.
 
ХВАТИТ уже свою дурацкую идеюю форсить
Человек у меня спросил как пофиксить - Это один из вариантов. Если знаешь другие - напиши, а не агрись как школьница, которую парень бросил
 
импорты тоже
 
Назад
Сверху