Скачать Conditional Proxy Mod Initializers — Minecraft Моды — MetaMods
Conditional Proxy Mod Initializers

Conditional Proxy Mod Initializers

Активный

Установок

0

Последнее обновление

1 год назад

Версии

1.14 — 1.21
Клиент и сервер
Fabric
Библиотеки
Утилиты

Conditional Proxy Mod Initializers

Conditional Proxy Mod Initializers

Этот компактный мод, состоящий всего из пяти классов, предоставляет разработчикам удобный инструмент для выполнения кода в зависимости от наличия определённых модов в системе.

Одной из ключевых особенностей является то, что данный мод всегда загружается последним в очереди. Это полностью исключает возможность возникновения конфликтов из-за порядка загрузки модов и обеспечивает стабильную работу.

Важно отметить, что весь код и переменные должны быть доступны до начала или во время этапов инициализации модов. Например, выполнение кода при перезагрузке датапаков не поддерживается.

Примеры использования

Вот как можно применять этот мод в практике разработки:

// В основном ModInitializer, ClientModInitializer или любом другом классе, вызываемом во время инициализации Fabric

// Для запуска экземпляра ModInitializer:
ConditionalModInitializer myConditionalModInitializer = new ConditionalModInitializer.Builder().mods("some-mod").initializer(SomeOtherInitializer.class).build();

// Для выполнения произвольного кода:

ConditionalModInitializer myConditionalRunner = new ConditionalModInitializer.Builder().mods("some-other-mod").found(() -> {
  // Код выполняется здесь
}).build();

public void onInitialize() {
ConditionalModInitializer.create().mods("some_mod").required_mods("some_other_dependency_mod").initializer(AnotherInitializer.class).build();
}

Важное замечание: new ConditionalModInitializer.Builder() обязательно должен быть присвоен переменной или вызываться внутри функции. Статическое объявление (static{}) работать не будет!

Документация

ConditionalModInitializer

  • create() - возвращает новый экземпляр Builder() (аналогично вызову new ConditionalModInitializer.Builder())
  • mods() - List : возвращает список модов, необходимых для работы данного инициализатора
  • required_mods() - List : возвращает список всех обязательных модов для этого инициализатора
  • can_run - Boolean : показывает, был ли уже запущен инициализатор
  • environment() - ExtendedEnvType : возвращает окружение (тип инициализатора)
    • ExtendedEnvType.CLIENT : ClientModInitializer
    • ExtendedEnvType.SERVER : ModInitializer
    • ExtendedEnvType.DEDICATED_SERVER : DedicatedServerModInitializer
  • on_found() - Runnable : возвращает функцию для вызова при обнаружении требуемого мода

ConditionalModInitializer.Builder

  • mods(String...) : добавляет моды в список, при наличии которых будет запускаться инициализатор
  • required_mods(String...) : добавляет моды в список обязательных зависимостей
  • environment(ExtendedEnvType) : устанавливает окружение инициализатора (по умолчанию: ExtendedEnvType.SERVER : ModInitializer)
  • found(Runnable) : код для выполнения при обнаружении мода
  • initializer(Class<ModInitializer>) : инициализатор для запуска при обнаружении мода
  • mainInitializer(Class<ModInitializer>) : основной инициализатор для запуска при обнаружении мода
  • clientInitializer(Class<ClientModInitializer>) : клиентский инициализатор для запуска при обнаружении мода
  • serverInitializer(Class<DedicatedServerModInitializer>) : серверный инициализатор для запуска при обнаружении мода
  • build() : возвращает готовый ConditionalModInitializer
Участники проекта
Feintha

Feintha

Разработчик

Создан: 10 июл 2024

ID: 24833