package net.knarcraft.blacksmith.config; import org.jetbrains.annotations.NotNull; /** * An interface describing a setting */ public interface Setting { /** * Gets the full config path for this setting * * @return
The full config path for this setting
*/ @NotNull String getPath(); /** * Gets the config path without the root node * * @returnThe config path without the root node
*/ @NotNull String getChildPath(); /** * Gets the value of this setting * * @returnThe value of this setting
*/ @NotNull Object getDefaultValue(); /** * The name of the command used to change this setting * * @returnThe name of this setting's command
*/ @NotNull String getCommandName(); /** * Gets the value type for this setting * * @returnThe value type for this setting
*/ @NotNull SettingValueType getValueType(); /** * Gets the description explaining the usage of this setting * * @returnThis setting's description
*/ @NotNull String getDescription(); /** * Gets whether this setting can be set per-NPC, or if it's set globally * * @returnTrue if this setting is set per-NPC
*/ boolean isPerNPC(); /** * Gets whether this setting is a customizable message * *Messages are a special case, as you generally want to see the raw formatting, not just the result.
* * @returnTrue if this setting is a customizable message
*/ boolean isMessage(); }