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

AnvilLib

AnvilLib — это библиотека модов для NeoForge, разработанная Anvil-Dev, которая предоставляет разработчикам модов Minecraft ряд практичных инструментов и фреймворков.

от Gu-ZT· QiuShui1012Библиотеки
NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
11,7 тыс.
Подписчиков на Modrinth
3
версий
270
Обновлён
10 октября 202610 окт.
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

Коротко о моде

Библиотека — нужна другим модам
Работает на NeoForge
Для Minecraft 1.21.1–26.1, 26.1.2
Нужен и в игре, и на сервере
Последняя версия — 2.0.0+snapshot.550 от 10 октября 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.21.1–26.1, 26.1.2
Описание переведено автоматическиПоказать оригинал (EN)

AnvilLib

Minecraft Maven Central NeoForge License

AnvilLib — это библиотека модов для NeoForge, разработанная Anvil Dev, предоставляющая разработчикам модов для Minecraft ряд практичных инструментов и фреймворков.

Возможности

AnvilLib использует модульную архитектуру и включает следующие функциональные модули:

МодульОписание
ConfigСистема конфигурации на основе аннотаций
IntegrationФреймворк интеграции совместимости модов
NetworkСетевой API с автоматической регистрацией пакетов
RecipeСистема рецептов в мире
Moveable Entity BlockПоддержка блоков-сущностей, двигаемых поршнями
RegistrumУпрощённая система регистрации
MainСводный модуль, объединяющий все подмодули

Описание модулей

Модуль Config

Предоставляет систему управления конфигурацией на основе аннотаций для упрощения определения и управления конфигурациями модов.

Ключевые возможности:

  • Определение классов конфигурации с помощью аннотации @Config
  • Добавление комментариев к конфигурации с помощью @Comment
  • Определение числовых диапазонов с помощью @BoundedDiscrete
  • Создание вложенных конфигураций с помощью @CollapsibleObject
  • Автоматическая генерация GUI клиентской конфигурации

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


@Config(name = "my_mod", type = ModConfig.Type.COMMON)
public class MyModConfig {
    @Comment("Enable debug mode")
    public boolean debugMode = false;

    @Comment("Maximum count")
    @BoundedDiscrete(min = 1, max = 100)
    public int maxCount = 10;
}

// Register configuration
MyModConfig config = ConfigManager.register("my_mod", MyModConfig::new);

Модуль Integration

Предоставляет фреймворк для интеграции модов, поддерживающий автоматическую загрузку кода интеграции в зависимости от наличия других модов.

Ключевые возможности:

  • Объявление классов интеграции с помощью аннотации @Integration
  • Поддержка сопоставления диапазонов версий
  • Поддержка различных сред выполнения (CLIENT / DEDICATED_SERVER / DATA)

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


@Integration(value = "jei", version = "[19.0,)")
public class JEIIntegration {
    public void init() {
        // JEI integration logic
    }
}

Модуль Network

Предоставляет абстракцию сетевого взаимодействия NeoForge с автоматической регистрацией пакетов на основе пакетов.

Ключевые возможности:

  • Определение направления пакета с помощью IClientboundPacket / IServerboundPacket / IInsensitiveBiPacket
  • Автоматическая регистрация классов пакетов в пакете через NetworkRegistrar.register(...)
  • Поддержка протоколов PLAY, CONFIGURATION и COMMON

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


@SubscribeEvent
public static void onRegisterPayload(RegisterPayloadHandlersEvent event) {
    PayloadRegistrar registrar = event.registrar("1");
    NetworkRegistrar.register(registrar, "my_mod");
}

Модуль Recipe

Предоставляет систему рецептов в мире, позволяющую выполнять рецепты в мире (а не в верстаках).

Ключевые возможности:

  • Поддержка пользовательских триггеров рецептов (Trigger)
  • Поддержка предикатов рецептов (Predicate) для условных проверок
  • Поддержка нескольких результатов рецептов (Outcome)
  • Встроенная система приоритетов
  • Полная поддержка датапаков

Компоненты рецептов:

  • Trigger: Условия для запуска рецепта (например, выброс предмета, взрывы)
  • Predicate: Условия соответствия рецепта
  • Outcome: Результаты выполнения рецепта (например, спавн предметов, установка блоков)

Модуль Moveable Entity Block

Позволяет толкать поршнями блоки с block entity, сохраняя их данные.

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

public class MyBlock extends Block implements IMoveableEntityBlock {
    @Override
    public CompoundTag clearData(Level level, BlockPos pos) {
        // Return block entity data to preserve
        BlockEntity be = level.getBlockEntity(pos);
        return be != null ? be.saveWithoutMetadata(level.registryAccess()) : new CompoundTag();
    }

    @Override
    public void setData(Level level, BlockPos pos, CompoundTag nbt) {
        // Restore block entity data at new position
        BlockEntity be = level.getBlockEntity(pos);
        if (be != null) {
            be.loadAdditional(nbt, level.registryAccess());
        }
    }
}

Модуль Registrum

Система регистрации на основе Registrate, упрощающая процесс регистрации предметов, блоков, сущностей и т.д.

Ключевые особенности:

  • API в стиле цепочек
  • Автоматическая генерация языковых файлов
  • Автоматическая генерация датапаков
  • Поддержка различных билдеров

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

public static final Registrum REGISTRUM = Registrum.create("my_mod");

public static final RegistryEntry<Item> MY_ITEM = REGISTRUM
    .item("my_item", Item::new)
    .properties(p -> p.stacksTo(16))
    .register();

Основной модуль

anvillib-neoforge-1.21.1 — это агрегирующий артефакт. Он включает и реэкспортирует:

  • config
  • integration
  • network
  • recipe
  • moveable-entity-block
  • registrum

Подключение зависимости

Gradle (Groovy DSL)

repositories {
    mavenCentral() // This project is already uploaded to Maven Central
}

dependencies {
    // Full library
    implementation "dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0"

    // Or import individual modules as needed
    implementation "dev.anvilcraft.lib:anvillib-config-neoforge-1.21.1:2.0.0"
    implementation "dev.anvilcraft.lib:anvillib-integration-neoforge-1.21.1:2.0.0"
    implementation "dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0"
    implementation "dev.anvilcraft.lib:anvillib-recipe-neoforge-1.21.1:2.0.0"
    implementation "dev.anvilcraft.lib:anvillib-moveable-entity-block-neoforge-1.21.1:2.0.0"
    implementation "dev.anvilcraft.lib:anvillib-registrum-neoforge-1.21.1:2.0.0"
}

Gradle (Kotlin DSL)

repositories {
    mavenCentral() // This project is already uploaded to Maven Central
}

dependencies {
    implementation("dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0")

    // Optional single-module example
    implementation("dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0")
}

Держите версию зависимости в соответствии с тегами релизов (текущее свойство проекта — mod_version=2.0.0).

Сборка проекта

# Clone repository
git clone https://github.com/Anvil-Dev/AnvilLib.git
cd AnvilLib

# Build on macOS / Linux
./gradlew build

# Build on Windows (PowerShell / CMD)
gradlew.bat build

Требования

  • Java 21+
  • Minecraft 1.21.1
  • NeoForge 21.1.x

Лицензия

Этот проект распространяется под лицензией MIT.

Часть кода модуля Registrum основана на Registrate и распространяется по Mozilla Public License 2.0.

Автор

  • Gugle — главный разработчик

Ссылки

Частые вопросы

Как установить AnvilLib?

Установите NeoForge под свою версию Minecraft, скачайте AnvilLib под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть AnvilLib?

У AnvilLib есть сборки для Minecraft 1.21.1–26.1, 26.1.2.

Нужен ли AnvilLib на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее