后端 API
概述
DeEarthX-CE 的后端模块使用 TypeScript 开发,提供了核心功能和 API 接口。本章节将详细介绍后端模块的 API 接口。
模块结构
后端模块包含以下主要目录:
dearth/- 核心功能模块modloader/- 模组加载器相关功能platform/- 平台集成模块template/- 模板管理模块utils/- 工具函数
核心模块
dearth/strategies
包含各种模组过滤策略:
DexpubFilter.ts- Dexpub 过滤策略HashFilter.ts- 基于哈希值的过滤策略MixinFilter.ts- 混合过滤策略ModrinthFilter.ts- Modrinth 过滤策略
dearth/ModCheckService.ts
功能:负责检查模组的有效性和兼容性
方法:
checkMod(modPath: string): Promise<ModInfo>- 参数:
modPath- 模组文件路径 - 返回值:模组信息对象
- 描述:检查模组的基本信息和兼容性
- 参数:
checkModCompatibility(modInfo: ModInfo, gameVersion: string, modloader: string): Promise<boolean>- 参数:
modInfo- 模组信息对象gameVersion- 游戏版本modloader- 模组加载器
- 返回值:是否兼容
- 描述:检查模组与指定游戏版本和加载器的兼容性
- 参数:
dearth/ModFilterService.ts
功能:负责根据不同策略过滤模组
方法:
filterMods(mods: ModInfo[], strategy: FilterStrategy): Promise<ModInfo[]>- 参数:
mods- 模组信息数组strategy- 过滤策略
- 返回值:过滤后的模组数组
- 描述:根据指定策略过滤模组
- 参数:
registerFilterStrategy(name: string, strategy: FilterStrategy): void- 参数:
name- 策略名称strategy- 过滤策略对象
- 返回值:无
- 描述:注册新的过滤策略
- 参数:
模组加载器模块
modloader/fabric.ts
功能:处理 Fabric 模组加载器相关操作
方法:
detectFabricMod(modPath: string): Promise<boolean>- 参数:
modPath- 模组文件路径 - 返回值:是否为 Fabric 模组
- 描述:检测指定文件是否为 Fabric 模组
- 参数:
getFabricModInfo(modPath: string): Promise<ModInfo>- 参数:
modPath- 模组文件路径 - 返回值:模组信息对象
- 描述:获取 Fabric 模组的详细信息
- 参数:
modloader/forge.ts
功能:处理 Forge 模组加载器相关操作
方法:
detectForgeMod(modPath: string): Promise<boolean>- 参数:
modPath- 模组文件路径 - 返回值:是否为 Forge 模组
- 描述:检测指定文件是否为 Forge 模组
- 参数:
getForgeModInfo(modPath: string): Promise<ModInfo>- 参数:
modPath- 模组文件路径 - 返回值:模组信息对象
- 描述:获取 Forge 模组的详细信息
- 参数:
modloader/neoforge.ts
功能:处理 NeoForge 模组加载器相关操作
方法:
detectNeoForgeMod(modPath: string): Promise<boolean>- 参数:
modPath- 模组文件路径 - 返回值:是否为 NeoForge 模组
- 描述:检测指定文件是否为 NeoForge 模组
- 参数:
getNeoForgeModInfo(modPath: string): Promise<ModInfo>- 参数:
modPath- 模组文件路径 - 返回值:模组信息对象
- 描述:获取 NeoForge 模组的详细信息
- 参数:
平台集成模块
platform/curseforge.ts
功能:与 CurseForge API 交互
方法:
searchMods(query: string, gameVersion: string): Promise<ModInfo[]>- 参数:
query- 搜索关键词gameVersion- 游戏版本
- 返回值:搜索结果数组
- 描述:在 CurseForge 上搜索模组
- 参数:
getModDetails(modId: string): Promise<ModInfo>- 参数:
modId- 模组ID - 返回值:模组详细信息
- 描述:获取模组的详细信息
- 参数:
downloadMod(modId: string, fileId: string, destination: string): Promise<boolean>- 参数:
modId- 模组IDfileId- 文件IDdestination- 下载目标路径
- 返回值:是否下载成功
- 描述:下载指定模组文件
- 参数:
platform/modrinth.ts
功能:与 Modrinth API 交互
方法:
searchMods(query: string, gameVersion: string): Promise<ModInfo[]>- 参数:
query- 搜索关键词gameVersion- 游戏版本
- 返回值:搜索结果数组
- 描述:在 Modrinth 上搜索模组
- 参数:
getModDetails(modId: string): Promise<ModInfo>- 参数:
modId- 模组ID - 返回值:模组详细信息
- 描述:获取模组的详细信息
- 参数:
downloadMod(modId: string, versionId: string, destination: string): Promise<boolean>- 参数:
modId- 模组IDversionId- 版本IDdestination- 下载目标路径
- 返回值:是否下载成功
- 描述:下载指定模组文件
- 参数:
模板管理模块
template/TemplateManager.ts
功能:负责模板的创建、管理和应用
方法:
createTemplate(name: string, description: string, mods: ModInfo[]): Promise<Template>- 参数:
name- 模板名称description- 模板描述mods- 模组信息数组
- 返回值:创建的模板对象
- 描述:创建新的模组包模板
- 参数:
getTemplate(templateId: string): Promise<Template>- 参数:
templateId- 模板ID - 返回值:模板对象
- 描述:获取指定模板的详细信息
- 参数:
listTemplates(): Promise<Template[]>- 参数:无
- 返回值:模板数组
- 描述:获取所有模板列表
updateTemplate(templateId: string, updates: Partial<Template>): Promise<Template>- 参数:
templateId- 模板IDupdates- 更新内容
- 返回值:更新后的模板对象
- 描述:更新模板信息
- 参数:
deleteTemplate(templateId: string): Promise<boolean>- 参数:
templateId- 模板ID - 返回值:是否删除成功
- 描述:删除指定模板
- 参数:
applyTemplate(templateId: string, targetDir: string): Promise<boolean>- 参数:
templateId- 模板IDtargetDir- 目标目录
- 返回值:是否应用成功
- 描述:将模板应用到指定目录
- 参数:
exportTemplate(templateId: string, exportPath: string): Promise<boolean>- 参数:
templateId- 模板IDexportPath- 导出路径
- 返回值:是否导出成功
- 描述:导出模板为文件
- 参数:
importTemplate(templatePath: string): Promise<Template>- 参数:
templatePath- 模板文件路径 - 返回值:导入的模板对象
- 描述:从文件导入模板
- 参数:
工具模块
utils/FileExtractor.ts
功能:负责从模组文件中提取信息
方法:
extractModInfo(jarPath: string): Promise<ModInfo>- 参数:
jarPath- 模组JAR文件路径 - 返回值:模组信息对象
- 描述:从JAR文件中提取模组信息
- 参数:
extractManifest(jarPath: string): Promise<any>- 参数:
jarPath- 模组JAR文件路径 - 返回值:模组清单对象
- 描述:从JAR文件中提取模组清单
- 参数:
utils/FileOperator.ts
功能:负责文件操作
方法:
copyFile(source: string, destination: string): Promise<boolean>- 参数:
source- 源文件路径destination- 目标文件路径
- 返回值:是否复制成功
- 描述:复制文件
- 参数:
deleteFile(path: string): Promise<boolean>- 参数:
path- 文件路径 - 返回值:是否删除成功
- 描述:删除文件
- 参数:
createDirectory(path: string): Promise<boolean>- 参数:
path- 目录路径 - 返回值:是否创建成功
- 描述:创建目录
- 参数:
listFiles(path: string): Promise<string[]>- 参数:
path- 目录路径 - 返回值:文件路径数组
- 描述:列出目录中的文件
- 参数:
utils/jar-parser.ts
功能:负责解析JAR文件
方法:
parseJar(jarPath: string): Promise<JarContent>- 参数:
jarPath- JAR文件路径 - 返回值:JAR内容对象
- 描述:解析JAR文件内容
- 参数:
extractFile(jarPath: string, filePath: string, destination: string): Promise<boolean>- 参数:
jarPath- JAR文件路径filePath- JAR内部文件路径destination- 提取目标路径
- 返回值:是否提取成功
- 描述:从JAR文件中提取指定文件
- 参数:
主入口
main.ts
功能:后端应用的主入口
方法:
startServer(): Promise<void>- 参数:无
- 返回值:无
- 描述:启动后端服务器
stopServer(): Promise<void>- 参数:无
- 返回值:无
- 描述:停止后端服务器
getServerStatus(): ServerStatus- 参数:无
- 返回值:服务器状态对象
- 描述:获取服务器状态