MagicLib
MagicLib is a universal dependency library for Minecraft mods that significantly simplifies the development process and ensures compatibility between different game versions.
Main Features
Cross-Version Compatibility
The library provides a powerful compatibility API that allows developers to create mods that work on all modern Minecraft versions (starting from 1.14) running on Fabric Loader. Specially designed interfaces smooth out differences between versions, eliminating the need to constantly adapt code to changes made by Mojang.
Dependency Checking System
The built-in dependency checking system uses expressions and custom conditions to determine the availability of required components. This functionality is applied in various scenarios:
- MagicLibMixinPlugin provides additional dependency checking for modules
- Ability to configure different dependencies for client and server sides
- Conditional application of Mixin only when certain conditions are met
- Management of configuration element display based on component availability
Localization (I18n)
Implemented an independent localization system from Minecraft with the ability to set alternative languages. Solved the problem with limitations of Mojang's standard localization system that makes some String.format functions unavailable.
MaliLib Extensions
Developed a convenient configuration management module for MaliLib that uses basic data types with Java annotations to automatically create configuration lists. Also included is a configuration file version management system that helps quickly create migration solutions for significant configuration structure changes.
Technical Features
Supported Versions
Main development is for Minecraft 1.20.1 using preprocess technology to ensure compatibility with all versions. The following Minecraft versions are supported:
- 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
Dependencies
- Carpet (optional) - client/server
- MaliLib (optional) - client
- Mod Menu (optional) - client
Technical Information
Official Mojang mappings are used for Minecraft deobfuscation and patch application. Documentation in English and Chinese is synchronized line by line.
License
The project is distributed under the LGPLv3 license, allowing free code study and use in own projects.