Configuration Format¶
SpongeAPI offers support to serialize text directly to a Configurate configuration file through the use of the
TypeToken
class. Text objects are saved using the same node structure as the Text
’s
JSON Format, but in a more flexible format called Human-Optimized Config Object Notation (HOCON).
Tip
For information on how to use Configurate to create configuration files for your plugin, please refer to Configuring Plugins.
For example, the text "Hello World!"
, formatted with the color red and an underline, would have the following HOCON
representation:
{
underlined=true
color=red
text="Hello World!"
}
To save a Text
object simply set the value of your desired node using the following code:
import com.google.common.reflect.TypeToken;
import ninja.leaping.configurate.ConfigurationNode;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;
import org.spongepowered.api.text.format.TextStyles;
ConfigurationNode node = loader.load();
Text text = Text.of(TextColors.RED, TextStyles.UNDERLINE, "Hello World!");
node.getNode("mytext").setValue(TypeToken.of(Text.class), text);
loader.save(node);
You can then load a Text
object using the following code:
Text text = node.getNode("mytext").getValue(TypeToken.of(Text.class));
Note
This strategy is not limited to HoconConfigurationLoader; any ConfigurationLoader will suffice.