mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-12-24 17:47:44 +01:00
Repair Config pt 5
This commit is contained in:
parent
68b32e0b9e
commit
7aea4e1d92
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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." +
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
}*/
|
@ -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;
|
||||
|
@ -1,11 +1,17 @@
|
||||
package com.gmail.nossr50.skills.repair;
|
||||
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Material;
|
||||
|
||||
public class Repair {
|
||||
//public static int repairMasteryMaxBonusLevel = AdvancedConfig.getInstance().getRepairMasteryMaxLevel();
|
||||
//public static double repairMasteryMaxBonus = AdvancedConfig.getInstance().getRepairMasteryMaxBonus();
|
||||
public static Material anvilMaterial;
|
||||
|
||||
//public static Material anvilMaterial = MainConfig.getInstance().getRepairAnvilMaterial();
|
||||
public Repair() {
|
||||
anvilMaterial = mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().getRepairAnvilMaterial();
|
||||
}
|
||||
|
||||
public static Material getRepairAnvilMaterial()
|
||||
{
|
||||
return anvilMaterial;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.skills.repair;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
@ -51,11 +50,11 @@ public class RepairManager extends SkillManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if (MainConfig.getInstance().getRepairAnvilMessagesEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().isAnvilMessages()) {
|
||||
NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE, "Repair.Listener.Anvil");
|
||||
}
|
||||
|
||||
if (MainConfig.getInstance().getRepairAnvilPlaceSoundsEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().isAnvilPlacedSounds()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
}
|
||||
|
||||
@ -94,7 +93,7 @@ public class RepairManager extends SkillManager {
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
|
||||
Material repairMaterial = repairable.getRepairMaterial();
|
||||
byte repairMaterialMetadata = repairable.getRepairMaterialMetadata();
|
||||
//byte repairMaterialMetadata = repairable.getRepairMaterialMetadata();
|
||||
ItemStack toRemove = new ItemStack(repairMaterial);
|
||||
|
||||
short startDurability = item.getDurability();
|
||||
@ -106,7 +105,7 @@ public class RepairManager extends SkillManager {
|
||||
}
|
||||
|
||||
// Check if they have the proper material to repair with
|
||||
if (!inventory.contains(repairMaterial)) {
|
||||
/*if (!inventory.contains(repairMaterial)) {
|
||||
String prettyName = repairable.getRepairMaterialPrettyName() == null ? StringUtils.getPrettyItemString(repairMaterial) : repairable.getRepairMaterialPrettyName();
|
||||
|
||||
String materialsNeeded = "";
|
||||
@ -117,7 +116,7 @@ public class RepairManager extends SkillManager {
|
||||
|
||||
NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE_FAILED, "Skills.NeedMore.Extra", prettyName, materialsNeeded);
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
|
||||
// Do not repair stacked items
|
||||
if (item.getAmount() != 1) {
|
||||
@ -144,10 +143,10 @@ public class RepairManager extends SkillManager {
|
||||
}
|
||||
|
||||
// Remove the item
|
||||
if (repairMaterialMetadata == -1) {
|
||||
/*if (repairMaterialMetadata == -1) {
|
||||
toRemove = inventory.getItem(inventory.first(repairMaterial)).clone();
|
||||
toRemove.setAmount(1);
|
||||
}
|
||||
}*/
|
||||
|
||||
inventory.removeItem(toRemove);
|
||||
|
||||
@ -155,7 +154,7 @@ public class RepairManager extends SkillManager {
|
||||
applyXpGain((float) ((getPercentageRepaired(startDurability, newDurability, repairable.getMaximumDurability()) * repairable.getXpMultiplier()) * ExperienceConfig.getInstance().getRepairXPBase() * ExperienceConfig.getInstance().getRepairXP(repairable.getRepairMaterialType())), XPGainReason.PVE);
|
||||
|
||||
// BWONG BWONG BWONG
|
||||
if (MainConfig.getInstance().getRepairAnvilUseSoundsEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().isAnvilUseSounds()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ITEM_BREAK);
|
||||
}
|
||||
@ -177,7 +176,7 @@ public class RepairManager extends SkillManager {
|
||||
Player player = getPlayer();
|
||||
long lastUse = getLastAnvilUse();
|
||||
|
||||
if (!SkillUtils.cooldownExpired(lastUse, 3) || !MainConfig.getInstance().getRepairConfirmRequired()) {
|
||||
if (!SkillUtils.cooldownExpired(lastUse, 3) || !mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().isEnchantedItemsRequireConfirm()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -20,20 +20,6 @@ public interface Repairable {
|
||||
*/
|
||||
public Material getRepairMaterial();
|
||||
|
||||
/**
|
||||
* Gets the metadata byte value of the material used to repair this item
|
||||
*
|
||||
* @return the byte metadata of the repair material
|
||||
*/
|
||||
public byte getRepairMaterialMetadata();
|
||||
|
||||
/**
|
||||
* Gets the pretty name of the material used to repair this item
|
||||
*
|
||||
* @return the pretty name of the repair material
|
||||
*/
|
||||
public String getRepairMaterialPrettyName();
|
||||
|
||||
/**
|
||||
* Gets the RepairItemType value for this repairable item
|
||||
*
|
||||
|
@ -1,3 +1,4 @@
|
||||
/*
|
||||
package com.gmail.nossr50.skills.repair.repairables;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.ItemType;
|
||||
@ -19,3 +20,4 @@ public class RepairableFactory {
|
||||
return new SimpleRepairable(itemMaterial, repairMaterial, repairMetadata, repairMaterialPrettyName, minimumLevel, minimumQuantity, maximumDurability, repairItemType, repairMaterialType, xpMultiplier);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -2,23 +2,23 @@ package com.gmail.nossr50.skills.repair.repairables;
|
||||
|
||||
import com.gmail.nossr50.datatypes.skills.ItemType;
|
||||
import com.gmail.nossr50.datatypes.skills.MaterialType;
|
||||
import com.gmail.nossr50.util.ItemUtils;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
public class SimpleRepairable implements Repairable {
|
||||
private final Material itemMaterial, repairMaterial;
|
||||
private final int minimumQuantity, minimumLevel;
|
||||
private final short maximumDurability, baseRepairDurability;
|
||||
private final byte repairMetadata;
|
||||
private String repairMaterialPrettyName;
|
||||
/*private String repairMaterialPrettyName;*/
|
||||
private final ItemType repairItemType;
|
||||
private final MaterialType repairMaterialType;
|
||||
private final double xpMultiplier;
|
||||
|
||||
protected SimpleRepairable(Material type, Material repairMaterial, byte repairMetadata, String repairMaterialPrettyName, int minimumLevel, int minimumQuantity, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier) {
|
||||
/* protected SimpleRepairable(Material type, Material repairMaterial, String repairMaterialPrettyName, int minimumLevel, int minimumQuantity, short maximumDurability, ItemType repairItemType, MaterialType repairMaterialType, double xpMultiplier) {
|
||||
this.itemMaterial = type;
|
||||
this.repairMaterial = repairMaterial;
|
||||
this.repairMetadata = repairMetadata;
|
||||
this.repairMaterialPrettyName = repairMaterialPrettyName;
|
||||
this.repairItemType = repairItemType;
|
||||
this.repairMaterialType = repairMaterialType;
|
||||
@ -27,6 +27,65 @@ public class SimpleRepairable implements Repairable {
|
||||
this.maximumDurability = maximumDurability;
|
||||
this.baseRepairDurability = (short) (maximumDurability / minimumQuantity);
|
||||
this.xpMultiplier = xpMultiplier;
|
||||
}*/
|
||||
|
||||
public SimpleRepairable(Material itemMaterial, Material repairMaterial, int minimumQuantity, int minimumLevel, double xpMultiplier) {
|
||||
this.itemMaterial = itemMaterial;
|
||||
this.repairMaterial = repairMaterial;
|
||||
this.minimumQuantity = minimumQuantity;
|
||||
this.minimumLevel = minimumLevel;
|
||||
this.xpMultiplier = xpMultiplier;
|
||||
|
||||
this.maximumDurability = itemMaterial.getMaxDurability();
|
||||
this.baseRepairDurability = (short) (maximumDurability / minimumQuantity);
|
||||
|
||||
this.repairItemType = determineItemType(itemMaterial);
|
||||
this.repairMaterialType = determineMaterialType(repairMaterial);
|
||||
}
|
||||
|
||||
public MaterialType determineMaterialType(Material material) {
|
||||
switch (material) {
|
||||
case STRING:
|
||||
return MaterialType.STRING;
|
||||
|
||||
case LEATHER:
|
||||
return MaterialType.LEATHER;
|
||||
|
||||
case ACACIA_PLANKS:
|
||||
case BIRCH_PLANKS:
|
||||
case DARK_OAK_PLANKS:
|
||||
case JUNGLE_PLANKS:
|
||||
case OAK_PLANKS:
|
||||
case SPRUCE_PLANKS:
|
||||
return MaterialType.WOOD;
|
||||
|
||||
case STONE:
|
||||
return MaterialType.STONE;
|
||||
|
||||
case IRON_INGOT:
|
||||
return MaterialType.IRON;
|
||||
|
||||
case GOLD_INGOT:
|
||||
return MaterialType.GOLD;
|
||||
|
||||
case DIAMOND:
|
||||
return MaterialType.DIAMOND;
|
||||
|
||||
default:
|
||||
return MaterialType.OTHER;
|
||||
}
|
||||
}
|
||||
|
||||
private ItemType determineItemType(Material material)
|
||||
{
|
||||
if (ItemUtils.isMinecraftTool(new ItemStack(material))) {
|
||||
return ItemType.TOOL;
|
||||
}
|
||||
else if (ItemUtils.isArmor(new ItemStack((material)))) {
|
||||
return ItemType.ARMOR;
|
||||
} else {
|
||||
return ItemType.OTHER;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -39,16 +98,6 @@ public class SimpleRepairable implements Repairable {
|
||||
return repairMaterial;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte getRepairMaterialMetadata() {
|
||||
return repairMetadata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRepairMaterialPrettyName() {
|
||||
return repairMaterialPrettyName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemType getRepairItemType() {
|
||||
return repairItemType;
|
||||
|
@ -1,19 +1,18 @@
|
||||
package com.gmail.nossr50.skills.salvage;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import org.bukkit.Material;
|
||||
|
||||
public class Salvage {
|
||||
public static Material anvilMaterial = MainConfig.getInstance().getSalvageAnvilMaterial();
|
||||
|
||||
/*public static int salvageMaxPercentageLevel = AdvancedConfig.getInstance().getSalvageMaxPercentageLevel();
|
||||
public static double salvageMaxPercentage = AdvancedConfig.getInstance().getSalvageMaxPercentage();
|
||||
|
||||
public static int advancedSalvageUnlockLevel = RankUtils.getRankUnlockLevel(SubSkillType.SALVAGE_ADVANCED_SALVAGE, 1);*/
|
||||
|
||||
public static boolean arcaneSalvageDowngrades = AdvancedConfig.getInstance().getArcaneSalvageEnchantDowngradeEnabled();
|
||||
public static boolean arcaneSalvageEnchantLoss = AdvancedConfig.getInstance().getArcaneSalvageEnchantLossEnabled();
|
||||
public Salvage() {
|
||||
anvilMaterial = mcMMO.getConfigManager().getConfigSalvage().getGeneral().getSalvageAnvilMaterial();
|
||||
arcaneSalvageDowngrades = mcMMO.getConfigManager().getConfigSalvage().getConfigArcaneSalvage().isDowngradesEnabled();
|
||||
arcaneSalvageEnchantLoss = mcMMO.getConfigManager().getConfigSalvage().getConfigArcaneSalvage().isMayLoseEnchants();
|
||||
}
|
||||
public static Material anvilMaterial;
|
||||
public static boolean arcaneSalvageDowngrades;
|
||||
public static boolean arcaneSalvageEnchantLoss;
|
||||
|
||||
protected static int calculateSalvageableAmount(short currentDurability, short maxDurability, int baseAmount) {
|
||||
double percentDamaged = (maxDurability <= 0) ? 1D : (double) (maxDurability - currentDurability) / maxDurability;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.gmail.nossr50.skills.salvage;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.config.MainConfig;
|
||||
import com.gmail.nossr50.datatypes.interactions.NotificationType;
|
||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
@ -49,11 +48,11 @@ public class SalvageManager extends SkillManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if (MainConfig.getInstance().getSalvageAnvilMessagesEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigSalvage().getGeneral().isAnvilMessages()) {
|
||||
NotificationManager.sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE, "Salvage.Listener.Anvil");
|
||||
}
|
||||
|
||||
if (MainConfig.getInstance().getSalvageAnvilPlaceSoundsEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigSalvage().getGeneral().isAnvilPlacedSounds()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
}
|
||||
|
||||
@ -130,7 +129,7 @@ public class SalvageManager extends SkillManager {
|
||||
Misc.dropItems(location, salvageResults, 1);
|
||||
|
||||
// BWONG BWONG BWONG - CLUNK!
|
||||
if (MainConfig.getInstance().getSalvageAnvilUseSoundsEnabled()) {
|
||||
if (mcMMO.getConfigManager().getConfigSalvage().getGeneral().isAnvilUseSounds()) {
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ANVIL);
|
||||
SoundManager.sendSound(player, player.getLocation(), SoundType.ITEM_BREAK);
|
||||
|
||||
@ -253,7 +252,7 @@ public class SalvageManager extends SkillManager {
|
||||
Player player = getPlayer();
|
||||
long lastUse = getLastAnvilUse();
|
||||
|
||||
if (!SkillUtils.cooldownExpired(lastUse, 3) || !MainConfig.getInstance().getSalvageConfirmRequired()) {
|
||||
if (!SkillUtils.cooldownExpired(lastUse, 3) || !mcMMO.getConfigManager().getConfigSalvage().getGeneral().isEnchantedItemsRequireConfirm()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.gmail.nossr50.util.random;
|
||||
|
||||
import com.gmail.nossr50.config.AdvancedConfig;
|
||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||
import com.gmail.nossr50.datatypes.skills.SubSkillType;
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
|
Loading…
Reference in New Issue
Block a user