
环境探测器(API)
环境探测器是一个轻量级的Fabric API,它通过简单的占位符和开发者API系统自动检测启动器、平台、整合包、加载器和环境信息。
查看大图EnvironmentDetector API
一个轻量级、防崩溃的 Minecraft 环境检测 API,支持 Fabric、Quilt 和现代整合包启动器。
EnvironmentDetector 可自动识别:
- 启动器
- 整合包实例
- 加载器
- Minecraft 版本
- 特殊客户端环境
本 API 适用于:
- 模组
- 界面 (HUD)
- 占位符系统
- 数据分析
- 兼容层
- 启动器感知集成
✨ 特性
自动启动器检测
EnvironmentDetector 可自动检测:
- Modrinth App
- CurseForge
- GDLauncher
- Prism Launcher
- MultiMC
- ATLauncher
- Feather Client
- NoRisk Client
- Lunar Client
- Badlion Client
- 官方 Minecraft 启动器
无需手动配置。
🧩 兼容性
支持的 Minecraft 版本
主要支持
- Minecraft
1.21.x(1.21、1.21.1、1.21.2等) - 已针对现代 Minecraft 环境进行优化和测试。
项目当前目标:
Java 21- 现代 Fabric Loader 版本
- 当前的启动器生态
向后兼容性
EnvironmentDetector 主要依赖:
- Fabric Loader API
- 文件系统检查
- 运行时分析
本 API 没有深度修改 Minecraft 内部机制,并避免为检测逻辑使用复杂 Mixin。
因此,该项目也可以移植到旧版本,如:
1.20.11.19.4
仅需少量调整:
- 将 Java 目标版本从
21降低到17 - 调整
fabric.mod.json - 重新构建项目
支持的模组加载器
Fabric
✅ 完全原生支持 (主要目标平台)
Quilt
✅ 完全原生支持
Quilt 原生支持 Fabric 模组,并且 EnvironmentDetector 包含专用的 Quilt 检测逻辑。
这意味着日志将正确显示:
Loader=Quilt
而不是在 Quilt 上运行时显示为 Fabric。
NeoForge / Forge
⚡ 不原生支持
EnvironmentDetector 主要是一个 Fabric 模组。
但是,通过诸如 Sinytra Connector 和 Fabric Connector 实现之类的兼容层,该模组可以正常工作。
通过这些兼容层使用时,API 甚至可以检测到环境正在运行:
- Forge
- NeoForge
技术要求
Java 版本
- 对于 Minecraft
1.20.5+,需要 Java21
Fabric Loader
- 需要 Fabric Loader
0.16.0+
兼容性概览
| 特性 | 状态 |
|---|---|
| Minecraft 1.21.x | ✅ 已优化并测试 |
| Fabric | ✅ 原生支持 |
| Quilt | ✅ 原生支持 |
| NeoForge / Forge | ⚡ 仅通过连接器使用 |
| 专用服务器 | ✅ 完全兼容 |
| Java 21 | 🛠️ 必需 |
🧠 高精度检测系统
与许多其他模组不同,EnvironmentDetector 不只依赖进程名。
相反,它使用:
- 基于文件的验证
- 递归目录扫描
- 启动器元数据验证
- 类路径分析
- 运行时环境分析
这避免了误报和重复检测。
示例:
其他模组可能仅仅扫描系统中运行的程序名 "Modrinth"。
EnvironmentDetector 则使用更先进的基于运行时的检测系统。
1. JVM 参数扫描
API 会扫描 Minecraft 启动参数(通常可以在日志和运行时启动参数中看到的相同信息)。
如果单词:
modrinth
出现在 JVM 参数、启动路径或运行时参数中,启动器将自动被检测为:
Modrinth App
这样工作非常可靠,因为 Modrinth 启动器通常会将 Modrinth 相关的路径或标识符注入 Minecraft 运行时环境。
2. 手动配置备用方案
首次启动时,EnvironmentDetector 会自动创建:
config/environmentdetector.properties
在此文件中,可以手动配置自定义值:
manual_pack_name=你的整合包名称
manual_launcher_name=你的自定义启动器
如果设置了这些值,它们将始终拥有最高优先级,并覆盖自动检测。
这允许:
- 自定义启动器
- 私有整合包
- 不受支持的启动器
- 开发环境
- 便携式实例
与 API 可靠地协同工作。
🔍 检测逻辑
API 会扫描多个目录层级以识别启动器结构。
支持的标记
Modrinth App
- 运行时 JVM 分析
- 启动参数分析
- 可选的元数据验证
CurseForge
CURSEFORGE_INSTANCE_NAMEminecraftinstance.json.curseclient
Feather Client
featherfeather-core.feather
NoRisk Client
norisk.config- Mod ID:
norisk
GDLauncher
gd-launcher.jsongdlauncher.json
Prism Launcher / MultiMC
prism.configprism.jsonmultimc.cfg
ATLauncher
instance.jsonatlauncher.json
Lunar / Badlion
类路径关键字分析:
lunarbadlion
官方启动器
launcher_profiles.json
📜 标准化日志记录
初始化后,EnvironmentDetector 会输出统一的日志条目。
示例:
[EnvironmentDetector] Launcher=Modrinth App, Instance=Ultra Survival, NoRisk=false, Loader=Fabric, Version=1.21.1
其他示例:
[EnvironmentDetector] Launcher=CurseForge, Instance=BetterMC, NoRisk=false, Loader=Fabric, Version=1.21.1
[EnvironmentDetector] Launcher=NoRisk Client, Instance=Unknown Pack, NoRisk=true, Loader=Fabric, Version=1.21.1
回退日志:
[EnvironmentDetector] Unknown Environment
⚡ 性能
- 单次启动扫描
- 结果缓存
- 线程安全的内部实现
- 极低开销
- 无后台扫描
EnvironmentDetector 仅在启动时运行一次,之后仅提供缓存数据。
🛠 开发者集成
Gradle 设置
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
filter {
includeGroup "maven.modrinth"
}
}
}
依赖
dependencies {
modImplementation "maven.modrinth:environmentdetector-api:版本号"
}
将 版本号 替换为最新发布版本。
💻 使用示例
public String getLauncherName() {
if (FabricLoader.getInstance().isModLoaded("environmentdetector")) {
return de.felixfgf.environmentdetector.EnvironmentDetectorAPI
.getEnvironment()
.launcher();
}
return "Vanilla";
}
⚠ 最佳实践
始终使用可选集成
不要硬性依赖 EnvironmentDetector。
在使用 API 之前,始终检查:
FabricLoader.getInstance().isModLoaded("environmentdetector")
🚫 常见错误
错误的包路径
正确的包路径:
de.felixfgf.environmentdetector
而不是:
de.felixfgf.environmentdetector.api
缺少 modLoaded 检查
未经检查模组是否存在而直接访问 API 可能会导致其他模组崩溃。
每帧使用占位符
不要每帧解析占位符。 在打开菜单或 HUD 时缓存值。
🐛 Bug 报告与支持
发现了 Bug 或检测问题?
请报告:
- 使用的启动器
- Minecraft 版本
- 加载器
- latest.log 文件
- 检测到的环境输出
加入 Discord 服务器以获取支持、报告 Bug 和讨论 API:
🎯 目标
- 最大环境透明度
- 可靠的启动器识别
- 高兼容性
- 零配置设置
- 防崩溃集成
- 轻量级架构
EnvironmentDetector 旨在成为现代 Minecraft 启动器生态系统的标准环境 API 🚀
正在加载版本记录…
![Join DC [middle small]](https://cdn.modrinth.com/data/cached_images/bfca91ef533789255f946e0c21aa5a6f4925876f_0.webp)
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。