Displays descriptions for each setting when displaying the value
This commit is contained in:
@ -5,6 +5,9 @@ import net.knarcraft.blacksmith.config.SettingValueType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* An enum representing all scrapper-related settings
|
||||
*/
|
||||
public enum ScrapperSetting implements Setting {
|
||||
|
||||
/**
|
||||
@ -12,38 +15,45 @@ public enum ScrapperSetting implements Setting {
|
||||
*
|
||||
* <p>If set to false, the item will be directly put in the player's inventory instead</p>
|
||||
*/
|
||||
DROP_ITEM("dropItem", SettingValueType.BOOLEAN, true, "dropItem",
|
||||
true, false),
|
||||
DROP_ITEM("dropItem", SettingValueType.BOOLEAN, true, "dropItem", "Whether the " +
|
||||
"item will drop materials resulting from scrapping on the ground, instead of putting them into the user's" +
|
||||
" inventory", true, false),
|
||||
|
||||
/**
|
||||
* The chance of a scrapper returning no salvage, regardless of item condition
|
||||
*/
|
||||
FAIL_SALVAGE_CHANCE("failSalvageChance", SettingValueType.POSITIVE_DOUBLE, 0,
|
||||
"failSalvageChance", true, false),
|
||||
"failSalvageChance", "The chance to fail a salvage, thus destroying the item (0-100)",
|
||||
true, false),
|
||||
|
||||
/**
|
||||
* The setting for which items a scrapper is able to salvage
|
||||
*/
|
||||
SALVAGE_ABLE_ITEMS("salvageAbleItems", SettingValueType.REFORGE_ABLE_ITEMS, "",
|
||||
"salvageAbleItems", true, false),
|
||||
"salvageAbleItems", "The items a blacksmith is able to salvage. Setting this only " +
|
||||
"allows NPCs to repair the listed items. This should be set for each individual NPC, and should not be " +
|
||||
"set here, unless you want to restrict NPCs which have not been set up yet", true, false),
|
||||
|
||||
/**
|
||||
* The maximum amount of seconds a player may need to wait for the reforging to finish
|
||||
*/
|
||||
MAX_SALVAGE_DELAY("delaysInSeconds.maximum", SettingValueType.POSITIVE_INTEGER, 30,
|
||||
"maxReforgeDelay", true, false),
|
||||
"maxReforgeDelay", "The maximum time for a salvaging to finish",
|
||||
true, false),
|
||||
|
||||
/**
|
||||
* The minimum amount of seconds a player may need to wait for the reforging to finish
|
||||
*/
|
||||
MIN_SALVAGE_DELAY("delaysInSeconds.minimum", SettingValueType.POSITIVE_INTEGER, 5,
|
||||
"minReforgeDelay", true, false),
|
||||
"minReforgeDelay", "The minimum time for a salvaging to finish",
|
||||
true, false),
|
||||
|
||||
/**
|
||||
* The setting for number of seconds a player has to wait between each usage of the blacksmith
|
||||
*/
|
||||
SALVAGE_COOL_DOWN("delaysInSeconds.reforgeCoolDown", SettingValueType.POSITIVE_INTEGER, 60,
|
||||
"reforgeCoolDown", true, false),
|
||||
SALVAGE_COOL_DOWN("delaysInSeconds.salvageCoolDown", SettingValueType.POSITIVE_INTEGER, 60,
|
||||
"salvageCoolDown", "The cool-down period between each salvage",
|
||||
true, false),
|
||||
|
||||
/*-----------
|
||||
| Messages |
|
||||
@ -54,13 +64,14 @@ public enum ScrapperSetting implements Setting {
|
||||
*/
|
||||
BUSY_WITH_PLAYER_MESSAGE("messages.busyPlayerMessage", SettingValueType.STRING,
|
||||
"&cI'm busy at the moment. Come back later!", "busyPlayerMessage",
|
||||
true, true),
|
||||
"The message to display when another player is using the scrapper", true, true),
|
||||
|
||||
/**
|
||||
* The message displayed when the scrapper is busy salvaging the player's item
|
||||
*/
|
||||
BUSY_WITH_SALVAGE_MESSAGE("messages.busySalvageMessage", SettingValueType.STRING,
|
||||
"&cI'm working on it. Be patient! I'll finish {time}!", "busySalvageMessage",
|
||||
"The message to display when the blacksmith is working on the salvaging",
|
||||
true, true),
|
||||
|
||||
/**
|
||||
@ -68,39 +79,45 @@ public enum ScrapperSetting implements Setting {
|
||||
*/
|
||||
COOL_DOWN_UNEXPIRED_MESSAGE("messages.coolDownUnexpiredMessage", SettingValueType.STRING,
|
||||
"&cYou've already had your chance! Give me a break! I'll be ready {time}!",
|
||||
"coolDownUnexpiredMessage", true, true),
|
||||
"coolDownUnexpiredMessage", "The message to display when the blacksmith is still " +
|
||||
"on a cool-down from the previous re-forging", true, true),
|
||||
|
||||
/**
|
||||
* The message displayed if presented with an item that cannot be salvaged by the NPC
|
||||
*/
|
||||
CANNOT_SALVAGE_MESSAGE("messages.cannotSalvageMessage", SettingValueType.STRING,
|
||||
"&cI'm unable to salvage that item", "cannotSalvageMessage", true, true),
|
||||
"&cI'm unable to salvage that item", "cannotSalvageMessage", "The message to " +
|
||||
"display if the player tries to salvage an item the blacksmith cannot salvage", true, true),
|
||||
|
||||
/**
|
||||
* The message displayed if salvaging an item would return in no items
|
||||
*/
|
||||
TOO_DAMAGED_FOR_SALVAGE_MESSAGE("messages.tooDamagedForSalvageMessage", SettingValueType.STRING,
|
||||
"&cThat item is too damaged to be salvaged into anything useful",
|
||||
"tooDamagedForSalvageMessage", true, true),
|
||||
"tooDamagedForSalvageMessage", "The message to display if reforging the player's " +
|
||||
"item would result in no salvage", true, true),
|
||||
|
||||
/**
|
||||
* The message displayed if a salvage is successful
|
||||
*/
|
||||
SUCCESS_SALVAGE_MESSAGE("messages.successSalvagedMessage", SettingValueType.STRING, "&cThere you go!",
|
||||
"successSalvagedMessage", true, true),
|
||||
"successSalvagedMessage", "The message to display when an item is successfully " +
|
||||
"salvaged", true, true),
|
||||
|
||||
/**
|
||||
* The message displayed if a player presents a different item after seeing the price to reforge an item
|
||||
*/
|
||||
ITEM_UNEXPECTEDLY_CHANGED_MESSAGE("messages.itemChangedMessage", SettingValueType.STRING,
|
||||
"&cThat's not the item you wanted to reforge before!", "itemChangedMessage",
|
||||
"The message to display when presenting a different item than the one just evaluated",
|
||||
true, true),
|
||||
|
||||
/**
|
||||
* The message displayed when the scrapper starts salvaging an item
|
||||
*/
|
||||
START_SALVAGE_MESSAGE("messages.startSalvageMessage", SettingValueType.STRING,
|
||||
"&eOk, let's see what I can do...", "startSalvageMessage", true, true),
|
||||
"&eOk, let's see what I can do...", "startSalvageMessage", "The message to " +
|
||||
"display once the blacksmith starts re-forging", true, true),
|
||||
|
||||
/*------------------
|
||||
| Global settings |
|
||||
@ -109,14 +126,17 @@ public enum ScrapperSetting implements Setting {
|
||||
/**
|
||||
* Whether to display exact time in minutes and seconds when displaying a remaining cool-down
|
||||
*/
|
||||
SHOW_EXACT_TIME("scrapper.global.showExactTime", SettingValueType.BOOLEAN, "false",
|
||||
"showExactTime", false, false),
|
||||
SHOW_EXACT_TIME("showExactTime", SettingValueType.BOOLEAN, "false",
|
||||
"showExactTime", "Exact time displays the exact number of seconds and minutes " +
|
||||
"remaining as part of the scrapping cool-down and scrapping delay messages, instead of just vaguely " +
|
||||
"hinting at the remaining time.", false, false),
|
||||
|
||||
/**
|
||||
* Whether to give experience back when salvaging an enchanted item
|
||||
*/
|
||||
GIVE_EXPERIENCE("scrapper.global.giveExperience", SettingValueType.BOOLEAN, "true",
|
||||
"giveExperience", false, false),
|
||||
GIVE_EXPERIENCE("giveExperience", SettingValueType.BOOLEAN, "true", "giveExperience",
|
||||
"Whether enchanted salvaged items should return some amount of exp upon salvage",
|
||||
false, false),
|
||||
;
|
||||
|
||||
private final String path;
|
||||
@ -124,6 +144,7 @@ public enum ScrapperSetting implements Setting {
|
||||
private final Object value;
|
||||
private final String commandName;
|
||||
private final SettingValueType valueType;
|
||||
private final String description;
|
||||
private final boolean isPerNPC;
|
||||
private final boolean isMessage;
|
||||
|
||||
@ -134,11 +155,12 @@ public enum ScrapperSetting implements Setting {
|
||||
* @param valueType <p>The type of value used by this setting</p>
|
||||
* @param value <p>The default value of this setting</p>
|
||||
* @param commandName <p>The name of the command used to change this setting</p>
|
||||
* @param description <p>The description describing this setting</p>
|
||||
* @param isPerNPC <p>Whether this setting is per-NPC or global</p>
|
||||
* @param isMessage <p>Whether this option is for an NPC message</p>
|
||||
*/
|
||||
ScrapperSetting(String path, SettingValueType valueType, Object value, String commandName, boolean isPerNPC,
|
||||
boolean isMessage) {
|
||||
ScrapperSetting(String path, SettingValueType valueType, Object value, String commandName,
|
||||
@NotNull String description, boolean isPerNPC, boolean isMessage) {
|
||||
if (isPerNPC) {
|
||||
this.path = "scrapper.defaults." + path;
|
||||
} else {
|
||||
@ -148,6 +170,7 @@ public enum ScrapperSetting implements Setting {
|
||||
this.valueType = valueType;
|
||||
this.childPath = path;
|
||||
this.commandName = commandName;
|
||||
this.description = description;
|
||||
this.isPerNPC = isPerNPC;
|
||||
this.isMessage = isMessage;
|
||||
}
|
||||
@ -177,6 +200,11 @@ public enum ScrapperSetting implements Setting {
|
||||
return this.valueType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDescription() {
|
||||
return this.description;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPerNPC() {
|
||||
return this.isPerNPC;
|
||||
|
Reference in New Issue
Block a user