Скачать YARRP — Minecraft Моды — MetaMods

Установок

0

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

2 недели назад
Клиент
Библиотеки

YARRP - Yet Another Runtime Resource Pack

Вам когда-нибудь мешало то, что большая часть настроек блоков, предметов, рецептов и даже зачарований задается в нетипизированных JSON-файлах? Если это ваш случай, и при этом вам необходимо изменять данные динамически или делать некоторые аспекты настраиваемыми, то этот мод может стать идеальным решением. YARRP создает ресурсные сборки (включая как датапаки, так и сборки ресурсов) прямо во время выполнения игры, что избавляет от необходимости заранее подготавливать JSON-файлы для всех возможных вариантов.

Применение

Для подключения YARRP в качестве зависимости добавьте следующий код в ваш файл build.gradle.kts:

репозитории {
    // можно использовать любой из вариантов
    maven("https://jitpack.io")
    maven("https://api.modrinth.com/maven")
}

зависимости {
    // замените версию и загрузчик по необходимости, где загрузчик может быть fabric или neoforge
    modImplementation("com.github.RubixDev.YARRP:yarrp-mc1.21.1-fabric:v0.2.0") // при использовании jitpack
    modImplementation("maven.modrinth:yarrp:0.2.0+1.21.1-fabric") // при использовании modrinth maven
}

Также не забудьте указать YARRP как зависимость в файлах fabric.mod.json и neoforge.mods.toml.

Далее вы можете использовать YARRP путем создания сборки и ее добавления в один из регистрационных методов колбэков. Пример реализации:

объект МоиРесурсыМода {
    // вызывайте этот метод в инициализаторе мода
    fun инициализация() {
        YarrpКолбэки.регистрация(PackPosition.AFTER_VANILLA, ResourceType.SERVER_DATA) {
            добавить(СБОРКА)
        }
    }

    @JvmField
    val СБОРКА = RuntimeResourcePack(
        RuntimeResourcePack.информация(
            Identifier.of("ид_мода", "моя_динамическая_сборка"),
            Text.of("Название сборки"),
            "версия_сборки", // рекомендуется указать версию мода
        ),
        RuntimeResourcePack.метаданные(Text.of("описание сборки")),
    )

    val МОЁ_ЗАЧАРОВАНИЕ: RegistryKey<Enchantment> = СБОРКА.добавитьЗачарование(
        Identifier.of("ид_мода", "моё_зачарование"),
        Enchantment.определение(
            DummyHolderSet(ItemTags.LEG_ARMOR_ENCHANTABLE),
            5,
            3,
            Enchantment.leveledCost(5, 8),
            Enchantment.leveledCost(55, 8),
            2,
            AttributeModifierSlot.LEGS,
        ),
    )

    init {
        if (НастройкиГлавногоМода.зачарованиеСокровищ) {
            СБОРКА.добавитьТег(EnchantmentTags.TREASURE) { add(МОЁ_ЗАЧАРОВАНИЕ) }
        } else {
            СБОРКА.добавитьТег(EnchantmentTags.NON_TREASURE) { add(МОЁ_ЗАЧАРОВАНИЕ) }
        }

        if (НастройкиГлавногоМода.включениеРецепта) {
            СБОРКА.добавитьРецептИДостижение(
                Identifier.of("ид_мода", "мой_рецепт"),
                ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, Items.DIAMOND, 64)
                    .criterion("tick", TickCriterion.Conditions.createTick())
                    .pattern("//")
                    .pattern("//")
                    .input('/', Items.STICK),
            )
        }
    }
}

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

Участники проекта
RubixDev

RubixDev

Создан: 17 ноя 2025

ID: 272978