Fix casting, remove unused mod configs

This commit is contained in:
nossr50
2019-05-10 11:20:16 -07:00
parent 48a3621ac6
commit 7ad0a61c53
60 changed files with 64 additions and 8926 deletions

View File

@ -116,25 +116,26 @@ public final class ConfigManager {
private SerializedConfigLoader<ConfigAdmin> configAdmin;
private SerializedConfigLoader<ConfigMobs> configMobs;
private SerializedConfigLoader<ConfigExperience> configExperience;
private SerializedConfigLoader<ConfigAcrobatics> configAcrobatics;
private SerializedConfigLoader<ConfigAlchemy> configAlchemy;
private SerializedConfigLoader<ConfigArchery> configArchery;
private SerializedConfigLoader<ConfigAxes> configAxes;
private SerializedConfigLoader<ConfigExcavation> configExcavation;
private SerializedConfigLoader<ConfigFishing> configFishing;
private SerializedConfigLoader<ConfigHerbalism> configHerbalism;
private SerializedConfigLoader<ConfigMining> configMining;
private SerializedConfigLoader<ConfigRepair> configRepair;
private SerializedConfigLoader<ConfigSwords> configSwords;
private SerializedConfigLoader<ConfigTaming> configTaming;
private SerializedConfigLoader<ConfigUnarmed> configUnarmed;
private SerializedConfigLoader<ConfigWoodcutting> configWoodcutting;
private SerializedConfigLoader<ConfigSmelting> configSmelting;
private SerializedConfigLoader<ConfigSalvage> configSalvage;
private SerializedConfigLoader<ConfigNameRegisterDefaults> configDefaultExamples;
private HashMap<PrimarySkillType, SerializedConfigLoader> skillConfigLoaders;
private ConfigAcrobatics configAcrobatics;
private ConfigAlchemy configAlchemy;
private ConfigArchery configArchery;
private ConfigAxes configAxes;
private ConfigExcavation configExcavation;
private ConfigFishing configFishing;
private ConfigHerbalism configHerbalism;
private ConfigMining configMining;
private ConfigRepair configRepair;
private ConfigSwords configSwords;
private ConfigTaming configTaming;
private ConfigUnarmed configUnarmed;
private ConfigWoodcutting configWoodcutting;
private ConfigSmelting configSmelting;
private ConfigSalvage configSalvage;
private HashMap<PrimarySkillType, SerializedConfigLoader<?>> skillConfigLoaders;
//Data
private SerializedConfigLoader<ConfigPartyData> partyData;
@ -260,21 +261,21 @@ public final class ConfigManager {
registerSkillConfig(PrimarySkillType.SMELTING, ConfigSmelting.class);
//Setup Typed refs
configAcrobatics = (SerializedConfigLoader<ConfigAcrobatics>) skillConfigLoaders.get(PrimarySkillType.ACROBATICS).getConfig();
configAlchemy = (SerializedConfigLoader<ConfigAlchemy>) skillConfigLoaders.get(PrimarySkillType.ALCHEMY).getConfig();
configSalvage = (SerializedConfigLoader<ConfigSalvage>) skillConfigLoaders.get(PrimarySkillType.SALVAGE).getConfig();
configArchery = (SerializedConfigLoader<ConfigArchery>) skillConfigLoaders.get(PrimarySkillType.ARCHERY).getConfig();
configAxes = (SerializedConfigLoader<ConfigAxes>) skillConfigLoaders.get(PrimarySkillType.AXES).getConfig();
configExcavation = (SerializedConfigLoader<ConfigExcavation>) skillConfigLoaders.get(PrimarySkillType.EXCAVATION).getConfig();
configFishing = (SerializedConfigLoader<ConfigFishing>) skillConfigLoaders.get(PrimarySkillType.FISHING).getConfig();
configHerbalism = (SerializedConfigLoader<ConfigHerbalism>) skillConfigLoaders.get(PrimarySkillType.HERBALISM).getConfig();
configMining = (SerializedConfigLoader<ConfigMining>) skillConfigLoaders.get(PrimarySkillType.MINING).getConfig();
configRepair = (SerializedConfigLoader<ConfigRepair>) skillConfigLoaders.get(PrimarySkillType.REPAIR).getConfig();
configSwords = (SerializedConfigLoader<ConfigSwords>) skillConfigLoaders.get(PrimarySkillType.SWORDS).getConfig();
configTaming = (SerializedConfigLoader<ConfigTaming>) skillConfigLoaders.get(PrimarySkillType.TAMING).getConfig();
configUnarmed = (SerializedConfigLoader<ConfigUnarmed>) skillConfigLoaders.get(PrimarySkillType.UNARMED).getConfig();
configWoodcutting = (SerializedConfigLoader<ConfigWoodcutting>) skillConfigLoaders.get(PrimarySkillType.WOODCUTTING).getConfig();
configSmelting = (SerializedConfigLoader<ConfigSmelting>) skillConfigLoaders.get(PrimarySkillType.SMELTING).getConfig();
configAcrobatics = (ConfigAcrobatics) skillConfigLoaders.get(PrimarySkillType.ACROBATICS).getConfig();
configAlchemy = (ConfigAlchemy) skillConfigLoaders.get(PrimarySkillType.ALCHEMY).getConfig();
configSalvage = (ConfigSalvage) skillConfigLoaders.get(PrimarySkillType.SALVAGE).getConfig();
configArchery = (ConfigArchery) skillConfigLoaders.get(PrimarySkillType.ARCHERY).getConfig();
configAxes = (ConfigAxes) skillConfigLoaders.get(PrimarySkillType.AXES).getConfig();
configExcavation = (ConfigExcavation) skillConfigLoaders.get(PrimarySkillType.EXCAVATION).getConfig();
configFishing = (ConfigFishing) skillConfigLoaders.get(PrimarySkillType.FISHING).getConfig();
configHerbalism = (ConfigHerbalism) skillConfigLoaders.get(PrimarySkillType.HERBALISM).getConfig();
configMining = (ConfigMining) skillConfigLoaders.get(PrimarySkillType.MINING).getConfig();
configRepair = (ConfigRepair) skillConfigLoaders.get(PrimarySkillType.REPAIR).getConfig();
configSwords = (ConfigSwords) skillConfigLoaders.get(PrimarySkillType.SWORDS).getConfig();
configTaming = (ConfigTaming) skillConfigLoaders.get(PrimarySkillType.TAMING).getConfig();
configUnarmed = (ConfigUnarmed) skillConfigLoaders.get(PrimarySkillType.UNARMED).getConfig();
configWoodcutting = (ConfigWoodcutting) skillConfigLoaders.get(PrimarySkillType.WOODCUTTING).getConfig();
configSmelting = (ConfigSmelting) skillConfigLoaders.get(PrimarySkillType.SMELTING).getConfig();
}
private void registerCustomTypeSerializers() {
@ -588,63 +589,63 @@ public final class ConfigManager {
}
public ConfigAcrobatics getConfigAcrobatics() {
return configAcrobatics.getConfig();
return configAcrobatics;
}
public ConfigAlchemy getConfigAlchemy() {
return configAlchemy.getConfig();
return configAlchemy;
}
public ConfigArchery getConfigArchery() {
return configArchery.getConfig();
return configArchery;
}
public ConfigAxes getConfigAxes() {
return configAxes.getConfig();
return configAxes;
}
public ConfigExcavation getConfigExcavation() {
return configExcavation.getConfig();
return configExcavation;
}
public ConfigFishing getConfigFishing() {
return configFishing.getConfig();
return configFishing;
}
public ConfigHerbalism getConfigHerbalism() {
return configHerbalism.getConfig();
return configHerbalism;
}
public ConfigMining getConfigMining() {
return configMining.getConfig();
return configMining;
}
public ConfigRepair getConfigRepair() {
return configRepair.getConfig();
return configRepair;
}
public ConfigSwords getConfigSwords() {
return configSwords.getConfig();
return configSwords;
}
public ConfigTaming getConfigTaming() {
return configTaming.getConfig();
return configTaming;
}
public ConfigUnarmed getConfigUnarmed() {
return configUnarmed.getConfig();
return configUnarmed;
}
public ConfigWoodcutting getConfigWoodcutting() {
return configWoodcutting.getConfig();
return configWoodcutting;
}
public ConfigSmelting getConfigSmelting() {
return configSmelting.getConfig();
return configSmelting;
}
public ConfigSalvage getConfigSalvage() {
return configSalvage.getConfig();
return configSalvage;
}
public BonusDropManager getBonusDropManager() {

View File

@ -21,11 +21,10 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
CustomXPPerk customXPPerk = new CustomXPPerk(perkName);
//See if any children nodes match skills by name
for(ConfigurationNode configurationNode : value.getChildrenList())
{
for (ConfigurationNode configurationNode : value.getChildrenList()) {
try {
PrimarySkillType primarySkillType = matchIgnoreCase(configurationNode.getValue(TypeToken.of(String.class)));
if(primarySkillType.isChildSkill())
if (primarySkillType.isChildSkill())
continue; //Child skills gross
float boostValue = configurationNode.getNode("XP-Multiplier").getValue(TypeToken.of(Float.class));
@ -47,12 +46,11 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
value.getNode("name").setValue(name);
for(PrimarySkillType primarySkillType : PrimarySkillType.values())
{
for (PrimarySkillType primarySkillType : PrimarySkillType.values()) {
float xpMultValue = obj.getXPMultiplierValue(primarySkillType);
//Ignore default values
if(xpMultValue == 1.0F)
if (xpMultValue == 1.0F)
continue;
//Set value
@ -60,11 +58,9 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
}
}
private PrimarySkillType matchIgnoreCase(String string) throws InvalidSkillException
{
for(PrimarySkillType primarySkillType : PrimarySkillType.values())
{
if(string.equalsIgnoreCase(primarySkillType.toString()))
private PrimarySkillType matchIgnoreCase(String string) throws InvalidSkillException {
for (PrimarySkillType primarySkillType : PrimarySkillType.values()) {
if (string.equalsIgnoreCase(primarySkillType.toString()))
return primarySkillType;
}

View File

@ -105,7 +105,7 @@ public class SerializedConfigLoader<T> {
try {
this.configMapper = ObjectMapper.forClass(clazz).bindToNew();
} catch (ObjectMappingException e) {
if(e.getMessage() != null)
if (e.getMessage() != null)
System.out.println(e.getMessage());
e.printStackTrace();

View File

@ -6,7 +6,6 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@ConfigSerializable
public class ConfigExperience {

View File

@ -3,10 +3,11 @@ package com.gmail.nossr50.config.hocon.experience;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import ninja.leaping.configurate.objectmapping.Setting;
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import static com.gmail.nossr50.datatypes.skills.PrimarySkillType.*;
import java.util.HashMap;
import static com.gmail.nossr50.datatypes.skills.PrimarySkillType.*;
@ConfigSerializable
public class ConfigExperienceSkillMultiplier {

View File

@ -29,7 +29,10 @@ import com.gmail.nossr50.util.sounds.SoundManager;
import com.gmail.nossr50.util.sounds.SoundType;
import com.gmail.nossr50.worldguard.WorldGuardManager;
import com.gmail.nossr50.worldguard.WorldGuardUtils;
import org.bukkit.*;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.*;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;

View File

@ -1,131 +0,0 @@
#
# Armor example configuration
# Last updated on ${project.version}-b${BUILD_NUMBER}
#
# Any file named armor.*.yml in the mod folder will be loaded as a armor config
# For every armor type there is a separate section.
# The names of each subitem should be the exact material name.
# The bare minimum of an Armor piece is that it has a Repair_Material
#
#
# Repairable: Whether or not the item is repairable
## This defaults to true
#
# Repair_Material: This is the material name of the item used to repair this armor.
## This is required to be set if you want to be able to repair the item.
#
# Repair_Material_Data_Value: This is the metadata of the item used to repair this armor.
## A value of -1 means to ignore all metadata when repairing.
## This defaults to -1
#
# Repair_Material_Quantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
## This defaults to 9
#
# Repair_Material_Pretty_Name: The pretty name of the repair material.
## Used in the feedback message when not enough repair materials are found.
## This defaults to the Repair_Material converted to string.
#
# Repair_Material_Pretty_Name: The pretty name of the repair material.
## Used in the feedback message when not enough repair materials are found.
## This defaults to the Repair_Material converted to string.
#
# Repair_MinimumLevel: This is the minimum repair level needed to repair this item.
## Valid values are => 0
## This defaults to 0
#
# Repair_XpMultiplier: This is the amount to multiply the xp bonus by.
## This defaults to 1
#
# Durability: This is the maximum durability of the armor.
## Valid values are >= 1
#
###
#
# Settings for Boots
###
Boots:
Boot_1:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
Boot_2:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
#
# Settings for Chestplates
###
Chestplates:
Chestplate_1:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
Chestplate_2:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
#
# Settings for Helmets
###
Helmets:
Helmet_1:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
Helmet_2:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
#
# Settings for Leggings
###
Leggings:
Legging_1:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999
Legging_2:
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 999

View File

@ -1,57 +0,0 @@
#
# Settings for Custom Excavation Blocks
###
Excavation:
Block_1|0:
XP_Gain: 99
Double_Drops_Enabled: true
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
#
# Settings for Custom Herbalism Blocks
###
Herbalism:
Block_1|0:
XP_Gain: 99
Double_Drops_Enabled: true
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
#
# Settings for Custom Mining Blocks
###
Mining:
Block_1|0:
XP_Gain: 99
Double_Drops_Enabled: true
Is_Ore: true
Smelting_XP_Gain: 9
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
Is_Ore: true
Smelting_XP_Gain: 9
#
# Settings for Custom Woodcutting Blocks
###
Woodcutting:
Block_1|0:
XP_Gain: 99
Double_Drops_Enabled: true
Is_Log: true
Block_2|0:
XP_Gain: 99
Double_Drops_Enabled: true
Is_Log: true
#
# Settings for Custom Ability Blocks
# (These blocks don't trigger abilities)
###
Ability_Blocks:
Block_1|0:
Block_2|0:

View File

@ -1,42 +0,0 @@
#
# Settings for Custom Mobs
#
# Mob name should be the entity type of the mob - usually "ModName_EntityName"
# Be sure to use the "_" character in place of any "." characters in the mob name.
###
Mob_1:
Class: CLASS_NAME
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 250
CanBeSummoned: false
COTW_Material: MATERIAL_NAME
COTW_Material_Data: 9
COTW_Material_Amount: 99
Mob_2:
Class: CLASS_NAME
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 250
CanBeSummoned: false
COTW_Material: MATERIAL_NAME
COTW_Material_Data: 9
COTW_Material_Amount: 99
Mob_3:
Class: CLASS_NAME
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 250
CanBeSummoned: false
COTW_Material: MATERIAL_NAME
COTW_Material_Data: 9
COTW_Material_Amount: 99
Mob_4:
Class: CLASS_NAME
XP_Multiplier: 1.0
Tameable: false
Taming_XP: 250
CanBeSummoned: false
COTW_Material: MATERIAL_NAME
COTW_Material_Data: 9
COTW_Material_Amount: 99

View File

@ -1,220 +0,0 @@
#
# Tools example configuration
# Last updated on ${project.version}-b${BUILD_NUMBER}
#
# Any file named tools.*.yml in the mod folder will be loaded as a tools config
# For every tool type there is a separate section.
# The names of each subitem should be the exact material name.
# The bare minimum of a Tool is that it has a Repair_Material
#
#
#
# XP_Modifier: This is the xp modifier of the tool, xp is multiplied by this modifier.
## Valid values are > 0
## This defaults to 1.0.
#
# Tier: The tier of the tool
## Used to determine the capabilities of AoE abilities with certain skills
## Valid values range from 1 to 4
## This defaults to 1
#
# Ability_Enabled: Whether or not abilities are enabled with this tool
## This defaults to true
#
# Repairable: Whether or not the item is repairable
## This defaults to true
#
# Repair_Material: This is the material name of the item used to repair this tool.
## This is required to be set if you want to be able to repair the item.
#
# Repair_Material_Data_Value: This is the metadata of the item used to repair this tool.
## A value of -1 means to ignore all metadata when repairing.
## This defaults to -1
#
# Repair_Material_Quantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
## This defaults to 9
#
# Repair_Material_Pretty_Name: The pretty name of the repair material.
## Used in the feedback message when not enough repair materials are found.
## This defaults to the Repair_Material converted to string.
#
# Repair_MinimumLevel: This is the minimum repair level needed to repair this item.
## Valid values are => 0
## This defaults to 0
#
# Repair_XpMultiplier: This is the amount to multiply the xp bonus by.
## This defaults to 1
#
# Durability: This is the maximum durability of the tool.
## Valid values are >= 1
#
###
#
# Settings for Axes
###
Axes:
Axe_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Axe_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
#
# Settings for Bows
###
Bows:
Bow_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Bow_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
#
# Settings for Hoes
###
Hoes:
Hoe_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Hoe_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
#
# Settings for Pickaxes
###
Pickaxes:
Pickaxe_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Pickaxe_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
#
# Settings for Shovels
###
Shovels:
Shovel_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Shovel_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
#
# Settings for Swords
###
Swords:
Sword_1:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999
Sword_2:
XP_Modifier: 1.0
Ability_Enabled: true
Tier: 1
Repairable: true
Repair_Material: REPAIR_MATERIAL_NAME
Repair_Material_Data_Value: 0
Repair_Material_Quantity: 9
Repair_Material_Pretty_Name: Repair Item Name
Repair_MinimumLevel: 0
Repair_XpMultiplier: 1.0
Durability: 9999