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 * * @return

The config path without the root node

*/ @NotNull String getChildPath(); /** * Gets the value of this setting * * @return

The value of this setting

*/ @NotNull Object getDefaultValue(); /** * The name of the command used to change this setting * * @return

The name of this setting's command

*/ @NotNull String getCommandName(); /** * Gets the value type for this setting * * @return

The value type for this setting

*/ @NotNull SettingValueType getValueType(); /** * Gets the description explaining the usage of this setting * * @return

This setting's description

*/ @NotNull String getDescription(); /** * Gets whether this setting can be set per-NPC, or if it's set globally * * @return

True 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.

* * @return

True if this setting is a customizable message

*/ boolean isMessage(); }