▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Matthiesen Core - библиотека для модов
Matthiesen Core - библиотека для модов

Matthiesen Core - библиотека для модов

Matthiesen Core - библиотечный мод для NeoForge и Fabric, который нужен как зависимость для других модов. Он объединяет общую кодовую базу, регистрацию контента, события, сеть, конфиги и клиентские функции для Minecraft 1.21.1.

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

Matthiesen Core - это библиотека для Майнкрафт, которая нужна в первую очередь разработчикам модов, а не обычным игрокам. Сам по себе он почти ничего не добавляет в игру, зато дает другим модам общий фундамент: регистрацию контента, обработку событий, сетевое взаимодействие, конфиги, клиентские функции и систему прав. Если вы просто собираете сборку модов для Minecraft 1.21.1, то чаще всего Matthiesen Core ставится как обязательная зависимость рядом с модами, которые от него зависят.

Проще говоря, это не тот проект, который вы ставите ради новых блоков, мобов или механик. Его задача другая - убрать лишнюю техническую головную боль у мододелов. Вместо того чтобы писать отдельную логику под Fabric и отдельную под NeoForge, разработчик может держать общую кодовую базу и полагаться на Matthiesen Core в платформенных деталях. Для игрока это обычно означает одно: меньше хаоса в зависимостях и выше шанс, что нужный мод будет нормально работать на выбранном загрузчике.

Что это вообще такое

Matthiesen Core - это library mod, то есть мод-библиотека. Он не делает игру ярче, не меняет баланс и не добавляет контент в привычном смысле. Но без него моды, которые на нем построены, могут просто не запуститься.

Такие библиотеки в Майнкрафт-моддинге нужны постоянно. Один мод пишет логику регистрации предметов, другой - сетевые пакеты, третий - конфиги и права доступа. Если каждый автор будет делать все это с нуля, начинается бардак: разные подходы, разные костыли, больше конфликтов. Matthiesen Core как раз пытается собрать базовые вещи в одном месте.

И да, это преемник сразу двух старых проектов - Matthiesen Lib и Matthiesen Lib Api. Раньше они существовали отдельно, теперь их объединили в одну более цельную библиотеку. По факту это удобнее и для разработчика, и для игрока, потому что не нужно разбираться, какой именно из двух компонентов ставить.

Зачем он нужен обычному игроку

Если вы не пишете моды, то Matthiesen Core нужен вам по одной простой причине: его требуют другие моды. В свежем контексте по проекту прямо видно, что он уже используется в аддонах автора, включая Cobblemon NPC Extensions и Cobblemon Poke Power. То есть это не абстрактная библиотека ради библиотеки, а реальный фундамент для конкретных модов.

Для игрока сценарий обычно такой:

  • скачали нужный мод;
  • увидели, что он требует Matthiesen Core;
  • закинули библиотеку в папку mods/;
  • запустили игру и пошли дальше.

И все. Никакой магии. Если мод, который зависит от Matthiesen Core, работает только на сервере, то на клиенте библиотека не обязательна. Но если у зависимого мода есть клиентская часть, то Matthiesen Core должен стоять и на клиенте тоже. Это важный момент, потому что на практике люди часто забывают докинуть зависимость именно на клиент, а потом удивляются крашу или отсутствию нужных функций.

Что умеет Matthiesen Core

Внутри у библиотеки довольно широкий набор API. Для игрока это выглядит как техническая начинка, а для разработчика - как готовый каркас.

Регистрация контента

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

Работа с событиями

Matthiesen Core дает единый способ слушать и обрабатывать игровые события на разных загрузчиках. Для Minecraft это база: вход игрока, взаимодействие с миром, серверные и клиентские события, вспомогательные хуки и тому подобное.

Сеть и пакеты

Библиотека помогает отправлять и принимать сетевые пакеты между клиентом и сервером. Это особенно полезно для модов, где есть GUI, синхронизация данных, кастомные механики, серверные проверки и клиентские отклики.

Конфигурации

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

Утилиты

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

Клиентские функции

Matthiesen Core включает и клиентскую часть: HUD, keybinding handling, screen management и другие вещи, которые нужны модам с интерфейсом или пользовательским взаимодействием. Если мод использует кастомные элементы интерфейса или горячие клавиши, такая база сильно упрощает жизнь.

Права доступа

Отдельно стоит отметить систему permission management. Для серверных модов это прямо полезная штука, особенно если нужно разграничивать доступ к командам или функциям. В связке с такими решениями, как LuckPerms или Fabric Permissions API, это выглядит логично и практично.

Что важно знать перед установкой

Самая главная мысль простая: если вы не разработчик, Matthiesen Core сам по себе вам почти ничего не даст. Это не контентный мод, не шейдер, не ресурспак и не геймплейное дополнение. Он нужен как техническая зависимость.

По совместимости сейчас заявлена версия Minecraft 1.21.1, а работать библиотека должна на Fabric и NeoForge. Для Fabric дополнительно нужны:

Это стандартная история для Fabric-модов: одна библиотека тянет базовый API, другая помогает с конфигами. На NeoForge картина обычно проще, потому что часть инфраструктуры уже идет из экосистемы загрузчика.

Есть и опциональные зависимости. Они нужны не всегда, а только если конкретный мод или серверная логика их использует:

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

Совместимость по версиям

Версия MinecraftВерсия мода
1.21.11.x.x

По свежим данным, совместимые аддоны уже ориентируются на Matthiesen Core 1.2.7 и новее. То есть проект не выглядит мертвой библиотекой, которую забросили после первого релиза. Наоборот, видно движение в сторону единой и более функциональной платформы для кросс-загрузочных модов.

Для разработчиков: в чем реальная польза

Если вы делаете мод под Майнкрафт и хотите поддерживать сразу Fabric и NeoForge, Matthiesen Core выглядит как попытка убрать лишнее дублирование. Это особенно полезно, когда проект уже не маленький и поддержка двух отдельных веток начинает раздражать.

Идея тут не новая, но правильная: пишете общую логику один раз, а платформенную специфику оставляете библиотеке. В результате проще поддерживать код, проще чинить баги и проще выпускать обновления под новые версии Minecraft.

Быстрый старт через Gradle

Сначала в build.gradle.kts добавляется Maven-репозиторий:

repositories {
    maven("https://maven.matthiesen.dev/releases") {
        name = "devMatthiesenMaven-releases"
    }
    maven("https://maven.matthiesen.dev/snapshots") {
        name = "devMatthiesenMaven-snapshots"
    }
}

Потом в gradle.properties указывается версия:

matthiesen_core_version=1.x.x

Дальше подключаются зависимости для common, Fabric и NeoForge модулей:

dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-common:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}
dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-fabric:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}
dependencies {
    modImplementation("dev.matthiesen:matthiesen-core-neoforge:${property("matthiesen_core_version")}") {
        isTransitive = false
    }
}

После этого нужно прописать зависимость в метаданных мода. Для Fabric это делается в fabric.mod.json:

{
  "depends": {
    "matthiesen_core": ">=1.x.x"
  }
}

Для NeoForge - в neoforge.mods.toml:

[[dependencies.yourmodid]]
modId = "matthiesen_core"
type = "required"
versionRange = "1.x.x,)"
ordering = "AFTER"
side = "BOTH"

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

Базовые классы

Для common-части предлагается наследоваться от AbstractCommonMod. Это дает каркас для инициализации мода и базовых сервисов.

package com.example.mymod;

import dev.matthiesen.matthiesen_core.common.AbstractCommonMod;
import dev.matthiesen.libs.faststats.Token;

public final class ExampleModCommon extends AbstractCommonMod {
    public static final String MOD_ID = "examplemod";
    public static final String MOD_NAME = "Example Mod";
    public static @Token final String METRICS_TOKEN = "";

    public static final ExampleModCommon INSTANCE = new ExampleModCommon();

    private ExampleModCommon() {
        super(MOD_ID, MOD_NAME);
    }

    @Override
    public @Nullable @Token String getMetricsToken() {
        return METRICS_TOKEN;
    }
    
    @Override
    public void initialize() {
        super.initialize();
        createInfoLog("Initializing Example Mod Common...");
    }
}

Для клиентской части есть AbstractCommonClientMod:

package com.example.mymod.client;

import dev.matthiesen.matthiesen_core.common.AbstractCommonClientMod;
import com.example.mymod.ExampleModCommon;

public final class ExampleModCommonClient extends AbstractCommonClientMod {
    public static final ExampleModCommonClient INSTANCE = new ExampleModCommonClient();
    
    private ExampleModCommonClient() {
        super(ExampleModCommon.INSTANCE);
    }

    @Override
    public void initialize() {
        createInfoLog("Initializing Example Mod Common Client logic...");
    }
}

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

Метрики FastStats

В Matthiesen Core используется FastStats для сбора анонимной статистики. Для разработчика это помогает понимать, как мод реально используют. Для игрока тут важно одно: если вам это не нужно, сбор можно отключить.

Для этого в файле:

<game_directory>/config/matthiesen_core/metrics.properties

нужно выставить:

enabled=false

И все, без танцев.

Кому стоит скачать Matthiesen Core

Скачать Matthiesen Core стоит в двух случаях. Первый - если его требует мод, который вы ставите в сборку для Minecraft 1.21.1. Второй - если вы разработчик и хотите писать моды под Fabric и NeoForge с общей кодовой базой.

Если вы просто ищете новый контент для Майнкрафта, этот проект вам не нужен сам по себе. А вот если у вас уже есть моды, которые зависят от Matthiesen Core, тогда это обязательная часть установки. Особенно на сервере, где подобные библиотеки часто решают, будет ли вообще стабильно работать нужный функционал.

Короче, Matthiesen Core - это не про вау-эффект, а про фундамент. И именно такие библиотеки чаще всего держат на себе половину нормальной модовой экосистемы. Если нужный мод его требует, просто скачайте Matthiesen Core, закиньте в mods/ и не забудьте про Fabric API и Forge Config API Port на Fabric.

Партнёрский материал

Как поиграть с друзьями с модом Matthiesen Core - библиотека для модов?

Мод Matthiesen Core - библиотека для модов куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Matthiesen Core - библиотека для модов будет готов за пару минут - BungeeHost сделает всё за вас.

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

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

Minecraft: Java Edition

1.21.x

Платформы

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

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

Зависимости

Ссылки


Детали

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