Safe Placeholder-Aware Text
Safe Placeholder-Aware Text
Section titled “Safe Placeholder-Aware Text”This is the locked Daisy ecosystem rule:
- DaisyConfig owns typed config and text-source data
- DaisyCore owns render-time behavior
What that means in practice
Section titled “What that means in practice”DaisyConfig does not:
- call PlaceholderAPI directly
- run a second placeholder engine
- create a second viewer-aware rendering runtime
- turn managed lang files into a second render system
If config-backed text is used in:
- command replies
- menu items
- sidebars
- tablists
then DaisyCore still applies its normal runtime truth:
- MiniMessage parsing
- viewer-aware rendering
- PlaceholderAPI integration
- safe fallback behavior when PlaceholderAPI is absent
Why this is safer
Section titled “Why this is safer”This keeps responsibility boundaries clean:
- config stays data-only
- rendering stays in the runtime layer
- Placeholder-aware behavior does not leak into generic config loading
That is what makes the ecosystem safer and easier to reason about in production.
Example mental model
Section titled “Example mental model”lang.yml -> DaisyConfig loads text -> DaisyCore renders text -> player sees final outputNot:
lang.yml -> DaisyConfig expands placeholders -> DaisyCore re-renders text againThe second model is exactly what Daisy avoids.
Safety boundary
DaisyConfig stores text. DaisyCore renders text. Placeholder-aware behavior belongs to DaisyCore only.
Next steps
Section titled “Next steps”- Learn the bridge APIs: Text Bridge
- See the normal integration path: Use DaisyConfig with DaisyCore
- See the full stack together: Full Ecosystem Example