Compat API

Compat API

通用兼容API,自动加载依赖它的模组的集成、数据包和战利品修改器。

基础库

📖 关于

Compat API 是一个轻量级且通用的兼容框架,服务于 fixerlink 开发的整个 "Compat" 系列模组——包括 Compat Delight、即将推出的 Compat Artifacts、Compat Decor,以及任何希望以简单、自动化方式添加跨模组整合的第三方模组。

无需硬编码兼容逻辑或手动管理数据包,Compat API 会为你处理所有事务: 自动加载兼容代码、注入数据包、包装战利品修饰器、应用条件,并且仅在安装了所需模组时启用整合功能。


📃 功能特性

  • 智能兼容扫描器:仅从明确依赖于 Compat API 的模组中加载整合内容。
  • 自动兼容代码加载: 自动检测位于 net.<owner>.<moid>.compats.<target> 的兼容模块,并运行其 register、init 或 bootstrap 钩子。
  • 自动数据包注入: 从 data/<owner>/<modid>/compats/<target> 加载内容作为内置数据包——仅在目标模组存在时加载。
  • 通用战利品修饰器系统: 自动添加兼容条件并生成全局战利品修饰器列表。
  • 兼容条件: 内置条件 compatapi:compat_enabled 确保整合功能仅在合适的情况下安全加载。
  • 按目标配置开关: 每个兼容模块都可以通过配置文件单独启用或禁用。
  • 安全且干净的系统: 兼容错误永远不会导致游戏崩溃——它们会被记录并优雅地跳过。

📝 描述

工作原理:

你安装 Compat API。 就这样。

如果一个模组依赖于 Compat API 并包含兼容模块,该 API 将:

  • 检测其兼容代码
  • 注入其兼容数据包
  • 包装其战利品修饰器
  • 应用条件
  • 并自动启用整合功能

如果目标模组缺失——那么兼容内容将不会被加载。没有错误,没有崩溃,也无需手动设置。模组可以自由添加兼容文件夹和类——Compat API 会完成所有繁重的工作。当然,每个整合功能都可以通过配置文件进行开关。


🎁 额外信息

  • 不依赖 Compat API 的模组将被完全忽略
  • 所有整合功能仅在其目标模组存在时加载
  • 兼容代码中的错误绝不会破坏游戏
  • 完全自动化的系统:代码、数据包、条件、战利品修饰器
  • 以最少的样板代码支持数以千计的整合功能

🧾 致谢

Compat API 由 fixerlink 开发,作为所有 Compat 系列模组的通用标准, 也服务于那些希望实现干净、模块化和自动化跨模组整合的开发者。


欢迎提供反馈!