package net.knarcraft.blacksmith.config.scrapper; import net.knarcraft.blacksmith.config.NPCSetting; import net.knarcraft.blacksmith.config.SettingValueType; public enum ScrapperNPCSetting implements NPCSetting { /** * The setting for whether the NPC should drop an item to the ground when finished * *

If set to false, the item will be directly put in the player's inventory instead

*/ DROP_ITEM("dropItem", SettingValueType.BOOLEAN, true, "dropItem"), /** * The chance of a scrapper returning no salvage, regardless of item condition */ FAIL_SALVAGE_CHANCE("failSalvageChance", SettingValueType.POSITIVE_DOUBLE, 0, "failSalvageChance"), /** * The setting for which items a scrapper is able to salvage */ SALVAGE_ABLE_ITEMS("salvageAbleItems", SettingValueType.REFORGE_ABLE_ITEMS, "", "salvageAbleItems"), /*----------- | Messages | -----------*/ /** * The message displayed when the scrapper is busy with another player */ BUSY_WITH_PLAYER_MESSAGE("messages.busyPlayerMessage", SettingValueType.STRING, "&cI'm busy at the moment. Come back later!", "busyPlayerMessage"), ; private final String path; private final String childPath; private final Object value; private final String commandName; private final SettingValueType valueType; /** * Instantiates a new setting * * @param path

The full config path for this setting

* @param valueType

The type of value used by this setting

* @param value

The default value of this setting

* @param commandName

The name of the command used to change this setting

*/ ScrapperNPCSetting(String path, SettingValueType valueType, Object value, String commandName) { this.path = "defaults." + path; this.value = value; this.valueType = valueType; this.childPath = path; this.commandName = commandName; } @Override public String getPath() { return path; } @Override public String getChildPath() { return childPath; } @Override public Object getDefaultValue() { return value; } @Override public String getCommandName() { return commandName; } @Override public SettingValueType getValueType() { return this.valueType; } }