package net.knarcraft.blacksmith.config; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * An interface describing an object for managing settings * * @param

The type of setting managed

*/ public interface Settings { /** * Changes the value of the given setting * * @param setting

The setting to change

* @param newValue

The new value of the setting

*/ void changeValue(@NotNull K setting, @Nullable Object newValue); /** * Gets the current raw value of the given global setting * * @param setting

The setting to get

* @return

The current raw setting value

*/ @NotNull Object getRawValue(@NotNull K setting); }