Skip to content

Commit 17d911b

Browse files
committed
Fixed loader version detection, config issues and added icon
1 parent 0f89aa0 commit 17d911b

File tree

4 files changed

+45
-15
lines changed

4 files changed

+45
-15
lines changed

src/main/kotlin/com/lambda/loader/LoaderVersionController.kt

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,41 @@ class LoaderVersionController(
3737
override fun getReleaseMode(): ReleaseMode = ConfigManager.config.loaderReleaseMode
3838

3939
/**
40-
* Get the current loader version from the manifest or build properties.
40+
* Get the current loader version from the Fabric mod metadata.
4141
* This can be used to check if an update is available.
4242
*/
4343
fun getCurrentLoaderVersion(): String? {
4444
return try {
45-
// Try to read version from package implementation version
45+
// Try to read from Fabric mod container
46+
val fabricLoader = net.fabricmc.loader.api.FabricLoader.getInstance()
47+
val loaderMod = fabricLoader.getModContainer("lambda-loader")
48+
49+
if (loaderMod.isPresent) {
50+
val version = loaderMod.get().metadata.version.friendlyString
51+
if (com.lambda.loader.config.ConfigManager.config.debug) {
52+
logger.info("Current loader version: $version")
53+
}
54+
return version
55+
}
56+
57+
// Fallback: try package implementation version
4658
val version = this::class.java.`package`?.implementationVersion
4759
if (version != null) {
48-
logger.info("Current loader version: $version")
60+
if (ConfigManager.config.debug) {
61+
logger.info("Current loader version (from package): $version")
62+
}
4963
return version
5064
}
5165

52-
// Alternative: read from a properties file
53-
val props = this::class.java.classLoader.getResourceAsStream("loader.properties")
54-
if (props != null) {
55-
val properties = java.util.Properties()
56-
properties.load(props)
57-
return properties.getProperty("version")
66+
if (ConfigManager.config.debug) {
67+
logger.warning("Could not determine current loader version")
5868
}
59-
60-
logger.warning("Could not determine current loader version")
6169
null
6270
} catch (e: Exception) {
63-
logger.warning("Error reading loader version: ${e.message}")
71+
if (ConfigManager.config.debug) {
72+
logger.warning("Error reading loader version: ${e.message}")
73+
e.printStackTrace()
74+
}
6475
null
6576
}
6677
}

src/main/kotlin/com/lambda/loader/config/ConfigManager.kt

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,27 @@ object ConfigManager {
1414

1515
private fun loadConfig(): Config {
1616
return if (configFile.exists()) {
17-
val json = configFile.readText()
18-
gson.fromJson(json, Config::class.java)
17+
try {
18+
val json = configFile.readText()
19+
val loadedConfig = gson.fromJson(json, Config::class.java)
20+
21+
// Merge with defaults to handle new fields
22+
val defaultConfig = Config()
23+
val mergedConfig = Config(
24+
clientReleaseMode = loadedConfig?.clientReleaseMode ?: defaultConfig.clientReleaseMode,
25+
loaderReleaseMode = loadedConfig?.loaderReleaseMode ?: defaultConfig.loaderReleaseMode,
26+
debug = loadedConfig?.debug ?: defaultConfig.debug
27+
)
28+
29+
// Save merged config to add any new fields
30+
saveConfig(mergedConfig)
31+
mergedConfig
32+
} catch (e: Exception) {
33+
// If parsing fails, use defaults
34+
val defaultConfig = Config()
35+
saveConfig(defaultConfig)
36+
defaultConfig
37+
}
1938
} else {
2039
val defaultConfig = Config()
2140
saveConfig(defaultConfig)
37.8 KB
Loading

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"contact": {},
1010

1111
"license": "GPL-3.0",
12-
"icon": "assets/lambda-loader/icon.png",
12+
"icon": "assets/lambda-loader/textures/lambda.png",
1313

1414
"environment": "client",
1515
"entrypoints": {

0 commit comments

Comments
 (0)