diff --git a/gradle.properties b/gradle.properties index 74ecc98a..2fb28085 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled javaVersion=25 mcVersion=26.1.2 group=dev.slne.surf.api -version=3.18.0 +version=3.19.0 relocationPrefix=dev.slne.surf.api.libs snapshot=false diff --git a/surf-api-core/surf-api-core/api/surf-api-core.api b/surf-api-core/surf-api-core/api/surf-api-core.api index 990b536d..ef6c3960 100644 --- a/surf-api-core/surf-api-core/api/surf-api-core.api +++ b/surf-api-core/surf-api-core/api/surf-api-core.api @@ -150,6 +150,7 @@ public abstract class dev/slne/surf/api/core/config/SpongeConfigClass { public abstract fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager; protected final fun getMigrationBuilder ()Ldev/slne/surf/api/core/config/migration/ConfigMigrationBuilder; public final fun init ()V + public abstract fun isInitialized ()Z protected final fun migration (ILdev/slne/surf/api/core/config/migration/ConfigMigration;)V protected final fun migration (ILkotlin/jvm/functions/Function1;)V public final fun reloadFromFile ()Ljava/lang/Object; @@ -159,12 +160,14 @@ public abstract class dev/slne/surf/api/core/config/SpongeConfigClass { public abstract class dev/slne/surf/api/core/config/SpongeJsonConfigClass : dev/slne/surf/api/core/config/SpongeConfigClass { public fun (Ljava/lang/Class;Ljava/nio/file/Path;Ljava/lang/String;)V - public fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager; + public final fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager; + public final fun isInitialized ()Z } public abstract class dev/slne/surf/api/core/config/SpongeYmlConfigClass : dev/slne/surf/api/core/config/SpongeConfigClass { public fun (Ljava/lang/Class;Ljava/nio/file/Path;Ljava/lang/String;)V - public fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager; + public final fun getManager ()Ldev/slne/surf/api/core/config/manager/SpongeConfigManager; + public final fun isInitialized ()Z } public abstract interface class dev/slne/surf/api/core/config/SurfConfigApi { diff --git a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeConfigClass.kt b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeConfigClass.kt index af528315..4bed8ac6 100644 --- a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeConfigClass.kt +++ b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeConfigClass.kt @@ -78,6 +78,11 @@ sealed class SpongeConfigClass( */ abstract val manager: SpongeConfigManager + /** + * Whether the config has been initialized and loaded from disk. + */ + abstract fun isInitialized(): Boolean + /** * Registers a migration for the given target [version]. * diff --git a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeJsonConfigClass.kt b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeJsonConfigClass.kt index 7812f9e6..909faf1d 100644 --- a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeJsonConfigClass.kt +++ b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeJsonConfigClass.kt @@ -33,13 +33,7 @@ abstract class SpongeJsonConfigClass( configClass: Class, configFolder: Path, fileName: String ) : SpongeConfigClass(configClass, configFolder, fileName) { - /** - * JSON-backed configuration manager for this config type. - * - * The manager is created using [SurfConfigApi.createSpongeJsonConfigManager] - * with [configClass], [configFolder], [fileName] and [migrationBuilder]. - */ - override val manager by lazy { + private val managerLazy = lazy { surfConfigApi.createSpongeJsonConfigManager( configClass, configFolder, @@ -47,4 +41,16 @@ abstract class SpongeJsonConfigClass( migrationBuilder ) } + + /** + * JSON-backed configuration manager for this config type. + * + * The manager is created using [SurfConfigApi.createSpongeJsonConfigManager] + * with [configClass], [configFolder], [fileName] and [migrationBuilder]. + */ + final override val manager by managerLazy + + final override fun isInitialized(): Boolean { + return managerLazy.isInitialized() + } } \ No newline at end of file diff --git a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeYmlConfigClass.kt b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeYmlConfigClass.kt index bd87603a..6555d45d 100644 --- a/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeYmlConfigClass.kt +++ b/surf-api-core/surf-api-core/src/main/kotlin/dev/slne/surf/api/core/config/SpongeYmlConfigClass.kt @@ -33,13 +33,7 @@ abstract class SpongeYmlConfigClass( configClass: Class, configFolder: Path, fileName: String ) : SpongeConfigClass(configClass, configFolder, fileName) { - /** - * YAML-backed configuration manager for this config type. - * - * The manager is created using [SurfConfigApi.createSpongeYmlConfigManager] - * with [configClass], [configFolder], [fileName] and [migrationBuilder]. - */ - override val manager by lazy { + private val managerLazy = lazy { surfConfigApi.createSpongeYmlConfigManager( configClass, configFolder, @@ -47,4 +41,16 @@ abstract class SpongeYmlConfigClass( migrationBuilder ) } + + /** + * YAML-backed configuration manager for this config type. + * + * The manager is created using [SurfConfigApi.createSpongeYmlConfigManager] + * with [configClass], [configFolder], [fileName] and [migrationBuilder]. + */ + final override val manager by managerLazy + + final override fun isInitialized(): Boolean { + return managerLazy.isInitialized() + } } \ No newline at end of file