Skip to content

Commit 7db0de7

Browse files
authored
Add isInitialized method to configuration classes and update version (#368)
2 parents a68d724 + 4ec0dd8 commit 7db0de7

5 files changed

Lines changed: 37 additions & 17 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=25
88
mcVersion=26.1.2
99
group=dev.slne.surf.api
10-
version=3.18.0
10+
version=3.19.0
1111
relocationPrefix=dev.slne.surf.api.libs
1212
snapshot=false

surf-api-core/surf-api-core/api/surf-api-core.api

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ public abstract class dev/slne/surf/api/core/config/SpongeConfigClass {
150150
public abstract fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager;
151151
protected final fun getMigrationBuilder ()Ldev/slne/surf/api/core/config/migration/ConfigMigrationBuilder;
152152
public final fun init ()V
153+
public abstract fun isInitialized ()Z
153154
protected final fun migration (ILdev/slne/surf/api/core/config/migration/ConfigMigration;)V
154155
protected final fun migration (ILkotlin/jvm/functions/Function1;)V
155156
public final fun reloadFromFile ()Ljava/lang/Object;
@@ -159,12 +160,14 @@ public abstract class dev/slne/surf/api/core/config/SpongeConfigClass {
159160

160161
public abstract class dev/slne/surf/api/core/config/SpongeJsonConfigClass : dev/slne/surf/api/core/config/SpongeConfigClass {
161162
public fun <init> (Ljava/lang/Class;Ljava/nio/file/Path;Ljava/lang/String;)V
162-
public fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager;
163+
public final fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager;
164+
public final fun isInitialized ()Z
163165
}
164166

165167
public abstract class dev/slne/surf/api/core/config/SpongeYmlConfigClass : dev/slne/surf/api/core/config/SpongeConfigClass {
166168
public fun <init> (Ljava/lang/Class;Ljava/nio/file/Path;Ljava/lang/String;)V
167-
public fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager;
169+
public final fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager;
170+
public final fun isInitialized ()Z
168171
}
169172

170173
public abstract interface class dev/slne/surf/api/core/config/SurfConfigApi {

surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeConfigClass.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ sealed class SpongeConfigClass<C>(
7878
*/
7979
abstract val manager: SpongeConfigManager<C>
8080

81+
/**
82+
* Whether the config has been initialized and loaded from disk.
83+
*/
84+
abstract fun isInitialized(): Boolean
85+
8186
/**
8287
* Registers a migration for the given target [version].
8388
*

surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeJsonConfigClass.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,24 @@ abstract class SpongeJsonConfigClass<C>(
3333
configClass: Class<C>, configFolder: Path, fileName: String
3434
) : SpongeConfigClass<C>(configClass, configFolder, fileName) {
3535

36-
/**
37-
* JSON-backed configuration manager for this config type.
38-
*
39-
* The manager is created using [SurfConfigApi.createSpongeJsonConfigManager]
40-
* with [configClass], [configFolder], [fileName] and [migrationBuilder].
41-
*/
42-
override val manager by lazy {
36+
private val managerLazy = lazy {
4337
surfConfigApi.createSpongeJsonConfigManager(
4438
configClass,
4539
configFolder,
4640
fileName,
4741
migrationBuilder
4842
)
4943
}
44+
45+
/**
46+
* JSON-backed configuration manager for this config type.
47+
*
48+
* The manager is created using [SurfConfigApi.createSpongeJsonConfigManager]
49+
* with [configClass], [configFolder], [fileName] and [migrationBuilder].
50+
*/
51+
final override val manager by managerLazy
52+
53+
final override fun isInitialized(): Boolean {
54+
return managerLazy.isInitialized()
55+
}
5056
}

surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeYmlConfigClass.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,24 @@ abstract class SpongeYmlConfigClass<C>(
3333
configClass: Class<C>, configFolder: Path, fileName: String
3434
) : SpongeConfigClass<C>(configClass, configFolder, fileName) {
3535

36-
/**
37-
* YAML-backed configuration manager for this config type.
38-
*
39-
* The manager is created using [SurfConfigApi.createSpongeYmlConfigManager]
40-
* with [configClass], [configFolder], [fileName] and [migrationBuilder].
41-
*/
42-
override val manager by lazy {
36+
private val managerLazy = lazy {
4337
surfConfigApi.createSpongeYmlConfigManager(
4438
configClass,
4539
configFolder,
4640
fileName,
4741
migrationBuilder
4842
)
4943
}
44+
45+
/**
46+
* YAML-backed configuration manager for this config type.
47+
*
48+
* The manager is created using [SurfConfigApi.createSpongeYmlConfigManager]
49+
* with [configClass], [configFolder], [fileName] and [migrationBuilder].
50+
*/
51+
final override val manager by managerLazy
52+
53+
final override fun isInitialized(): Boolean {
54+
return managerLazy.isInitialized()
55+
}
5056
}

0 commit comments

Comments
 (0)