Package dev.oumaimaa.kawaiiapi.config
Class ConfigManager
java.lang.Object
dev.oumaimaa.kawaiiapi.config.ConfigManager
Advanced configuration management system supporting JSON and YAML formats.
Provides automatic serialization/deserialization using Jackson with intelligent caching.
Features:
- Annotation-based configuration
- Automatic backup creation
- Configuration validation
- Hot-reloading support
- Thread-safe caching
- Pretty-printed output
- Version:
- 1.0
- Author:
- KawaiiDevelopment
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumeration of supported configuration file types. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidClears all cached configurations.static voidclearCache(@NotNull Class<?> configClass) Clears the configuration cache for a specific class.static <T> TloadConfig(@NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull Class<T> configClass) Loads a configuration from file, or creates it with default values if it doesn't exist.static <T> TreloadConfig(@NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull Class<T> configClass) Reloads a configuration from file, bypassing the cache.static voidsaveConfig(@NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull Object configObject) Saves a configuration instance to its file.
-
Method Details
-
loadConfig
@NotNull public static <T> T loadConfig(@NotNull @NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull @NotNull Class<T> configClass) Loads a configuration from file, or creates it with default values if it doesn't exist. Results are cached for improved performance on subsequent calls.- Type Parameters:
T- The type of the configuration class- Parameters:
plugin- The plugin instanceconfigClass- The configuration class annotated with @Config- Returns:
- The loaded or newly created configuration instance
- Throws:
IllegalStateException- if the configuration cannot be loaded
-
saveConfig
public static void saveConfig(@NotNull @NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull @NotNull Object configObject) Saves a configuration instance to its file. Automatically creates a backup of the existing file if configured.- Parameters:
plugin- The plugin instanceconfigObject- The configuration instance to save- Throws:
IllegalStateException- if the configuration cannot be saved
-
reloadConfig
@NotNull public static <T> T reloadConfig(@NotNull @NotNull org.bukkit.plugin.java.JavaPlugin plugin, @NotNull @NotNull Class<T> configClass) Reloads a configuration from file, bypassing the cache.- Type Parameters:
T- The type of the configuration class- Parameters:
plugin- The plugin instanceconfigClass- The configuration class- Returns:
- The reloaded configuration instance
-
clearCache
Clears the configuration cache for a specific class.- Parameters:
configClass- The configuration class to clear from cache
-
clearAllCaches
public static void clearAllCaches()Clears all cached configurations.
-