@scml/addon-conflict-checker

Conflict checker addon 的 TypeScript 类型定义,用于检测和管理 mod 加载顺序冲突。

安装

npm
yarn
pnpm
bun
deno
npm install -D @scml/addon-conflict-checker

快速开始

添加类型引用

在项目中添加三斜杠指令以引入全局类型:

/// <reference types="@scml/addon-conflict-checker" />

使用全局实例

addonConflictChecker 已挂载到 window 上,可访问 mod 冲突检测结果。

按需导入类型

import type { ConflictChecker } from '@scml/addon-conflict-checker/ConflictChecker';
import type { ConflictCheckerParams, ModLimit } from '@scml/addon-conflict-checker/ConflictCheckerParams';

全局类型 global

主入口通过 /// <reference types="..." /> 扩展 Window 接口。 global 以下属性挂载在 window 上:

属性类型说明
addonConflictCheckerConflictCheckerAddon 实例,管理 mod 加载顺序约束
/// <reference types="@scml/addon-conflict-checker" />

// 访问 mod 列表
window.addonConflictChecker.modList;
主入口
子路径导入
/// <reference types="@scml/addon-conflict-checker" />

子路径导出

子路径描述
.主入口,增强 Window/全局
./ConflictCheckerConflictChecker 类
./ConflictCheckerParams配置参数与类型守卫

API 参考

./ConflictChecker

ConflictChecker

实现 LifeTimeCircleHookAddonPluginHookPointEx 的 Addon 插件类,用于 mod 加载顺序冲突检测。

构造函数

参数类型说明
gSC2DataManagerSC2DataManagerMod Loader 数据管理器
gModUtilsModUtilsMod 工具

属性

属性类型说明
gSC2DataManagerSC2DataManager数据管理器引用
gModUtilsModUtils工具引用
loggerLogWrapper日志
infiniteSemVerApiInfiniteSemVerApi版本解析 API
modListMap<string, ConflictCheckerParams>按 mod 名存储的加载顺序约束

方法

方法签名说明
registerMod(addonName: string, mod: ModInfo, modZip: ModZipReader) => Promise<void>注册 mod,读取冲突配置
ModLoaderLoadEnd() => Promise<void>Mod Loader 加载完成时回调

./ConflictCheckerParams

ConflictCheckerParams 接口

加载顺序约束配置,用于 mod 的 mod.json 或 addon 配置。

属性类型说明
mustBeforeModLimit[]必须在此 mod 之前加载的 mod 列表
mustAfterModLimit[]必须在此 mod 之后加载的 mod 列表
optionalBeforeModLimit[]建议在此 mod 之前加载
optionalAfterModLimit[]建议在此 mod 之后加载
blackBeforeModLimit[]禁止在此 mod 之前加载
blackAfterModLimit[]禁止在此 mod 之后加载

ModLimit 接口

属性类型说明
modNamestringmod 名称
versionstring版本号(SemVer)

checkModLimit() / checkParams() 类型守卫

  • checkModLimit(ml: any): ml is ModLimit
  • checkParams(a: any): a is ConflictCheckerParams

类型定义来源

INFO