▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/SolLib
SolLib

SolLib

SolLib - это библиотека для разработчиков модов Minecraft. Она избавляет от копипаста, предоставляя удобную систему конфигов, контроль над данными в рантайме и помощников для рендера. Упрощает и ускоряет создание модов.

Оцените первым
55.1K
2

Если вы когда-нибудь пробовали писать моды для Майнкрафт, то наверняка сталкивались с ситуацией, когда из проекта в проект приходится таскать одни и те же классы. Копипаст - дело неблагодарное: то что-то сломается, то версии разъедутся. SolLib - это библиотека, которая собирает все эти общие куски кода в одном месте и даёт разработчикам готовые инструменты.

SolLib - не мод в привычном понимании, а вспомогательная библиотека, которая используется другими модами. Она берёт на себя рутину: работу с данными, конфигами, рендером и регистрацию фич. По факту, это фундамент, который позволяет моддерам не изобретать велосипед и сосредоточиться на том, что делает их мод уникальным.

Зачем нужна SolLib?

Представьте, что вы пишете несколько модов для Minecraft. Каждый раз вам нужно создавать конфиги, работать с JSON-данными, регистрировать предметы и блоки, делать рендер. Всё это можно переписывать с нуля, но это долго и чревато багами. SolLib решает эту проблему, предлагая готовые решения, которые работают одинаково на разных загрузчиках - Fabric, Forge, NeoForge и Quilt.

Основные возможности

Простая система конфигов

Конфиги - это то, без чего не обходится ни один серьёзный мод. SolLib делает их настройку максимально лёгкой. Всё загружается тогда, когда нужно, и доступно из других модов без жёстких зависимостей. Вот как это выглядит:

SolConfig config = MOD.createConfig("sollib/test", 1.0, builder -> builder
    .addObject("category", category -> category
        .comment("This is a comment")
        .add("hello", "world")
        .add("easyconfig", true)
    )
);

MOD.getLogger().info(config.get("category.hello", ""));
// world

Согласитесь, это куда удобнее, чем вручную парсить свойства или JSON.

Runtime-данные, управляемые кодом

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

SolRegistries.Data.RUNTIME.addJson(Identifier.of("minecraft", "recipe/dropper.json"), json -> {
    if (json == null) return null;
    if (!config.get("recipe.copper_dropper", false)) return null;
    
    json.getAsJsonObject("key")
            .getAsJsonObject("#")
            .addProperty("item", "minecraft:copper_ingot");
    return json;
});

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

Помощники для рендера

Рендер - вещь капризная, а с учетом разных загрузчиков ещё и запутанная. SolLib предлагает централизованные и независимые от загрузчика хелперы, так что вам не придётся добавлять лишние миксины. Например, можно наложить текстуру на зачарованный алмазный меч:

ResourceLocation TEXTURE = MOD.makeID("textures/models/sword_overlay.png");

SolClientRegistries.Render.ITEM.register(stack -> stack.is(Items.DIAMOND_SWORD) && stack.isEnchanted(),
        (stack, context, matrices, bufferSource, light, overlay) -> {
    matrices.scale(1.005f, 1.005f, 1.005f);
    matrices.translate(0, 0.995, 0.4975);
    matrices.mulPose(Axis.XP.rotationDegrees(180));

    MockItemRenderer.renderItem(matrices, bufferSource, light, TEXTURE);
});

Всё чисто и без костылей.

Упрощённая регистрация

Регистрация предметов, блоков и сущностей в Minecraft обычно требует кучи кода. SolLib оборачивает это в удобные методы, которые можно вызывать из общего кода. Причём сразу настраивается много всего: модели, время горения, результаты пиления и прочее. Например:

MOD.register(BlockHolder.class, "block_block", () -> new Block(BlockBehaviour.Properties.of()))
    .withItem(item -> item.withFuel(200)).dropsSelf()
    .withSlab().withStairs().withWall()
    .withFlammability(20, 5);

Одна строка - и у вас есть блок, предмет, плита, лестница и стена с топливом и горючестью.

Что это значит для игроков?

Для обычных пользователей SolLib остаётся за кулисами. Но если вы устанавливаете мод, который зависит от этой библиотеки, вы получаете более стабильную работу и меньше конфликтов. Это как фундамент дома: его не видно, но всё стоит на нём.

Совместимость

Библиотека мультилоадерная, так что работает на Fabric, Forge, NeoForge и Quilt. Это значит, что разработчикам не нужно писать отдельные версии кода для каждого загрузчика - всё делается в едином стиле. Если вы ищете SolLib скачать, то она доступна на тех же площадках, где вы обычно берёте моды.

Если вы разработчик и хотите разобраться в SolLib, лучший способ - изучить примеры кода прямо здесь. Документация пока находится в разработке, но даже то, что уже есть, позволяет быстро начать.

SolLib - это именно тот случай, когда библиотека делает жизнь моддера заметно проще. Даже если вы не пишете моды, а просто любите играть, поддержка таких проектов важна - благодаря им моддинг становится доступнее и интереснее.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.21.x1.20.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Ссылки


Детали

Лицензия:
Опубликован:2 месяца назад
Обновлён:4 недели назад
Главная