@@ -17,12 +17,15 @@ package gg.essential.installer.mod
1717
1818import gg.essential.elementa.state.v2.State
1919import gg.essential.elementa.state.v2.combinators.map
20+ import gg.essential.elementa.state.v2.filter
2021import gg.essential.elementa.state.v2.memo
2122import gg.essential.elementa.state.v2.mutableStateOf
2223import gg.essential.elementa.state.v2.toListState
2324import gg.essential.installer.download.DownloadRequest
25+ import gg.essential.installer.download.util.DownloadInfo
2426import gg.essential.installer.install.InstallSteps
2527import gg.essential.installer.install.installationStep
28+ import gg.essential.installer.isNoModInstallMode
2629import gg.essential.installer.launcher.InstallInfo
2730import gg.essential.installer.logging.Logging.logger
2831import gg.essential.installer.metadata.BRAND
@@ -31,6 +34,7 @@ import gg.essential.installer.metadata.MetadataManager
3134import gg.essential.installer.metadata.VERSION
3235import gg.essential.installer.metadata.data.ModMetadata
3336import gg.essential.installer.minecraft.MCVersion
37+ import gg.essential.installer.modloader.Modloader
3438import gg.essential.installer.modloader.ModloaderType
3539import gg.essential.installer.platform.Platform
3640import kotlinx.serialization.ExperimentalSerializationApi
@@ -68,6 +72,16 @@ object ModManager {
6872
6973 suspend fun loadModVersionsAndMetadata () {
7074 logger.info(" Loading mod versions and metadata!" )
75+
76+ if (isNoModInstallMode()) {
77+ logger.warn(" Running in no mod install mode! This means mod versions will not actually be loaded!" )
78+ MCVersion .refreshKnownMcVersions() // Hack, since this is otherwise refreshed after this method...
79+ val version = ModVersion (" " , " " , DownloadInfo (" " , " " , true ))
80+ val map = Modloader .entries.associate { it.type to ModVersions (version, null , listOf (version)) }
81+ availableVersions.set(MCVersion .knownVersions.filter { it >= MCVersion (8 , 9 ) }.getUntracked().associateWith { map })
82+ return
83+ }
84+
7185 val dataProviders = MetadataManager .dataProviders
7286
7387 logger.debug(" Version provider: {}" , dataProviders.modVersionProviderStrategy)
@@ -189,6 +203,9 @@ object ModManager {
189203
190204 @OptIn(ExperimentalSerializationApi ::class )
191205 fun getInstallSteps (installInfo : InstallInfo ): InstallSteps {
206+ if (isNoModInstallMode()) {
207+ return InstallSteps ()
208+ }
192209 val modVersion = installInfo.modVersion
193210 val downloadInfo = modVersion.downloadInfo
194211 val filename = if (modVersion.version.isBlank()) " $BRAND -${installInfo.mcVersion} .jar" else " $BRAND -${modVersion.version} -${installInfo.mcVersion} .jar"
0 commit comments