JAFF api

Версия Minecraft
1.12+
4,045
63
645
Приветствую!
Есть здесь кто знающий Just A Few Fish api?
Даже не само апи, а как его можно опционально подключать к моду? Таким я ещё не занимался, поэтому прошу совета.

Задача следующая: нужно добавить кислоту из Мисти Ворлда в чёрный список JAFF-а, чтобы рыбки более не умирали страшной смертью при рождении )))
Из разговора с автором стало ясно, что всего-то нужно подключить апишку и провернуть то, что мне надо...
Беда в том, что, с его слов, при этом JAFF должен постоянно грузится в качестве библиотеки вместе с моим модом.

А теперь вопрос!
Как сделать это опционально? То есть, если JAFF установлен, добавлять кислоту в чёрный список, если нет - игнорировать...

Хорошо бы увидеть какие-нибудь примерчики )
Спасибо за участие )
 
Решение
Добавляешь мод как библиотеку, добавляешь модид в депенденс своего мода через after, после в инит или надо смотреть где добавляешь проверку на загружен ли его мод, если да - добавляешь в блек лист жижу.
Могу кодом, но позже.
3,005
192
592
Добавляешь мод как библиотеку, добавляешь модид в депенденс своего мода через after, после в инит или надо смотреть где добавляешь проверку на загружен ли его мод, если да - добавляешь в блек лист жижу.
Могу кодом, но позже.
 
4,045
63
645
Чё-т я всё-таки не так делаю...
В главном классе, например, создаю метод:
Код:
@Optional.Method(modid = "jaff")
private void addToJAFFBlackList() {
    JustAFewFishAPI.addFluidBlockToBlacklist(MistBlocks.ACID_BLOCK);
}

И вызываю его из постинита...
Так? Или его сделать статичным и не вызывать ниоткуда?

Кроме того, не может найти сам импорт аннатации:
Код:
import cpw.mods.fml.common.Optional;
Для неё ещё какая-то библиотека нужна?

Или, может проще сделать рефлексией? Я в ней тоже не очень шарю... А именно, откуда брать "methodObfName"?
 
3,005
192
592
dependencies = "after:tconstruct;"
Это в @mod мода.
В init'e вызываешь.
Java:
public static void initCompatibilityMod() {
if (Loader.isModLoaded("tconstruct")) {
// Code.
}
}
 
3,005
192
592
В смысле будет ругаться?
Если библиотеки нету - значит мод не загружен, значит библиотека не требуется.
А в IDE должна быть эта библиотека, иначе ошибки будут в виде импортов.
 
4,045
63
645
Оооооооу!
Так её удалять не надо...

То есть как-то так?
Код:
import com.tmtravlr.jaff.api.JustAFewFishAPI;

...

@Mod(modid = Mist.MODID, name = Mist.NAME, version = Mist.VERSION, dependencies = "after:jaff")

...

@EventHandler
public void init(FMLInitializationEvent event) {
    ...
    initCompatibilityMod();
    ...
}

...

public static void initCompatibilityMod() {
    if (Loader.isModLoaded("jaff")) JustAFewFishAPI.addFluidBlockToBlacklist(MistBlocks.ACID_BLOCK);
}

Чо и на импорт при сборке ругаться не будет?
Ща проверю )
 
3,005
192
592
Точку с запятой в депенденсиес пропустил в конце.
На импорт будет ругаться только в IDE, а в майне нет.
 
4,045
63
645
Неа... Всё-таки ругается... Как раз на импорт.
Код:
:deobfCompileDummyTask
:deobfProvidedDummyTask
:sourceApiJava UP-TO-DATE
:compileApiJava UP-TO-DATE
:processApiResources UP-TO-DATE
:apiClasses UP-TO-DATE
:sourceMainJava
:compileJavaC:\Users\Mihail\Desktop\Mod\Mod_1.12.1\build\sources\main\java\ru\liahim\mist\common\Mist.java:20: error: package com.tmtravlr.jaff.api does not exist
import com.tmtravlr.jaff.api.JustAFewFishAPI;
                            ^
1 error
FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Точку с запятой в депенденсиес пропустил в конце.
На импорт будет ругаться только в IDE, а в майне нет.

Так не компилирует же нифига.
 
Последнее редактирование:
3,005
192
592
Блэт.
Создай папку либс.
Добавь туда мод.
В билд грабли
В dependencies
Добавить compile files ("libs/ASD.jar")
 
3,005
192
592
Когда я делал аддоны к некоторым модем - без этого не работало.
Да и вроде бы не важно где ты добавляешь в лист, главное, что бы ты добавлял раньше, чем его использует автор мода.
 
Сверху