Перейти к содержимому

EnvironmentDetector (API)

EnvironmentDetector — это лёгкий Fabric API, который автоматически определяет информацию о лаунчере, платформе, модпаке, загрузчике и окружении через простую систему плейсхолдеров и API для разработчиков.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
306
Подписчиков на Modrinth
0
версия
1
Обновлён
29 мая 202629 мая
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 1 модам. Скачайте её, если этого требует другой мод.

Коротко о моде

Библиотека — нужна другим модам: её требуют 1
Работает на Fabric
Для Minecraft 1.21–1.21.11
Ставится только в игру; на сервер ставить не нужно
Последняя версия — 1.0 от 29 мая 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры1.21–1.21.11
Описание переведено автоматическиПоказать оригинал (EN)

Join DC [middle small]

EnvironmentDetector API

Лёгкий и безопасный API для определения окружения Minecraft для 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 в основном полагается на:

  • API Fabric Loader
  • проверки файловой системы
  • анализ во время выполнения API НЕ вносит глубоких изменений во внутренности Minecraft и избегает сложных миксинов для логики определения. Благодаря этому проект можно портировать и на старые версии, например:
  • 1.20.1
  • 1.19.4 с минимальными правками:
  • понижение целевой версии Java с 21 → 17
  • корректировка fabric.mod.json
  • пересборка проекта

Поддерживаемые загрузчики модов

Fabric

✅ Полная нативная поддержка (Основная целевая платформа)

Quilt

✅ Полная нативная поддержка Quilt нативно поддерживает моды Fabric, и EnvironmentDetector включает отдельную логику определения Quilt. Это значит, что в логах будет корректно отображаться:

Loader=Quilt

вместо Fabric при работе на Quilt.

NeoForge / Forge

⚡ Нативно не поддерживается EnvironmentDetector — в первую очередь мод для Fabric. Однако мод корректно работает через слои совместимости, такие как:

  • Sinytra Connector
  • реализации Fabric Connector При использовании через эти слои API может даже определить, что окружение работает на:
  • Forge
  • NeoForge

Технические требования

Версия Java

  • Для Minecraft 1.20.5+ требуется Java 21

Fabric Loader

  • Fabric Loader 0.16.0+

Обзор совместимости

ФункцияСтатус
Minecraft 1.21.x✅ Оптимизировано и протестировано
Fabric✅ Нативная поддержка
Quilt✅ Нативная поддержка
NeoForge / Forge⚡ Только через Connector
Выделенный сервер✅ Полностью совместимо
Java 21🛠️ Требуется

🧠 Высокоточная система определения

В отличие от многих других модов, EnvironmentDetector НЕ полагается только на имена процессов. Вместо этого он использует:

  • проверку на основе файлов
  • рекурсивное сканирование директорий
  • проверку метаданных лаунчера
  • анализ classpath
  • анализ окружения во время выполнения Это позволяет избежать ложных срабатываний и дублирующихся определений. Пример: Другие моды могут просто искать "Modrinth" в системе. EnvironmentDetector же использует более продвинутую систему определения на основе среды выполнения.

1. Сканирование аргументов JVM

API сканирует аргументы запуска Minecraft (та же информация, что обычно видна в логах и параметрах запуска). Если слово:

modrinth

встречается в аргументах JVM, путях запуска или параметрах среды выполнения, лаунчер автоматически определяется как:

Modrinth App

Это работает надёжно, потому что лаунчер Modrinth обычно добавляет пути или идентификаторы, связанные с Modrinth, в среду выполнения Minecraft.

2. Ручная настройка как запасной вариант

При первом запуске EnvironmentDetector автоматически создаёт:

config/environmentdetector.properties

В этом файле можно вручную задать свои значения:

manual_pack_name=Your Modpack Name
manual_launcher_name=Your Custom Launcher

Если эти значения заданы, они всегда имеют наивысший приоритет и переопределяют автоматическое определение. Это позволяет надёжно работать с API:

  • кастомным лаунчерам
  • приватным модпакам
  • неподдерживаемым лаунчерам
  • средам разработки
  • портативным сборкам

🔍 Логика определения

API сканирует несколько уровней директорий для определения структур лаунчеров.

Поддерживаемые маркеры

Modrinth App

  • Анализ JVM во время выполнения
  • Анализ аргументов запуска
  • Опциональная проверка метаданных

CurseForge

  • CURSEFORGE_INSTANCE_NAME
  • minecraftinstance.json
  • .curseclient

Feather Client

  • feather
  • feather-core
  • .feather

NoRisk Client

  • norisk.config
  • Mod ID: norisk

GDLauncher

  • gd-launcher.json
  • gdlauncher.json

Prism Launcher / MultiMC

  • prism.config
  • prism.json
  • multimc.cfg

ATLauncher

  • instance.json
  • atlauncher.json

Lunar / Badlion

Анализ ключевых слов в classpath:

  • lunar
  • badlion

Официальный лаунчер

  • 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:VERSION"
}

Замените VERSION на последний релиз.

💻 Пример использования

public String getLauncherName() {
    if (FabricLoader.getInstance().isModLoaded("environmentdetector")) {
        return de.felixfgf.environmentdetector.EnvironmentDetectorAPI
                .getEnvironment()
                .launcher();
    }

    return "Vanilla";
}

⚠ Рекомендации

Всегда используйте опциональную интеграцию

НЕ делайте жёсткую зависимость от EnvironmentDetector. Всегда проверяйте:

FabricLoader.getInstance().isModLoaded("environmentdetector")

перед использованием API.

🚫 Частые ошибки

Неправильный пакет

Правильный пакет:

de.felixfgf.environmentdetector

НЕ:

de.felixfgf.environmentdetector.api

Отсутствие проверки modLoaded

Прямой доступ к API без проверки наличия мода может привести к крашу других модов.

Использование плейсхолдеров каждый кадр

Не обрабатывайте плейсхолдеры каждый кадр отрисовки. Кэшируйте значения при открытии меню или HUD.

🐛 Баг-репорты и поддержка

Нашли баг или проблему с определением? Пожалуйста, сообщите:

  • используемый лаунчер
  • версию Minecraft
  • загрузчик
  • latest.log
  • вывод определённого окружения Присоединяйтесь к Discord-серверу для поддержки, баг-репортов и обсуждения API: Join DC [middle small]

🎯 Цели

  • Максимальная прозрачность окружения
  • Надёжное определение лаунчера
  • Высокая совместимость
  • Настройка без конфигурации
  • Безопасная интеграция без крашей
  • Лёгкая архитектура EnvironmentDetector создан, чтобы стать стандартным API окружения для современных экосистем лаунчеров Minecraft 🚀

Частые вопросы

Как установить EnvironmentDetector (API)?

Установите Fabric под свою версию Minecraft, скачайте EnvironmentDetector (API) под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть EnvironmentDetector (API)?

У EnvironmentDetector (API) есть сборки для Minecraft 1.21–1.21.11.

Нужен ли EnvironmentDetector (API) на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее