Use DaisyConfig with DaisyCore
Use DaisyConfig with DaisyCore
Section titled “Use DaisyConfig with DaisyCore”Guide
Keep YAML ownership in DaisyConfig and keep viewer-aware rendering in DaisyCore.
1
Treat DaisyConfig as the storage layer
DaisyConfig owns typed YAML values, managed file lifecycle, reload-safe handles, and config-backed text storage. It does not become a second rendering runtime.
2
Install a simple DaisyConfig text source into DaisyCore
Requires DaisyConfig
val langHandle = yamlTextConfigHandle(plugin, "lang.yml")
val daisy = DaisyPlatform.create(plugin) { messages(langHandle.current.asDaisyTextSource()) commands() menus() scoreboards() tablists() } 3
Use module text sources when lang and settings already move together
val registry = DaisyModules.load(plugin) { module( DaisyModuleDefinition( category = "commands", module = "spawn", settings = spawnSettingsFile, lang = spawnLangFile, ), ) }
val spawn = registry.require<SpawnSettings>("commands", "spawn")
val daisy = DaisyPlatform.create(plugin) { messages(spawn.textSource) commands() menus() scoreboards() tablists() } 4
Keep MiniMessage parsing and placeholders inside DaisyCore
Even when the text comes from a managed lang file or module bundle, DaisyCore still owns MiniMessage parsing, viewer-aware rendering, PlaceholderAPI integration, and fallback behavior.
5
Use config-backed text only when you need shared wording
val profileHandle = yamlConfigHandle("profile-ui.yml", profileUiCodec)val langHandle = yamlTextConfigHandle(plugin, "lang.yml")
val daisy = DaisyPlatform.create(plugin) { messages(langHandle.current.asDaisyTextSource()) commands() menus() scoreboards() tablists() }
val sidebar = sidebar { title(profileHandle.current.sidebarTitle) line("coins") { textLang("profile.sidebar.coins", viewer = player, "coins" to "1,250") } }You’ve separated storage from rendering
Managed YAML and module bundles do not turn DaisyConfig into a rendering system. Next read Safe Placeholder-Aware Text or jump to Text Bridge for the low-level integration details.