
MagicLib
MagicLib - библиотека модов-зависимостей для Fabric. Упрощает разработку, добавляет совместимость между версиями Minecraft, проверку зависимостей и расширенную локализацию.
MagicLib
MagicLib - это библиотека модов-зависимостей для Майнкрафт на Fabric. Если ты разрабатываешь моды или просто хочешь, чтобы твоя сборка работала стабильно, этот проект может сильно упростить жизнь. В отличие от обычных библиотек, MagicLib решает кучу проблем совместимости между разными версиями Minecraft и добавляет удобные инструменты для разработчиков.
Зачем это нужно?
В Майнкрафте каждая новая версия - это головная боль для мододелов. Mojang постоянно меняет внутренние механики, и то, что работало в 1.16, может сломаться в 1.19. MagicLib берёт на себя эту боль: он предоставляет Compat API, который позволяет писать код один раз и запускать его на всех версиях от 1.14 до 1.20.1. По сути, это магия, которая скрывает за собой все изменения Mojang.
Основные фишки
Compat API
- Поддержка всех актуальных версий Minecraft (1.14+) на Fabric Loader.
- API для балансировки различий между версиями - разработчикам не нужно думать о том, что изменил Mojang.
- Один и тот же код работает на разных версиях без правок.
Проверка зависимостей
MagicLib добавляет полноценную систему проверки зависимостей через выражения и кастомные предикаты. Это пригодится в разных сценариях:
- MagicLibMixinPlugin - проверяет зависимости для модулей, компенсируя недостатки Fabric Loader (например, разные зависимости для клиента и сервера).
- Mixin - миксины применяются только если условия выполнены.
- Конфиги - настройки отображаются только при выполнении условий.
- В будущем фич будет больше.
I18n (локализация)
Библиотека переопределяет I18n независимо от Minecraft. Можно задать список альтернативных языков для MagicLib I18n. Mojang использует хитрые трюки с I18n, из-за чего некоторые функции String.format недоступны - MagicLib это исправляет.
Расширения Malilib
- Удобный модуль управления конфигами: используй базовые типы данных с Java-аннотациями для генерации списков настроек.
- Система версионирования конфигов - если структура файла сильно меняется, можно быстро написать свою миграцию.
- Портированы фичи из старших версий Malilib, чтобы одинаково работало на старых версиях Minecraft.
Для разработчиков
Основная разработка ведётся под Minecraft 1.20.1, но через preprocess библиотека совместима со всеми версиями. Автор принимает баг-репорты только для:
- 1.14.4
- 1.15.2
- 1.16.5
- 1.17.1
- 1.18.2
- 1.19.2
- 1.19.3
- 1.19.4
- 1.20.1
Маппинги используются официальные от Mojang. Документация на английском и китайском синхронизирована построчно.
Лицензия
Проект распространяется под LGPLv3 - можно спокойно изучать код и использовать в своих проектах.
Итог
Если ты собираешь сборку модов на Fabric или сам пишешь моды - MagicLib может стать тем самым недостающим звеном, которое решит кучу проблем с совместимостью и упростит разработку. Особенно полезно для тех, кто поддерживает моды под несколько версий Minecraft сразу.
