YARRP avatar

YARRP [1.21.1] [1.20.6]

YARRP - Yet Another Runtime Resource Pack

YARRP вдохновлён ARRP и BRRP, но написан с нуля с простым в использовании Kotlin API. Он позволяет создавать ресурсные пакеты (то есть как data packs, так и asset packs) во время выполнения, поэтому вам не нужно иметь JSON файлы готовыми для всех возможных вариантов.

Использование

Чтобы добавить YARRP в качестве зависимости, добавьте следующее в ваш build.gradle.kts:

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

dependencies {
    // замените версии и загрузчик по необходимости. загрузчик один из `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, создав пакет и добавив его в один из колбэков регистрации. Вот пример:

object MyModResources {
    // вызовите это в вашем инициализаторе мода
    fun register() {
        YarrpCallbacks.register(PackPosition.AFTER_VANILLA, ResourceType.SERVER_DATA) {
            add(PACK)
        }
    }

    @JvmField
    val PACK = RuntimeResourcePack(
        RuntimeResourcePack.createInfo(
            Identifier.of("modid", "my_runtime_pack"),
            Text.of("Pack Title"),
            "pack version", // вероятно, следует установить в версию вашего мода
        ),
        RuntimeResourcePack.createMetadata(Text.of("pack description")),
    )

    val MY_ENCHANTMENT: RegistryKey = PACK.addEnchantment(
        Identifier.of("modid", "my_enchantment"),
        Enchantment.definition(
            // этот dummy type может быть использован для создания RegistryEntryList из данного TagKey
            // но должен использоваться только для добавления ресурсов в runtime pack
            DummyHolderSet(ItemTags.LEG_ARMOR_ENCHANTABLE),
            5,
            3,
            Enchantment.leveledCost(5, 8),
            Enchantment.leveledCost(55, 8),
            2,
            AttributeModifierSlot.LEGS,
        ),
    )

    init {
        if (MyModSettings.myEnchantmentIsTreasure) {
            PACK.addTag(EnchantmentTags.TREASURE) { add(MY_ENCHANTMENT) }
        } else {
            PACK.addTag(EnchantmentTags.NON_TREASURE) { add(MY_ENCHANTMENT) }
        }

        if (MyModSettings.enableRecipe) {
            PACK.addRecipeAndAdvancement(
                Identifier.of("modid", "my_recipe"),
                ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, Items.DIAMOND, 64)
                    .criterion("tick", TickCriterion.Conditions.createTick())
                    .pattern("//")
                    .pattern("//")
                    .input('/', Items.STICK),
            )
        }
    }
}

Полная документация API находится на yarrp.rubixdev.de.

Требуемые зависимости

Kotlin for Forge avatarKotlin for Forgethedarkcolour

Скачать YARRP

 
Тип Скачать Версия Загрузчик Обновлено Размер
Beta[Fabric] [1.20.6] YARRP v0.2.01.20.5+1 Fabric17 ноября 2025384,6 КБ
Beta[Fabric] [1.21.1] YARRP v0.2.01.21+1 Fabric17 ноября 2025385,5 КБ
Beta[NeoForge] [1.21.1] YARRP v0.2.01.21+1 NeoForge17 ноября 2025385,9 КБ
Beta[NeoForge] [1.20.6] YARRP v0.2.01.20.5+1 NeoForge17 ноября 2025385 КБ
Beta[Fabric] [1.20.6] YARRP v0.1.01.20.5+1 Fabric16 ноября 2025370,9 КБ
Beta[NeoForge] [1.21.1] YARRP v0.1.01.21+1 NeoForge16 ноября 2025373 КБ
Beta[NeoForge] [1.20.6] YARRP v0.1.01.20.5+1 NeoForge16 ноября 2025372,4 КБ
Beta[Fabric] [1.21.1] YARRP v0.1.01.21+1 Fabric16 ноября 2025371,6 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.