Repair Config pt 5

This commit is contained in:
nossr50
2019-03-21 23:54:55 -07:00
parent 68b32e0b9e
commit 7aea4e1d92
16 changed files with 381 additions and 141 deletions

View File

@ -48,6 +48,7 @@ import com.gmail.nossr50.datatypes.party.PartyFeature;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.repair.repairables.Repairable;
import com.gmail.nossr50.skills.repair.repairables.SimpleRepairable;
import com.gmail.nossr50.skills.repair.repairables.SimpleRepairableManager;
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
import com.gmail.nossr50.skills.salvage.salvageables.SimpleSalvageableManager;
@ -155,7 +156,7 @@ public final class ConfigManager {
private CoreSkillsConfig coreSkillsConfig;
private SoundConfig soundConfig;
private RankConfig rankConfig;
private RepairConfig repairConfig;
// private RepairConfig repairConfig;
private SalvageConfig salvageConfig;
private HashMap<Material, Integer> partyItemWeights;
@ -283,7 +284,7 @@ public final class ConfigManager {
rankConfig = new RankConfig();
repairConfig = new RepairConfig();
// repairConfig = new RepairConfig();
salvageConfig = new SalvageConfig();
@ -336,9 +337,9 @@ public final class ConfigManager {
* Get all loaded repairables (loaded from all repairable configs)
* @return the currently loaded repairables
*/
public ArrayList<Repairable> getRepairables()
public ArrayList<SimpleRepairable> getRepairables()
{
return (ArrayList<Repairable>) repairConfig.genericCollection;
return getConfigRepair().getConfigRepairablesList();
}
/**

View File

@ -377,7 +377,7 @@ public class MainConfig extends ConfigValidated {
reason.add(SKILLS + "." + MINING + "." + DETONATOR + "Item is invalid!");
}
if (getRepairAnvilMaterial() == null) {
/*if (getRepairAnvilMaterial() == null) {
reason.add(SKILLS + "." + REPAIR + "." + ANVIL + "Type is invalid!!");
}
@ -387,7 +387,7 @@ public class MainConfig extends ConfigValidated {
if (getRepairAnvilMaterial() == getSalvageAnvilMaterial()) {
reason.add("Cannot use the same item for " + REPAIR + " and " + SALVAGE + " anvils!");
}
}*/
if (getTamingCOTWMaterial(EntityType.WOLF) == null) {
reason.add(SKILLS + "." + TAMING + "." + CALL_OF_THE_WILD1 + ".Wolf." + ITEM + "Material is invalid!!");
@ -620,50 +620,6 @@ public class MainConfig extends ConfigValidated {
return Material.matchMaterial(getStringValue(SKILLS, MINING, DETONATOR + NAME));
}
/* Repair */
public boolean getRepairAnvilMessagesEnabled() {
return getBooleanValue(SKILLS, REPAIR, ANVIL + MESSAGES);
}
public boolean getRepairAnvilPlaceSoundsEnabled() {
return getBooleanValue(SKILLS, REPAIR, ANVIL_PLACED + SOUNDS);
}
public boolean getRepairAnvilUseSoundsEnabled() {
return getBooleanValue(SKILLS, REPAIR, ANVIL_USE + SOUNDS);
}
public Material getRepairAnvilMaterial() {
//Iron block
return Material.matchMaterial(getStringValue(SKILLS, REPAIR, ANVIL_MATERIAL));
}
public boolean getRepairConfirmRequired() {
return getBooleanValue(SKILLS, REPAIR, CONFIRM_REQUIRED);
}
/* Salvage */
public boolean getSalvageAnvilMessagesEnabled() {
return getBooleanValue(SKILLS, SALVAGE, ANVIL + MESSAGES);
}
public boolean getSalvageAnvilPlaceSoundsEnabled() {
return getBooleanValue(SKILLS, SALVAGE, ANVIL_PLACED + SOUNDS);
}
public boolean getSalvageAnvilUseSoundsEnabled() {
return getBooleanValue(SKILLS, SALVAGE, ANVIL_USE + SOUNDS);
}
public Material getSalvageAnvilMaterial() {
//Gold Block
return Material.matchMaterial(getStringValue(SKILLS, SALVAGE, ANVIL_MATERIAL));
}
public boolean getSalvageConfirmRequired() {
return getBooleanValue(SKILLS, SALVAGE, CONFIRM_REQUIRED);
}
/* Unarmed */
public boolean getUnarmedBlockCrackerSmoothbrickToCracked() {
return getBooleanValue(SKILLS, UNARMED, BLOCK_CRACKER, SMOOTH_BRICK_TO_CRACKED_BRICK);

View File

@ -1,3 +1,4 @@
/*
package com.gmail.nossr50.config.collectionconfigs;
import com.gmail.nossr50.config.ConfigCollection;
@ -17,9 +18,11 @@ import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
*/
/**
* This config
*/
*//*
@ConfigSerializable
public class RepairConfig extends ConfigCollection {
@ -40,11 +43,13 @@ public class RepairConfig extends ConfigCollection {
register();
}
/**
*/
/**
* The version of this config
*
* @return
*/
*//*
@Override
public double getConfigVersion() {
return 1;
@ -65,9 +70,11 @@ public class RepairConfig extends ConfigCollection {
// Validate all the things!
List<String> errorMessages = new ArrayList<String>();
/*
*/
/*
* Match the name of the key to a Material constant definition
*/
*//*
String repairChildNodeName = repairNode.getString();
Material itemMaterial = Material.matchMaterial(repairChildNodeName);
@ -76,9 +83,11 @@ public class RepairConfig extends ConfigCollection {
continue;
}
/*
*/
/*
* Determine Repair Material Type
*/
*//*
MaterialType repairMaterialType = MaterialType.OTHER;
String repairMaterialTypeString = getRepairMaterialTypeString(repairChildNodeName);
@ -178,9 +187,6 @@ public class RepairConfig extends ConfigCollection {
if(hasNode(REPAIRABLES, repairChildNodeName, XP_MULTIPLIER))
xpMultiplier = getDoubleValue(REPAIRABLES, repairChildNodeName, XP_MULTIPLIER);
// Minimum Quantity
int minimumQuantity = SkillUtils.getRepairAndSalvageQuantities(new ItemStack(itemMaterial), repairMaterial, repairMetadata);
@ -188,10 +194,12 @@ public class RepairConfig extends ConfigCollection {
minimumQuantity = getIntValue(REPAIRABLES, repairChildNodeName, MINIMUM_QUANTITY);
}
/*
*/
/*
* VALIDATE
* Just make sure the values we may have just grabbed from the config aren't below 0
*/
*//*
//Validate min level
if(minimumLevel < 0)
@ -225,12 +233,15 @@ public class RepairConfig extends ConfigCollection {
return getShortValue(REPAIRABLES, key, MAXIMUM_DURABILITY);
}
/**
*/
/**
* Gets the Repair Material String Name defined in the config
* @param key the key name of the repairable child node under the Repairables parent node
* @return the Repair Material String Name defined in the config
*/
*//*
private String getRepairMaterialStringName(String key) {
return getStringValue(REPAIRABLES, key, REPAIR_MATERIAL);
}
}
*/

View File

@ -2,12 +2,203 @@ package com.gmail.nossr50.config.hocon.skills.repair;
import com.gmail.nossr50.config.hocon.skills.repair.general.ConfigRepairGeneral;
import com.gmail.nossr50.config.hocon.skills.repair.repairmastery.ConfigRepairMastery;
import com.gmail.nossr50.skills.repair.repairables.SimpleRepairable;
import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import java.util.ArrayList;
import static org.bukkit.Material.*;
@ConfigSerializable
public class ConfigRepair {
public static final ArrayList<SimpleRepairable> CONFIG_REPAIRABLES_DEFAULTS;
static {
CONFIG_REPAIRABLES_DEFAULTS = new ArrayList<>();
CONFIG_REPAIRABLES_DEFAULTS.add(new SimpleRepairable(WOODEN_SWORD, OAK_PLANKS, 1, 0, .25D));
CONFIG_REPAIRABLES_DEFAULTS.add(new SimpleRepairable(WOODEN_SHOVEL, OAK_PLANKS, 1, 0, .15D));
CONFIG_REPAIRABLES_DEFAULTS.add(new SimpleRepairable(WOODEN_PICKAXE, OAK_PLANKS, 1, 0, .5D));
CONFIG_REPAIRABLES_DEFAULTS.add(new SimpleRepairable(WOODEN_AXE, OAK_PLANKS, 1, 0, .5D));
CONFIG_REPAIRABLES_DEFAULTS.add(new SimpleRepairable(WOODEN_HOE, OAK_PLANKS, 1, 0, .25D));
/*
Repairables:
#
# Wooden repairables
###
# Tools
WOODEN_SWORD:
MinimumLevel: 0
XpMultiplier: .25
WOODEN_SHOVEL:
MinimumLevel: 0
XpMultiplier: .16
WOODEN_PICKAXE:
MinimumLevel: 0
XpMultiplier: .5
WOODEN_AXE:
MinimumLevel: 0
XpMultiplier: .5
WOODEN_HOE:
MinimumLevel: 0
XpMultiplier: .25
#
# Stone repairables
###
# Tools
STONE_SWORD:
MinimumLevel: 0
XpMultiplier: .25
STONE_SHOVEL:
MinimumLevel: 0
XpMultiplier: .16
STONE_PICKAXE:
MinimumLevel: 0
XpMultiplier: .5
STONE_AXE:
MinimumLevel: 0
XpMultiplier: .5
STONE_HOE:
MinimumLevel: 0
XpMultiplier: .25
#
# Iron repairables
###
# Tools
IRON_SWORD:
MinimumLevel: 0
XpMultiplier: .5
IRON_SHOVEL:
MinimumLevel: 0
XpMultiplier: .3
IRON_PICKAXE:
MinimumLevel: 0
XpMultiplier: 1
IRON_AXE:
MinimumLevel: 0
XpMultiplier: 1
IRON_HOE:
MinimumLevel: 0
XpMultiplier: .5
SHEARS:
MinimumLevel: 0
XpMultiplier: .5
FLINT_AND_STEEL:
MinimumLevel: 0
XpMultiplier: .3
# Armor
IRON_HELMET:
MinimumLevel: 0
XpMultiplier: 2
IRON_CHESTPLATE:
MinimumLevel: 0
XpMultiplier: 2
IRON_LEGGINGS:
MinimumLevel: 0
XpMultiplier: 2
IRON_BOOTS:
MinimumLevel: 0
XpMultiplier: 2
#
# Gold repairables
###
# Tools
GOLDEN_SWORD:
MinimumLevel: 0
XpMultiplier: 4
GOLDEN_SHOVEL:
MinimumLevel: 0
XpMultiplier: 2.6
GOLDEN_PICKAXE:
MinimumLevel: 0
XpMultiplier: 8
GOLDEN_AXE:
MinimumLevel: 0
XpMultiplier: 8
GOLDEN_HOE:
MinimumLevel: 0
XpMultiplier: 4
# Armor
GOLDEN_HELMET:
MinimumLevel: 0
XpMultiplier: 4
GOLDEN_CHESTPLATE:
MinimumLevel: 0
XpMultiplier: 4
GOLDEN_LEGGINGS:
MinimumLevel: 0
XpMultiplier: 4
GOLDEN_BOOTS:
MinimumLevel: 0
XpMultiplier: 4
#
# Diamond repairables
###
# Tools
DIAMOND_SWORD:
MinimumLevel: 50
XpMultiplier: .5
DIAMOND_SHOVEL:
MinimumLevel: 50
XpMultiplier: .3
DIAMOND_PICKAXE:
MinimumLevel: 50
XpMultiplier: 1
DIAMOND_AXE:
MinimumLevel: 50
XpMultiplier: 1
DIAMOND_HOE:
MinimumLevel: 50
XpMultiplier: .5
# Armor
DIAMOND_HELMET:
MinimumLevel: 50
XpMultiplier: 6
DIAMOND_CHESTPLATE:
MinimumLevel: 50
XpMultiplier: 6
DIAMOND_LEGGINGS:
MinimumLevel: 50
XpMultiplier: 6
DIAMOND_BOOTS:
MinimumLevel: 50
XpMultiplier: 6
#
# Leather repairables
###
# Armor
LEATHER_HELMET:
MinimumLevel: 0
XpMultiplier: 1
LEATHER_CHESTPLATE:
MinimumLevel: 0
XpMultiplier: 1
LEATHER_LEGGINGS:
MinimumLevel: 0
XpMultiplier: 1
LEATHER_BOOTS:
MinimumLevel: 0
XpMultiplier: 1
#
# String repairables
###
# Tools
FISHING_ROD:
MinimumLevel: 0
XpMultiplier: .5
BOW:
MinimumLevel: 0
XpMultiplier: .5
CARROT_ON_A_STICK:
MinimumLevel: 0
XpMultiplier: .5
*/
}
@Setting(value = "Repair-Mastery", comment = "Settings related to the repair mastery subskill")
private ConfigRepairMastery repairMastery = new ConfigRepairMastery();
@ -20,6 +211,9 @@ public class ConfigRepair {
@Setting(value = "General")
private ConfigRepairGeneral repairGeneral = new ConfigRepairGeneral();
@Setting(value = "Repairables")
private ArrayList<SimpleRepairable> configRepairablesList = CONFIG_REPAIRABLES_DEFAULTS;
public ConfigRepairGeneral getRepairGeneral() {
return repairGeneral;
}
@ -35,4 +229,8 @@ public class ConfigRepair {
public ConfigRepairArcaneForging getArcaneForging() {
return arcaneForging;
}
public ArrayList<SimpleRepairable> getConfigRepairablesList() {
return configRepairablesList;
}
}

View File

@ -8,6 +8,9 @@ import java.util.HashMap;
@ConfigSerializable
public class ConfigRepairArcaneForging {
public static final boolean LOSE_ENCHANTS_DEFAULT = true;
public static final boolean DOWNGRADES_ENABLED_DEFAULT = true;
public static final HashMap<Integer, Double> KEEP_ENCHANT_MAP;
public static final HashMap<Integer, Double> DOWNGRADE_MAP_DEFAULT;
@ -33,9 +36,6 @@ public class ConfigRepairArcaneForging {
DOWNGRADE_MAP_DEFAULT.put(8, 10.0D);
}
public static final boolean LOSE_ENCHANTS_DEFAULT = true;
public static final boolean DOWNGRADES_ENABLED_DEFAULT = true;
@Setting(value = "May-Lose-Enchants", comment = "With this on, players have a chance to have enchantments stripped from" +
"\n their item when repairing." +
"\nThe odds to lose your enchants decrease with higher levels of skill." +

View File

@ -11,22 +11,6 @@ public class ConfigRepairGeneral {
public static final boolean ANVIL_PLACED_SOUNDS_DEFAULT = true;
public static final boolean ENCHANTED_ITEMS_REQUIRE_CONFIRM = true;
/*
public Material getRepairAnvilMaterial() {
//Iron block
return Material.matchMaterial(getStringValue(SKILLS, REPAIR, ANVIL_MATERIAL));
}
public boolean getRepairConfirmRequired() {
return getBooleanValue(SKILLS, REPAIR, CONFIRM_REQUIRED);
}
public boolean getRepairAnvilMessagesEnabled() {
return getBooleanValue(SKILLS, REPAIR, ANVIL + MESSAGES);
}
*/
@Setting(value = "Anvil-Block-Material", comment = "The block used for mcMMO repairs." +
"Default value: "+"IRON_BLOCK")
private Material repairAnvilMaterial = Material.IRON_BLOCK;

View File

@ -0,0 +1,30 @@
/*
package com.gmail.nossr50.config.hocon.skills.repair.repairables;
import com.gmail.nossr50.datatypes.skills.ItemType;
import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import org.bukkit.Material;
@ConfigSerializable
public class ConfigRepairables {
@Setting(value = "Item-Material")
private Material itemMaterial;
@Setting(value = "Item-Used-To-Repair")
private Material repairMaterial;
@Setting(value = "Minimum-Quantity-Required-For-Repair")
private int minimumQuantity;
@Setting(value = "Minimum-Level-Required-For-Repair")
private int minimumLevel;
@Setting(value = "Repair-Item-Category")
private ItemType repairItemType;
@Setting(value = "XP-Multiplier")
private double xpMultiplier;
}*/

View File

@ -7,6 +7,9 @@ import java.util.HashMap;
@ConfigSerializable
public class ConfigArcaneSalvage {
public static final boolean LOSE_ENCHANTS_DEFAULT = true;
public static final boolean DOWNGRADES_ENABLED_DEFAULT = true;
public static final HashMap<Integer, Double> FULL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
public static final HashMap<Integer, Double> PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
@ -41,6 +44,24 @@ public class ConfigArcaneSalvage {
"\nThis check happens if you fail to extract the full enchant from the item.")
private HashMap<Integer, Double> extractPartialEnchantChance = PARTIAL_ENCHANT_INTEGER_DOUBLE_HASH_MAP_DEFAULT;
@Setting(value = "May-Lose-Enchants", comment = "With this on, players have a chance to not receive the enchantments from the item they are salvaging." +
"\nThe odds to lose your enchants decrease with higher levels of skill." +
"\nDefault value: "+LOSE_ENCHANTS_DEFAULT)
private boolean mayLoseEnchants = LOSE_ENCHANTS_DEFAULT;
@Setting(value = "Chance-To-Downgrade-Enchants", comment = "With this on, players have a chance to have salvaged enchantments downgrade when salvaging." +
"\nThe chance to downgrade decreases with higher levels of skill." +
"\nDefault value: "+DOWNGRADES_ENABLED_DEFAULT)
private boolean downgradesEnabled = DOWNGRADES_ENABLED_DEFAULT;
public boolean isMayLoseEnchants() {
return mayLoseEnchants;
}
public boolean isDowngradesEnabled() {
return downgradesEnabled;
}
public HashMap<Integer, Double> getExtractFullEnchantChance() {
return extractFullEnchantChance;