69 lines
1.6 KiB
Java
69 lines
1.6 KiB
Java
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 <p>The full config path for this setting</p>
|
|
*/
|
|
@NotNull String getPath();
|
|
|
|
/**
|
|
* Gets the config path without the root node
|
|
*
|
|
* @return <p>The config path without the root node</p>
|
|
*/
|
|
@NotNull String getChildPath();
|
|
|
|
/**
|
|
* Gets the value of this setting
|
|
*
|
|
* @return <p>The value of this setting</p>
|
|
*/
|
|
@NotNull Object getDefaultValue();
|
|
|
|
/**
|
|
* The name of the command used to change this setting
|
|
*
|
|
* @return <p>The name of this setting's command</p>
|
|
*/
|
|
@NotNull String getCommandName();
|
|
|
|
/**
|
|
* Gets the value type for this setting
|
|
*
|
|
* @return <p>The value type for this setting</p>
|
|
*/
|
|
@NotNull SettingValueType getValueType();
|
|
|
|
/**
|
|
* Gets the description explaining the usage of this setting
|
|
*
|
|
* @return <p>This setting's description</p>
|
|
*/
|
|
@NotNull String getDescription();
|
|
|
|
/**
|
|
* Gets whether this setting can be set per-NPC, or if it's set globally
|
|
*
|
|
* @return <p>True if this setting is set per-NPC</p>
|
|
*/
|
|
boolean isPerNPC();
|
|
|
|
/**
|
|
* Gets whether this setting is a customizable message
|
|
*
|
|
* <p>Messages are a special case, as you generally want to see the raw formatting, not just the result.</p>
|
|
*
|
|
* @return <p>True if this setting is a customizable message</p>
|
|
*/
|
|
boolean isMessage();
|
|
|
|
}
|