MagicLib

MagicLib

模组依赖库。

MagicLib

Minecraft License Languages ![Java](https://img.shields.io/badge/Java-8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18-orange?style=flat-square) Issues Pull Requests ![Last Building](https://img.shields.io/github/actions/workflow/status/Hendrix-Shen/MagicLib/CI.yml?label=Last build&style=flat-square) ![Stable Release](https://img.shields.io/github/v/release/Hendrix-Shen/MagicLib?label=Stable Release&style=flat-square) ![Development Release Downloads](https://img.shields.io/github/v/release/Hendrix-Shen/MagicLib?include_prereleases&label=Development Release&style=flat-square) ![Github Release Downloads](https://img.shields.io/github/downloads/Hendrix-Shen/MagicLib/total?label=Github Release Downloads&style=flat-square) ![Modrinth Downloads](https://img.shields.io/modrinth/dt/mv1zH6ln?label=Modrinth Downloads&logo=Modrinth Downloads&style=flat-square) CurseForge Downloads

中文

⚠️警告:该项目仍处于早期开发阶段。

❗报告问题前,请务必尝试最新的测试版以检查问题是否仍然存在。

描述

一个多功能模组依赖库。

依赖

依赖 类型 环境 链接
Carpet 可选 客户端 / 服务端 CurseForge | GitHub
MaliLib 可选 客户端 CurseForge
Mod Menu 可选 客户端 CurseForge | Modrinth

特性

兼容 API

  • 多版本兼容性,是的,我们通过多种手段使其兼容所有运行在 Fabric Loader 上的最新 Minecraft 发布版(1.14+)。这是如何做到的?魔法 :(
  • 我们编写了兼容性 API 来平衡不同版本之间的差异。对于同时维护多个 MC 版本模组的开发者来说,可以在一定程度上忽略 Mojang 对 MC 的改动。你无需关心 Mojang 做了什么,使用我们的 API,你可以在不同 MC 版本间轻松使用相同的代码。

依赖检查

我们添加了完整的依赖检查系统,通过表达式甚至自定义谓词来验证依赖可用性,可应用于多种场景,例如:

  • MagicLibMixinPlugin 为模块提供额外的依赖检查,弥补了 Fabric Loader 的一些不足,例如为客户端和服务端设置不同的依赖。
  • 依赖检查也可应用于 Mixin,仅当条件满足时才会应用该 Mixin。
  • 依赖检查还可应用于配置管理,仅当条件满足时才会显示配置项。
  • 未来的开发中可能包含更多功能。

国际化 (I18n)

  • 我们重新实现了独立于 MC 的国际化系统,并可以为 MagicLib 的国际化设置备选语言列表。Mojang 在国际化文本中使用了一些技巧,导致 String.format 的某些功能不可用,这通常很令人困扰。

MaliLib 扩展

  • 我们为 MaliLib 编写了一个非常实用的配置管理模块,尽可能使用 Java 注解配合基本数据类型生成配置列表。此外,对于配置文件,我们加入了配置版本管理系统,当配置文件结构发生重大变更时,它能帮助你快速编写自定义迁移方案。
  • 我们将更高版本 MaliLib 的一些功能移植到了低版本,以便在适配低版本 Minecraft 的 MaliLib 中使用相同的功能。

开发

支持

当前主要开发的 Minecraft 版本:1.20.1

并使用 preprocess 兼容所有版本。

注意:我只接受以下版本的问题。请注意此信息具有时效性,任何未列在此处的版本的问题都将被关闭

  • Minecraft 1.14.4
  • Minecraft 1.15.2
  • Minecraft 1.16.5
  • Minecraft 1.17.1
  • Minecraft 1.18.2
  • Minecraft 1.19.2
  • Minecraft 1.19.3
  • Minecraft 1.19.4
  • Minecraft 1.20.1

映射表

我们使用 Mojang 官方 映射表来反混淆 Minecraft 并插入补丁。

文档

英文文档和中文文档逐行对齐。

许可协议

本项目基于 LGPLv3 许可证发布。欢迎从中学习并将其整合到您自己的项目中。