From 14fa243b69c9596fa8ea7c0b04fe8715c2317964 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 23 Sep 2019 19:42:47 -0700 Subject: [PATCH] Refactor McMMOAbilityEvent(s) and fix TextComponentFactory --- .../gmail/nossr50/config/ConfigManager.java | 52 +- .../config/experience/ExperienceConfig.java | 680 +++++++++--------- .../McMMOPlayerAbilityActivateEvent.java | 5 +- .../McMMOPlayerAbilityDeactivateEvent.java | 5 +- .../abilities/McMMOPlayerAbilityEvent.java | 12 +- .../skills/excavation/ExcavationManager.java | 83 +-- .../skills/herbalism/HerbalismManager.java | 63 +- .../nossr50/util/TextComponentFactory.java | 20 +- 8 files changed, 455 insertions(+), 465 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/ConfigManager.java b/src/main/java/com/gmail/nossr50/config/ConfigManager.java index 0e9348534..3f10dbb64 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigManager.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigManager.java @@ -154,42 +154,42 @@ public final class ConfigManager { } private void initSerializedDataFiles() { - partyData = new SerializedConfigLoader<>(ConfigPartyData.class, "partydata.conf", "PartyData", null); + partyData = new SerializedConfigLoader<>(pluginRef, ConfigPartyData.class, "partydata.conf", "PartyData", null); } private void initSerializedConfigs() { //There's some race conditions here because mcMMO is goddamn spaghetti mess, language has to load first - configLanguage = new SerializedConfigLoader<>(ConfigLanguage.class, "language.conf", "Language", null); + configLanguage = new SerializedConfigLoader<>(pluginRef, ConfigLanguage.class, "language.conf", "Language", null); /* * No more race conditions */ - configDatabase = new SerializedConfigLoader<>(ConfigDatabase.class, "database_settings.conf", "Database", null); - configScoreboard = new SerializedConfigLoader<>(ConfigScoreboard.class, "scoreboard.conf", "Scoreboard", null); - configLeveling = new SerializedConfigLoader<>(ConfigLeveling.class, "player_leveling.conf", "Player-Leveling", null); - configWorldBlacklist = new SerializedConfigLoader<>(ConfigWorldBlacklist.class, "world_blacklist.conf", "World-Blacklist", null); - configExploitPrevention = new SerializedConfigLoader<>(ConfigExploitPrevention.class, "anti_exploit.conf", "Anti-Exploit", null); - configMOTD = new SerializedConfigLoader<>(ConfigMOTD.class, "message_of_the_day.conf", "MOTD", null); - configHardcore = new SerializedConfigLoader<>(ConfigHardcore.class, "hardcore_mode.conf", "Hardcore-Mode", null); - configMetrics = new SerializedConfigLoader<>(ConfigMetrics.class, "analytics_reporting.conf", "Analytic-Reporting", null); - configAuthorAdvertisements = new SerializedConfigLoader<>(ConfigAuthorAdvertisements.class, "author_support_advertisements.conf", "mcMMO", null); - configAutomatedBackups = new SerializedConfigLoader<>(ConfigAutomatedBackups.class, "automated_backups.conf", "Automated-Backups", null); - configCommands = new SerializedConfigLoader<>(ConfigCommands.class, "commands.conf", "Commands", null); - configItems = new SerializedConfigLoader<>(ConfigItems.class, "custom_items.conf", "Items", null); - configParticles = new SerializedConfigLoader<>(ConfigParticles.class, "particle_spawning.conf", "Particles", null); - configParty = new SerializedConfigLoader<>(ConfigParty.class, "party.conf", "Party", null); - configNotifications = new SerializedConfigLoader<>(ConfigNotifications.class, "alerts_and_notifications.conf", "Notifications", null); - configSuperAbilities = new SerializedConfigLoader<>(ConfigSuperAbilities.class, "skill_super_abilities.conf", "Super-Abilities", null); - configAdmin = new SerializedConfigLoader<>(ConfigAdmin.class, "admin.conf", "Admin", null); - configMobs = new SerializedConfigLoader<>(ConfigMobs.class, "creatures.conf", "Creatures", null); - configExperience = new SerializedConfigLoader<>(ConfigExperience.class, "experience.conf", "Experience", null); - configCoreSkills = new SerializedConfigLoader<>(ConfigCoreSkills.class, "core_skills.conf", "Core-Skills", null); - configEvent = new SerializedConfigLoader<>(ConfigEvent.class, "events.conf", "Events", null); - configRanks = new SerializedConfigLoader<>(ConfigRanks.class, "ranks.conf", "Skill-Ranks", null); - configSound = new SerializedConfigLoader<>(ConfigSound.class, "sounds.conf", "Sounds", null); + configDatabase = new SerializedConfigLoader<>(pluginRef, ConfigDatabase.class, "database_settings.conf", "Database", null); + configScoreboard = new SerializedConfigLoader<>(pluginRef, ConfigScoreboard.class, "scoreboard.conf", "Scoreboard", null); + configLeveling = new SerializedConfigLoader<>(pluginRef, ConfigLeveling.class, "player_leveling.conf", "Player-Leveling", null); + configWorldBlacklist = new SerializedConfigLoader<>(pluginRef, ConfigWorldBlacklist.class, "world_blacklist.conf", "World-Blacklist", null); + configExploitPrevention = new SerializedConfigLoader<>(pluginRef, ConfigExploitPrevention.class, "anti_exploit.conf", "Anti-Exploit", null); + configMOTD = new SerializedConfigLoader<>(pluginRef, ConfigMOTD.class, "message_of_the_day.conf", "MOTD", null); + configHardcore = new SerializedConfigLoader<>(pluginRef, ConfigHardcore.class, "hardcore_mode.conf", "Hardcore-Mode", null); + configMetrics = new SerializedConfigLoader<>(pluginRef, ConfigMetrics.class, "analytics_reporting.conf", "Analytic-Reporting", null); + configAuthorAdvertisements = new SerializedConfigLoader<>(pluginRef, ConfigAuthorAdvertisements.class, "author_support_advertisements.conf", "mcMMO", null); + configAutomatedBackups = new SerializedConfigLoader<>(pluginRef, ConfigAutomatedBackups.class, "automated_backups.conf", "Automated-Backups", null); + configCommands = new SerializedConfigLoader<>(pluginRef, ConfigCommands.class, "commands.conf", "Commands", null); + configItems = new SerializedConfigLoader<>(pluginRef, ConfigItems.class, "custom_items.conf", "Items", null); + configParticles = new SerializedConfigLoader<>(pluginRef, ConfigParticles.class, "particle_spawning.conf", "Particles", null); + configParty = new SerializedConfigLoader<>(pluginRef, ConfigParty.class, "party.conf", "Party", null); + configNotifications = new SerializedConfigLoader<>(pluginRef, ConfigNotifications.class, "alerts_and_notifications.conf", "Notifications", null); + configSuperAbilities = new SerializedConfigLoader<>(pluginRef, ConfigSuperAbilities.class, "skill_super_abilities.conf", "Super-Abilities", null); + configAdmin = new SerializedConfigLoader<>(pluginRef, ConfigAdmin.class, "admin.conf", "Admin", null); + configMobs = new SerializedConfigLoader<>(pluginRef, ConfigMobs.class, "creatures.conf", "Creatures", null); + configExperience = new SerializedConfigLoader<>(pluginRef, ConfigExperience.class, "experience.conf", "Experience", null); + configCoreSkills = new SerializedConfigLoader<>(pluginRef, ConfigCoreSkills.class, "core_skills.conf", "Core-Skills", null); + configEvent = new SerializedConfigLoader<>(pluginRef, ConfigEvent.class, "events.conf", "Events", null); + configRanks = new SerializedConfigLoader<>(pluginRef, ConfigRanks.class, "ranks.conf", "Skill-Ranks", null); + configSound = new SerializedConfigLoader<>(pluginRef, ConfigSound.class, "sounds.conf", "Sounds", null); - configDefaultExamples = new SerializedConfigLoader<>(ConfigNameRegisterDefaults.class, "minecraft_item_block_name_examples.conf", "Minecraft", null); + configDefaultExamples = new SerializedConfigLoader<>(pluginRef, ConfigNameRegisterDefaults.class, "minecraft_item_block_name_examples.conf", "Minecraft", null); initSerializedSkillConfigs(); } diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java index 13c88d329..0a515d9d7 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -1,340 +1,340 @@ -package com.gmail.nossr50.config.experience; - -import com.gmail.nossr50.config.AutoUpdateConfigLoader; -import com.gmail.nossr50.datatypes.experience.FormulaType; -import com.gmail.nossr50.datatypes.skills.MaterialType; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.datatypes.skills.alchemy.PotionStage; -import com.gmail.nossr50.util.StringUtils; -import org.bukkit.Material; -import org.bukkit.block.data.BlockData; -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarStyle; -import org.bukkit.entity.EntityType; - -import java.util.ArrayList; -import java.util.List; - -public class ExperienceConfig extends AutoUpdateConfigLoader { - private static ExperienceConfig instance; - - private ExperienceConfig() { - super("experience.yml"); - validate(); - } - - public static ExperienceConfig getInstance() { - if (instance == null) { - instance = new ExperienceConfig(); - } - - return instance; - } - - @Override - protected void loadKeys() {} - - @Override - protected boolean validateKeys() { - List reason = new ArrayList(); - - /* - * FORMULA SETTINGS - */ - - /* Curve values */ - if (getMultiplier(FormulaType.EXPONENTIAL) <= 0) { - reason.add("Experience_Formula.Exponential_Values.multiplier should be greater than 0!"); - } - - if (getMultiplier(FormulaType.LINEAR) <= 0) { - reason.add("Experience_Formula.Linear_Values.multiplier should be greater than 0!"); - } - - if (getExponent(FormulaType.EXPONENTIAL) <= 0) { - reason.add("Experience_Formula.Exponential_Values.exponent should be greater than 0!"); - } - - /* Global modifier */ - if (getExperienceGainsGlobalMultiplier() <= 0) { - reason.add("Experience_Formula.Multiplier.Global should be greater than 0!"); - } - - /* PVP modifier */ - if (getPlayerVersusPlayerXP() < 0) { - reason.add("Experience_Formula.Multiplier.PVP should be at least 0!"); - } - - /* Spawned Mob modifier */ - if (getSpawnedMobXpMultiplier() < 0) { - reason.add("Experience_Formula.Mobspawners.Multiplier should be at least 0!"); - } - - /* Bred Mob modifier */ - if (getBredMobXpMultiplier() < 0) { - reason.add("Experience_Formula.Breeding.Multiplier should be at least 0!"); - } - - /* Conversion */ - if (getExpModifier() <= 0) { - reason.add("Conversion.Exp_Modifier should be greater than 0!"); - } - - /* - * XP SETTINGS - */ - - /* Alchemy */ - for (PotionStage potionStage : PotionStage.values()) { - if (getPotionXP(potionStage) < 0) { - reason.add("Experience_Values.Alchemy.Potion_Stage_" + potionStage.toNumerical() + " should be at least 0!"); - } - } - - /* Archery */ - if (getArcheryDistanceMultiplier() < 0) { - reason.add("Experience_Values.Archery.Distance_Multiplier should be at least 0!"); - } - - /* Combat XP Multipliers */ - if (getAnimalsXP() < 0) { - reason.add("Experience_Values.Combat.Multiplier.Animals should be at least 0!"); - } - - if (getDodgeXPModifier() < 0) { - reason.add("Skills.Acrobatics.Dodge_XP_Modifier should be at least 0!"); - } - - if (getRollXPModifier() < 0) { - reason.add("Skills.Acrobatics.Roll_XP_Modifier should be at least 0!"); - } - - if (getFallXPModifier() < 0) { - reason.add("Skills.Acrobatics.Fall_XP_Modifier should be at least 0!"); - } - - /* Fishing */ - // TODO: Add validation for each fish type once enum is available. - - if (getFishingShakeXP() <= 0) { - reason.add("Experience_Values.Fishing.Shake should be greater than 0!"); - } - - /* Repair */ - if (getRepairXPBase() <= 0) { - reason.add("Experience_Values.Repair.Base should be greater than 0!"); - } - - /* Taming */ - if (getTamingXP(EntityType.WOLF) <= 0) { - reason.add("Experience_Values.Taming.Animal_Taming.Wolf should be greater than 0!"); - } - - if (getTamingXP(EntityType.OCELOT) <= 0) { - reason.add("Experience_Values.Taming.Animal_Taming.Ocelot should be greater than 0!"); - } - - return noErrorsInConfig(reason); - } - - public boolean isEarlyGameBoostEnabled() { return config.getBoolean("EarlyGameBoost.Enabled", true); } - - /* - * FORMULA SETTINGS - */ - - /* EXPLOIT TOGGLES */ - public boolean isEndermanEndermiteFarmingPrevented() { return config.getBoolean("ExploitFix.EndermanEndermiteFarms", true); } - public boolean isPistonCheatingPrevented() { return config.getBoolean("ExploitFix.PistonCheating", true); } - public boolean isPistonExploitPrevented() { return config.getBoolean("ExploitFix.Pistons", false); } - public boolean allowUnsafeEnchantments() { return config.getBoolean("ExploitFix.UnsafeEnchantments", false); } - public boolean isCOTWBreedingPrevented() { return config.getBoolean("ExploitFix.COTWBreeding", true); } - - public boolean isFishingExploitingPrevented() { return config.getBoolean("ExploitFix.Fishing", true); } - public boolean isAcrobaticsExploitingPrevented() { return config.getBoolean("ExploitFix.Acrobatics", true); } - public boolean isTreeFellerXPReduced() { return config.getBoolean("ExploitFix.TreeFellerReducedXP", true); } - - /* Curve settings */ - public FormulaType getFormulaType() { return FormulaType.getFormulaType(config.getString("Experience_Formula.Curve")); } - public boolean getCumulativeCurveEnabled() { return config.getBoolean("Experience_Formula.Cumulative_Curve", false); } - - /* Curve values */ - public double getMultiplier(FormulaType type) { return config.getDouble("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.multiplier"); } - public int getBase(FormulaType type) { return config.getInt("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.base"); } - public double getExponent(FormulaType type) { return config.getDouble("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.exponent"); } - - /* Global modifier */ - public double getExperienceGainsGlobalMultiplier() { return config.getDouble("Experience_Formula.Multiplier.Global", 1.0); } - public void setExperienceGainsGlobalMultiplier(double value) { config.set("Experience_Formula.Multiplier.Global", value); } - - /* PVP modifier */ - public double getPlayerVersusPlayerXP() { return config.getDouble("Experience_Formula.Multiplier.PVP", 1.0); } - - /* Spawned Mob modifier */ - public double getSpawnedMobXpMultiplier() { return config.getDouble("Experience_Formula.Mobspawners.Multiplier", 0.0); } - public double getBredMobXpMultiplier() { return config.getDouble("Experience_Formula.Breeding.Multiplier", 1.0); } - - /* Skill modifiers */ - public double getFormulaSkillModifier(PrimarySkillType skill) { return config.getDouble("Experience_Formula.Modifier." + StringUtils.getCapitalized(skill.toString())); } - - /* Custom XP perk */ - public double getCustomXpPerkBoost() { return config.getDouble("Experience_Formula.Custom_XP_Perk.Boost", 1.25); } - - /* Diminished Returns */ - public float getDiminishedReturnsCap() { return (float) config.getDouble("Dimished_Returns.Guaranteed_Minimum_Percentage", 0.05D); } - public boolean getDiminishedReturnsEnabled() { return config.getBoolean("Diminished_Returns.Enabled", false); } - public int getDiminishedReturnsThreshold(PrimarySkillType skill) { return config.getInt("Diminished_Returns.Threshold." + StringUtils.getCapitalized(skill.toString()), 20000); } - public int getDiminishedReturnsTimeInterval() { return config.getInt("Diminished_Returns.Time_Interval", 10); } - - /* Conversion */ - public double getExpModifier() { return config.getDouble("Conversion.Exp_Modifier", 1); } - - /* - * XP SETTINGS - */ - - /* General Settings */ - public boolean getExperienceGainsPlayerVersusPlayerEnabled() { return config.getBoolean("Experience_Values.PVP.Rewards", true); } - - /* Combat XP Multipliers */ - public double getCombatXP(EntityType entity) { return config.getDouble("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_")); } - public double getAnimalsXP(EntityType entity) { return config.getDouble("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_"), getAnimalsXP()); } - public double getAnimalsXP() { return config.getDouble("Experience_Values.Combat.Multiplier.Animals", 1.0); } - public boolean hasCombatXP(EntityType entity) {return config.contains("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_")); } - - /* Materials */ - public int getXp(PrimarySkillType skill, Material data) - { - String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; - String explicitString = baseString + StringUtils.getExplicitConfigMaterialString(data); - if (config.contains(explicitString)) - return config.getInt(explicitString); - String friendlyString = baseString + StringUtils.getFriendlyConfigMaterialString(data); - if (config.contains(friendlyString)) - return config.getInt(friendlyString); - String wildcardString = baseString + StringUtils.getWildcardConfigMaterialString(data); - if (config.contains(wildcardString)) - return config.getInt(wildcardString); - return 0; - } - - /* Materials */ - public int getXp(PrimarySkillType skill, BlockData data) - { - String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; - String explicitString = baseString + StringUtils.getExplicitConfigBlockDataString(data); - if (config.contains(explicitString)) - return config.getInt(explicitString); - String friendlyString = baseString + StringUtils.getFriendlyConfigBlockDataString(data); - if (config.contains(friendlyString)) - return config.getInt(friendlyString); - String wildcardString = baseString + StringUtils.getWildcardConfigBlockDataString(data); - if (config.contains(wildcardString)) - return config.getInt(wildcardString); - return 0; - } - - public boolean doesBlockGiveSkillXP(PrimarySkillType skill, Material data) - { - String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; - String explicitString = baseString + StringUtils.getExplicitConfigMaterialString(data); - if (config.contains(explicitString)) - return true; - String friendlyString = baseString + StringUtils.getFriendlyConfigMaterialString(data); - if (config.contains(friendlyString)) - return true; - String wildcardString = baseString + StringUtils.getWildcardConfigMaterialString(data); - return config.contains(wildcardString); - } - - public boolean doesBlockGiveSkillXP(PrimarySkillType skill, BlockData data) - { - String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; - String explicitString = baseString + StringUtils.getExplicitConfigBlockDataString(data); - if (config.contains(explicitString)) - return true; - String friendlyString = baseString + StringUtils.getFriendlyConfigBlockDataString(data); - if (config.contains(friendlyString)) - return true; - String wildcardString = baseString + StringUtils.getWildcardConfigBlockDataString(data); - return config.contains(wildcardString); - } - - /* - * Experience Bar Stuff - */ - - public boolean isPartyExperienceBarsEnabled() - { - return config.getBoolean("Experience_Bars.Update.Party", true); - } - - public boolean isPassiveGainsExperienceBarsEnabled() - { - return config.getBoolean("Experience_Bars.Update.Passive", true); - } - - public boolean getDoExperienceBarsAlwaysUpdateTitle() - { - return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.Enable", false) || getAddExtraDetails(); - } - - public boolean getAddExtraDetails() { return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false);} - public boolean isExperienceBarsEnabled() { return config.getBoolean("Experience_Bars.Enable", true); } - public boolean isExperienceBarEnabled(PrimarySkillType primarySkillType) { return config.getBoolean("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".Enable", true);} - - public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) - { - String colorValueFromConfig = config.getString("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".Color"); - - for(BarColor barColor : BarColor.values()) - { - if(barColor.toString().equalsIgnoreCase(colorValueFromConfig)) - return barColor; - } - - //In case the value is invalid - return BarColor.WHITE; - } - - public BarStyle getExperienceBarStyle(PrimarySkillType primarySkillType) - { - String colorValueFromConfig = config.getString("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".BarStyle"); - - for(BarStyle barStyle : BarStyle.values()) - { - if(barStyle.toString().equalsIgnoreCase(colorValueFromConfig)) - return barStyle; - } - - //In case the value is invalid - return BarStyle.SOLID; - } - - /* Acrobatics */ - public int getDodgeXPModifier() { return config.getInt("Experience_Values.Acrobatics.Dodge", 120); } - public int getRollXPModifier() { return config.getInt("Experience_Values.Acrobatics.Roll", 80); } - public int getFallXPModifier() { return config.getInt("Experience_Values.Acrobatics.Fall", 120); } - - public double getFeatherFallXPModifier() { return config.getDouble("Experience_Values.Acrobatics.FeatherFall_Multiplier", 2.0); } - - /* Alchemy */ - public double getPotionXP(PotionStage stage) { return config.getDouble("Experience_Values.Alchemy.Potion_Stage_" + stage.toNumerical(), 10D); } - - /* Archery */ - public double getArcheryDistanceMultiplier() { return config.getDouble("Experience_Values.Archery.Distance_Multiplier", 0.025); } - - public int getFishingShakeXP() { return config.getInt("Experience_Values.Fishing.Shake", 50); } - - /* Repair */ - public double getRepairXPBase() { return config.getDouble("Experience_Values.Repair.Base", 1000.0); } - public double getRepairXP(MaterialType repairMaterialType) { return config.getDouble("Experience_Values.Repair." + StringUtils.getCapitalized(repairMaterialType.toString())); } - - /* Taming */ - public int getTamingXP(EntityType type) - { - return config.getInt("Experience_Values.Taming.Animal_Taming." + StringUtils.getPrettyEntityTypeString(type)); - } - - public boolean preventStoneLavaFarming() { return config.getBoolean("ExploitFix.LavaStoneAndCobbleFarming", true);} -} +//package com.gmail.nossr50.config.experience; +// +//import com.gmail.nossr50.config.AutoUpdateConfigLoader; +//import com.gmail.nossr50.datatypes.experience.FormulaType; +//import com.gmail.nossr50.datatypes.skills.MaterialType; +//import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +//import com.gmail.nossr50.datatypes.skills.alchemy.PotionStage; +//import com.gmail.nossr50.util.StringUtils; +//import org.bukkit.Material; +//import org.bukkit.block.data.BlockData; +//import org.bukkit.boss.BarColor; +//import org.bukkit.boss.BarStyle; +//import org.bukkit.entity.EntityType; +// +//import java.util.ArrayList; +//import java.util.List; +// +//public class ExperienceConfig extends AutoUpdateConfigLoader { +// private static ExperienceConfig instance; +// +// private ExperienceConfig() { +// super("experience.yml"); +// validate(); +// } +// +// public static ExperienceConfig getInstance() { +// if (instance == null) { +// instance = new ExperienceConfig(); +// } +// +// return instance; +// } +// +// @Override +// protected void loadKeys() {} +// +// @Override +// protected boolean validateKeys() { +// List reason = new ArrayList(); +// +// /* +// * FORMULA SETTINGS +// */ +// +// /* Curve values */ +// if (getMultiplier(FormulaType.EXPONENTIAL) <= 0) { +// reason.add("Experience_Formula.Exponential_Values.multiplier should be greater than 0!"); +// } +// +// if (getMultiplier(FormulaType.LINEAR) <= 0) { +// reason.add("Experience_Formula.Linear_Values.multiplier should be greater than 0!"); +// } +// +// if (getExponent(FormulaType.EXPONENTIAL) <= 0) { +// reason.add("Experience_Formula.Exponential_Values.exponent should be greater than 0!"); +// } +// +// /* Global modifier */ +// if (getExperienceGainsGlobalMultiplier() <= 0) { +// reason.add("Experience_Formula.Multiplier.Global should be greater than 0!"); +// } +// +// /* PVP modifier */ +// if (getPlayerVersusPlayerXP() < 0) { +// reason.add("Experience_Formula.Multiplier.PVP should be at least 0!"); +// } +// +// /* Spawned Mob modifier */ +// if (getSpawnedMobXpMultiplier() < 0) { +// reason.add("Experience_Formula.Mobspawners.Multiplier should be at least 0!"); +// } +// +// /* Bred Mob modifier */ +// if (getBredMobXpMultiplier() < 0) { +// reason.add("Experience_Formula.Breeding.Multiplier should be at least 0!"); +// } +// +// /* Conversion */ +// if (getExpModifier() <= 0) { +// reason.add("Conversion.Exp_Modifier should be greater than 0!"); +// } +// +// /* +// * XP SETTINGS +// */ +// +// /* Alchemy */ +// for (PotionStage potionStage : PotionStage.values()) { +// if (getPotionXP(potionStage) < 0) { +// reason.add("Experience_Values.Alchemy.Potion_Stage_" + potionStage.toNumerical() + " should be at least 0!"); +// } +// } +// +// /* Archery */ +// if (getArcheryDistanceMultiplier() < 0) { +// reason.add("Experience_Values.Archery.Distance_Multiplier should be at least 0!"); +// } +// +// /* Combat XP Multipliers */ +// if (getAnimalsXP() < 0) { +// reason.add("Experience_Values.Combat.Multiplier.Animals should be at least 0!"); +// } +// +// if (getDodgeXPModifier() < 0) { +// reason.add("Skills.Acrobatics.Dodge_XP_Modifier should be at least 0!"); +// } +// +// if (getRollXPModifier() < 0) { +// reason.add("Skills.Acrobatics.Roll_XP_Modifier should be at least 0!"); +// } +// +// if (getFallXPModifier() < 0) { +// reason.add("Skills.Acrobatics.Fall_XP_Modifier should be at least 0!"); +// } +// +// /* Fishing */ +// // TODO: Add validation for each fish type once enum is available. +// +// if (getFishingShakeXP() <= 0) { +// reason.add("Experience_Values.Fishing.Shake should be greater than 0!"); +// } +// +// /* Repair */ +// if (getRepairXPBase() <= 0) { +// reason.add("Experience_Values.Repair.Base should be greater than 0!"); +// } +// +// /* Taming */ +// if (getTamingXP(EntityType.WOLF) <= 0) { +// reason.add("Experience_Values.Taming.Animal_Taming.Wolf should be greater than 0!"); +// } +// +// if (getTamingXP(EntityType.OCELOT) <= 0) { +// reason.add("Experience_Values.Taming.Animal_Taming.Ocelot should be greater than 0!"); +// } +// +// return noErrorsInConfig(reason); +// } +// +// public boolean isEarlyGameBoostEnabled() { return config.getBoolean("EarlyGameBoost.Enabled", true); } +// +// /* +// * FORMULA SETTINGS +// */ +// +// /* EXPLOIT TOGGLES */ +// public boolean isEndermanEndermiteFarmingPrevented() { return config.getBoolean("ExploitFix.EndermanEndermiteFarms", true); } +// public boolean isPistonCheatingPrevented() { return config.getBoolean("ExploitFix.PistonCheating", true); } +// public boolean isPistonExploitPrevented() { return config.getBoolean("ExploitFix.Pistons", false); } +// public boolean allowUnsafeEnchantments() { return config.getBoolean("ExploitFix.UnsafeEnchantments", false); } +// public boolean isCOTWBreedingPrevented() { return config.getBoolean("ExploitFix.COTWBreeding", true); } +// +// public boolean isFishingExploitingPrevented() { return config.getBoolean("ExploitFix.Fishing", true); } +// public boolean isAcrobaticsExploitingPrevented() { return config.getBoolean("ExploitFix.Acrobatics", true); } +// public boolean isTreeFellerXPReduced() { return config.getBoolean("ExploitFix.TreeFellerReducedXP", true); } +// +// /* Curve settings */ +// public FormulaType getFormulaType() { return FormulaType.getFormulaType(config.getString("Experience_Formula.Curve")); } +// public boolean getCumulativeCurveEnabled() { return config.getBoolean("Experience_Formula.Cumulative_Curve", false); } +// +// /* Curve values */ +// public double getMultiplier(FormulaType type) { return config.getDouble("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.multiplier"); } +// public int getBase(FormulaType type) { return config.getInt("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.base"); } +// public double getExponent(FormulaType type) { return config.getDouble("Experience_Formula." + StringUtils.getCapitalized(type.toString()) + "_Values.exponent"); } +// +// /* Global modifier */ +// public double getExperienceGainsGlobalMultiplier() { return config.getDouble("Experience_Formula.Multiplier.Global", 1.0); } +// public void setExperienceGainsGlobalMultiplier(double value) { config.set("Experience_Formula.Multiplier.Global", value); } +// +// /* PVP modifier */ +// public double getPlayerVersusPlayerXP() { return config.getDouble("Experience_Formula.Multiplier.PVP", 1.0); } +// +// /* Spawned Mob modifier */ +// public double getSpawnedMobXpMultiplier() { return config.getDouble("Experience_Formula.Mobspawners.Multiplier", 0.0); } +// public double getBredMobXpMultiplier() { return config.getDouble("Experience_Formula.Breeding.Multiplier", 1.0); } +// +// /* Skill modifiers */ +// public double getFormulaSkillModifier(PrimarySkillType skill) { return config.getDouble("Experience_Formula.Modifier." + StringUtils.getCapitalized(skill.toString())); } +// +// /* Custom XP perk */ +// public double getCustomXpPerkBoost() { return config.getDouble("Experience_Formula.Custom_XP_Perk.Boost", 1.25); } +// +// /* Diminished Returns */ +// public float getDiminishedReturnsCap() { return (float) config.getDouble("Dimished_Returns.Guaranteed_Minimum_Percentage", 0.05D); } +// public boolean getDiminishedReturnsEnabled() { return config.getBoolean("Diminished_Returns.Enabled", false); } +// public int getDiminishedReturnsThreshold(PrimarySkillType skill) { return config.getInt("Diminished_Returns.Threshold." + StringUtils.getCapitalized(skill.toString()), 20000); } +// public int getDiminishedReturnsTimeInterval() { return config.getInt("Diminished_Returns.Time_Interval", 10); } +// +// /* Conversion */ +// public double getExpModifier() { return config.getDouble("Conversion.Exp_Modifier", 1); } +// +// /* +// * XP SETTINGS +// */ +// +// /* General Settings */ +// public boolean getExperienceGainsPlayerVersusPlayerEnabled() { return config.getBoolean("Experience_Values.PVP.Rewards", true); } +// +// /* Combat XP Multipliers */ +// public double getCombatXP(EntityType entity) { return config.getDouble("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_")); } +// public double getAnimalsXP(EntityType entity) { return config.getDouble("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_"), getAnimalsXP()); } +// public double getAnimalsXP() { return config.getDouble("Experience_Values.Combat.Multiplier.Animals", 1.0); } +// public boolean hasCombatXP(EntityType entity) {return config.contains("Experience_Values.Combat.Multiplier." + StringUtils.getPrettyEntityTypeString(entity).replace(" ", "_")); } +// +// /* Materials */ +// public int getXp(PrimarySkillType skill, Material data) +// { +// String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; +// String explicitString = baseString + StringUtils.getExplicitConfigMaterialString(data); +// if (config.contains(explicitString)) +// return config.getInt(explicitString); +// String friendlyString = baseString + StringUtils.getFriendlyConfigMaterialString(data); +// if (config.contains(friendlyString)) +// return config.getInt(friendlyString); +// String wildcardString = baseString + StringUtils.getWildcardConfigMaterialString(data); +// if (config.contains(wildcardString)) +// return config.getInt(wildcardString); +// return 0; +// } +// +// /* Materials */ +// public int getXp(PrimarySkillType skill, BlockData data) +// { +// String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; +// String explicitString = baseString + StringUtils.getExplicitConfigBlockDataString(data); +// if (config.contains(explicitString)) +// return config.getInt(explicitString); +// String friendlyString = baseString + StringUtils.getFriendlyConfigBlockDataString(data); +// if (config.contains(friendlyString)) +// return config.getInt(friendlyString); +// String wildcardString = baseString + StringUtils.getWildcardConfigBlockDataString(data); +// if (config.contains(wildcardString)) +// return config.getInt(wildcardString); +// return 0; +// } +// +// public boolean doesBlockGiveSkillXP(PrimarySkillType skill, Material data) +// { +// String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; +// String explicitString = baseString + StringUtils.getExplicitConfigMaterialString(data); +// if (config.contains(explicitString)) +// return true; +// String friendlyString = baseString + StringUtils.getFriendlyConfigMaterialString(data); +// if (config.contains(friendlyString)) +// return true; +// String wildcardString = baseString + StringUtils.getWildcardConfigMaterialString(data); +// return config.contains(wildcardString); +// } +// +// public boolean doesBlockGiveSkillXP(PrimarySkillType skill, BlockData data) +// { +// String baseString = "Experience_Values." + StringUtils.getCapitalized(skill.toString()) + "."; +// String explicitString = baseString + StringUtils.getExplicitConfigBlockDataString(data); +// if (config.contains(explicitString)) +// return true; +// String friendlyString = baseString + StringUtils.getFriendlyConfigBlockDataString(data); +// if (config.contains(friendlyString)) +// return true; +// String wildcardString = baseString + StringUtils.getWildcardConfigBlockDataString(data); +// return config.contains(wildcardString); +// } +// +// /* +// * Experience Bar Stuff +// */ +// +// public boolean isPartyExperienceBarsEnabled() +// { +// return config.getBoolean("Experience_Bars.Update.Party", true); +// } +// +// public boolean isPassiveGainsExperienceBarsEnabled() +// { +// return config.getBoolean("Experience_Bars.Update.Passive", true); +// } +// +// public boolean getDoExperienceBarsAlwaysUpdateTitle() +// { +// return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.Enable", false) || getAddExtraDetails(); +// } +// +// public boolean getAddExtraDetails() { return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false);} +// public boolean isExperienceBarsEnabled() { return config.getBoolean("Experience_Bars.Enable", true); } +// public boolean isExperienceBarEnabled(PrimarySkillType primarySkillType) { return config.getBoolean("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".Enable", true);} +// +// public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) +// { +// String colorValueFromConfig = config.getString("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".Color"); +// +// for(BarColor barColor : BarColor.values()) +// { +// if(barColor.toString().equalsIgnoreCase(colorValueFromConfig)) +// return barColor; +// } +// +// //In case the value is invalid +// return BarColor.WHITE; +// } +// +// public BarStyle getExperienceBarStyle(PrimarySkillType primarySkillType) +// { +// String colorValueFromConfig = config.getString("Experience_Bars."+StringUtils.getCapitalized(primarySkillType.toString())+".BarStyle"); +// +// for(BarStyle barStyle : BarStyle.values()) +// { +// if(barStyle.toString().equalsIgnoreCase(colorValueFromConfig)) +// return barStyle; +// } +// +// //In case the value is invalid +// return BarStyle.SOLID; +// } +// +// /* Acrobatics */ +// public int getDodgeXPModifier() { return config.getInt("Experience_Values.Acrobatics.Dodge", 120); } +// public int getRollXPModifier() { return config.getInt("Experience_Values.Acrobatics.Roll", 80); } +// public int getFallXPModifier() { return config.getInt("Experience_Values.Acrobatics.Fall", 120); } +// +// public double getFeatherFallXPModifier() { return config.getDouble("Experience_Values.Acrobatics.FeatherFall_Multiplier", 2.0); } +// +// /* Alchemy */ +// public double getPotionXP(PotionStage stage) { return config.getDouble("Experience_Values.Alchemy.Potion_Stage_" + stage.toNumerical(), 10D); } +// +// /* Archery */ +// public double getArcheryDistanceMultiplier() { return config.getDouble("Experience_Values.Archery.Distance_Multiplier", 0.025); } +// +// public int getFishingShakeXP() { return config.getInt("Experience_Values.Fishing.Shake", 50); } +// +// /* Repair */ +// public double getRepairXPBase() { return config.getDouble("Experience_Values.Repair.Base", 1000.0); } +// public double getRepairXP(MaterialType repairMaterialType) { return config.getDouble("Experience_Values.Repair." + StringUtils.getCapitalized(repairMaterialType.toString())); } +// +// /* Taming */ +// public int getTamingXP(EntityType type) +// { +// return config.getInt("Experience_Values.Taming.Animal_Taming." + StringUtils.getPrettyEntityTypeString(type)); +// } +// +// public boolean preventStoneLavaFarming() { return config.getBoolean("ExploitFix.LavaStoneAndCobbleFarming", true);} +//} diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java index 7b0db958b..7b5bb450f 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java @@ -1,14 +1,15 @@ package com.gmail.nossr50.events.skills.abilities; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; public class McMMOPlayerAbilityActivateEvent extends McMMOPlayerAbilityEvent implements Cancellable { private boolean cancelled; - public McMMOPlayerAbilityActivateEvent(Player player, PrimarySkillType skill) { - super(player, skill); + public McMMOPlayerAbilityActivateEvent(Player player, PrimarySkillType skill, SuperAbilityType superAbilityType) { + super(player, skill, superAbilityType); cancelled = false; } diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java index 384b61c92..ae9554b29 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java @@ -1,10 +1,11 @@ package com.gmail.nossr50.events.skills.abilities; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import org.bukkit.entity.Player; public class McMMOPlayerAbilityDeactivateEvent extends McMMOPlayerAbilityEvent { - public McMMOPlayerAbilityDeactivateEvent(Player player, PrimarySkillType skill) { - super(player, skill); + public McMMOPlayerAbilityDeactivateEvent(Player player, PrimarySkillType primarySkillType, SuperAbilityType superAbilityType) { + super(player, primarySkillType, superAbilityType); } } diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java index 400b9ff6a..530cadfdf 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java @@ -6,14 +6,14 @@ import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent; import org.bukkit.entity.Player; public class McMMOPlayerAbilityEvent extends McMMOPlayerSkillEvent { - private SuperAbilityType ability; + private SuperAbilityType superAbilityType; - protected McMMOPlayerAbilityEvent(Player player, PrimarySkillType skill) { - super(player, skill); - ability = skill.getSuperAbility(); + protected McMMOPlayerAbilityEvent(Player player, PrimarySkillType primarySkillType, SuperAbilityType superAbilityType) { + super(player, primarySkillType); + this.superAbilityType = superAbilityType; } - public SuperAbilityType getAbility() { - return ability; + public SuperAbilityType getSuperAbilityType() { + return superAbilityType; } } diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java index 51a2c0bff..d213bba30 100644 --- a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java +++ b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java @@ -5,18 +5,11 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.behaviours.ExcavationBehaviour; -import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.SkillManager; -import com.gmail.nossr50.util.Misc; -import org.bukkit.Location; import org.bukkit.block.BlockState; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.ExperienceOrb; import org.bukkit.entity.Player; -import java.util.List; - public class ExcavationManager extends SkillManager { private final ExcavationBehaviour excavationBehaviour; @@ -34,29 +27,29 @@ public class ExcavationManager extends SkillManager { public void excavationBlockCheck(BlockState blockState) { int xp = excavationBehaviour.getBlockXP(blockState); - if (pluginRef.getPermissionTools().isSubSkillEnabled(getPlayer(), SubSkillType.EXCAVATION_ARCHAEOLOGY)) { - List treasures = excavationBehaviour.getTreasures(blockState); - - if (!treasures.isEmpty()) { - int skillLevel = getSkillLevel(); - Location location = Misc.getBlockCenter(blockState); - - for (ExcavationTreasure treasure : treasures) { - if (skillLevel >= treasure.getDropLevel() - && pluginRef.getRandomChanceTools().checkRandomChanceExecutionSuccess(getPlayer(), PrimarySkillType.EXCAVATION, treasure.getDropChance())) { - - //Spawn Vanilla XP orbs if a dice roll succeeds - if(pluginRef.getRandomChanceTools().rollDice(getArchaelogyExperienceOrbChance(), 100)) { - ExperienceOrb experienceOrb = (ExperienceOrb) getPlayer().getWorld().spawnEntity(location, EntityType.EXPERIENCE_ORB); - experienceOrb.setExperience(getExperienceOrbsReward()); - } - - xp += treasure.getXp(); - Misc.dropItem(location, treasure.getDrop()); - } - } - } - } +// if (pluginRef.getPermissionTools().isSubSkillEnabled(getPlayer(), SubSkillType.EXCAVATION_ARCHAEOLOGY)) { +// List treasures = excavationBehaviour.getTreasures(blockState); +// +// if (!treasures.isEmpty()) { +// int skillLevel = getSkillLevel(); +// Location location = Misc.getBlockCenter(blockState); +// +// for (ExcavationTreasure treasure : treasures) { +// if (skillLevel >= treasure.getDropLevel() +// && pluginRef.getRandomChanceTools().checkRandomChanceExecutionSuccess(getPlayer(), PrimarySkillType.EXCAVATION, treasure.getDropChance())) { +// +// //Spawn Vanilla XP orbs if a dice roll succeeds +// if(pluginRef.getRandomChanceTools().rollDice(getArchaelogyExperienceOrbChance(), 100)) { +// ExperienceOrb experienceOrb = (ExperienceOrb) getPlayer().getWorld().spawnEntity(location, EntityType.EXPERIENCE_ORB); +// experienceOrb.setExperience(getExperienceOrbsReward()); +// } +// +// xp += treasure.getXp(); +// Misc.dropItem(location, treasure.getDrop()); +// } +// } +// } +// } applyXpGain(xp, XPGainReason.PVE); } @@ -75,21 +68,21 @@ public class ExcavationManager extends SkillManager { public void printExcavationDebug(Player player, BlockState blockState) { - if (pluginRef.getPermissionTools().isSubSkillEnabled(getPlayer(), SubSkillType.EXCAVATION_ARCHAEOLOGY)) { - List treasures = excavationBehaviour.getTreasures(blockState); - - if (!treasures.isEmpty()) { - for (ExcavationTreasure treasure : treasures) { - player.sendMessage("|||||||||||||||||||||||||||||||||"); - player.sendMessage("[mcMMO DEBUG] Treasure found: (" + treasure.getDrop().getType().toString() + ")"); - player.sendMessage("[mcMMO DEBUG] Drop Chance for Treasure: " + treasure.getDropChance()); - player.sendMessage("[mcMMO DEBUG] Skill Level Required: " + treasure.getDropLevel()); - player.sendMessage("[mcMMO DEBUG] XP for Treasure: " + treasure.getXp()); - } - } else { - player.sendMessage("[mcMMO DEBUG] No treasures found for this block."); - } - } +// if (pluginRef.getPermissionTools().isSubSkillEnabled(getPlayer(), SubSkillType.EXCAVATION_ARCHAEOLOGY)) { +// List treasures = excavationBehaviour.getTreasures(blockState); +// +// if (!treasures.isEmpty()) { +// for (ExcavationTreasure treasure : treasures) { +// player.sendMessage("|||||||||||||||||||||||||||||||||"); +// player.sendMessage("[mcMMO DEBUG] Treasure found: (" + treasure.getDrop().getType().toString() + ")"); +// player.sendMessage("[mcMMO DEBUG] Drop Chance for Treasure: " + treasure.getDropChance()); +// player.sendMessage("[mcMMO DEBUG] Skill Level Required: " + treasure.getDropLevel()); +// player.sendMessage("[mcMMO DEBUG] XP for Treasure: " + treasure.getXp()); +// } +// } else { +// player.sendMessage("[mcMMO DEBUG] No treasures found for this block."); +// } +// } } /** diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java index 5feca446e..086d0a896 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java @@ -11,16 +11,13 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.SuperAbilityType; import com.gmail.nossr50.datatypes.skills.ToolType; import com.gmail.nossr50.datatypes.skills.behaviours.HerbalismBehaviour; -import com.gmail.nossr50.datatypes.treasure.HylianTreasure; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.runnables.skills.DelayedHerbalismXPCheckTask; import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask; import com.gmail.nossr50.skills.SkillManager; import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.StringUtils; -import com.gmail.nossr50.util.random.RandomChanceSkillStatic; import com.gmail.nossr50.util.skills.SkillActivationType; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -36,7 +33,6 @@ import org.bukkit.metadata.FixedMetadataValue; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; -import java.util.List; public class HerbalismManager extends SkillManager { @@ -556,35 +552,36 @@ public class HerbalismManager extends SkillManager { * @return true if the ability was successful, false otherwise */ public boolean processHylianLuck(BlockState blockState) { - if (!pluginRef.getRandomChanceTools().isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.HERBALISM_HYLIAN_LUCK, getPlayer())) { - return false; - } - - String friendly = StringUtils.getFriendlyConfigBlockDataString(blockState.getBlockData()); - if (!HerbalismTreasureConfig.getInstance().hylianMap.containsKey(friendly)) - return false; - List treasures = HerbalismTreasureConfig.getInstance().hylianMap.get(friendly); - - Player player = getPlayer(); - - if (treasures.isEmpty()) { - return false; - } - int skillLevel = getSkillLevel(); - Location location = Misc.getBlockCenter(blockState); - - for (HylianTreasure treasure : treasures) { - if (skillLevel >= treasure.getDropLevel() - && pluginRef.getRandomChanceTools().checkRandomChanceExecutionSuccess(new RandomChanceSkillStatic(treasure.getDropChance(), getPlayer(), SubSkillType.HERBALISM_HYLIAN_LUCK))) { - if (!pluginRef.getEventManager().simulateBlockBreak(blockState.getBlock(), player, false)) { - return false; - } - blockState.setType(Material.AIR); - Misc.dropItem(location, treasure.getDrop()); - pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE, "Herbalism.HylianLuck"); - return true; - } - } +// if (!pluginRef.getRandomChanceTools().isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.HERBALISM_HYLIAN_LUCK, getPlayer())) { +// return false; +// } +// +// String friendly = StringUtils.getFriendlyConfigBlockDataString(blockState.getBlockData()); +// if (!HerbalismTreasureConfig.getInstance().hylianMap.containsKey(friendly)) +// return false; +// List treasures = HerbalismTreasureConfig.getInstance().hylianMap.get(friendly); +// +// Player player = getPlayer(); +// +// if (treasures.isEmpty()) { +// return false; +// } +// int skillLevel = getSkillLevel(); +// Location location = Misc.getBlockCenter(blockState); +// +// for (HylianTreasure treasure : treasures) { +// if (skillLevel >= treasure.getDropLevel() +// && pluginRef.getRandomChanceTools().checkRandomChanceExecutionSuccess(new RandomChanceSkillStatic(treasure.getDropChance(), getPlayer(), SubSkillType.HERBALISM_HYLIAN_LUCK))) { +// if (!pluginRef.getEventManager().simulateBlockBreak(blockState.getBlock(), player, false)) { +// return false; +// } +// blockState.setType(Material.AIR); +// Misc.dropItem(location, treasure.getDrop()); +// pluginRef.getNotificationManager().sendPlayerInformation(player, NotificationType.SUBSKILL_MESSAGE, "Herbalism.HylianLuck"); +// return true; +// } +// } +// return false; return false; } diff --git a/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java b/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java index 371f1d100..07259f7a8 100644 --- a/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java +++ b/src/main/java/com/gmail/nossr50/util/TextComponentFactory.java @@ -270,17 +270,17 @@ public class TextComponentFactory { private TextComponent getSubSkillTextComponent(Player player, SubSkillType subSkillType) { //Get skill name - String skillName = subSkillType.getLocaleName(); + String subSkillTypeLocaleName = subSkillType.getLocaleName(pluginRef); boolean skillUnlocked = pluginRef.getRankTools().hasUnlockedSubskill(player, subSkillType); - TextComponent textComponent = initNewSkillTextComponent(player, skillName, subSkillType, skillUnlocked); + TextComponent textComponent = initNewSkillTextComponent(player, subSkillTypeLocaleName, subSkillType, skillUnlocked); //Hover Event addNewHoverComponentToTextComponent(textComponent, getSubSkillHoverComponent(player, subSkillType)); //Insertion - textComponent.setInsertion(skillName); + textComponent.setInsertion(subSkillTypeLocaleName); return textComponent; } @@ -450,7 +450,7 @@ public class TextComponentFactory { @Deprecated private BaseComponent[] getSubSkillHoverEventJSON(SubSkillType subSkillType, Player player) { - String skillName = subSkillType.getLocaleName(); + String skillName = subSkillType.getLocaleName(pluginRef); /* * Hover Event BaseComponent color table @@ -492,7 +492,7 @@ public class TextComponentFactory { componentBuilder.append(pluginRef.getLocaleManager().getString("JSON.DescriptionHeader")); componentBuilder.color(ccDescriptionHeader); componentBuilder.append("\n"); - componentBuilder.append(subSkillType.getLocaleDescription()); + componentBuilder.append(subSkillType.getLocaleDescription(pluginRef)); componentBuilder.color(ccDescription); } @@ -516,7 +516,7 @@ public class TextComponentFactory { public void getSubSkillTextComponents(Player player, List textComponents, PrimarySkillType parentSkill) { for (SubSkillType subSkillType : SubSkillType.values()) { - if (subSkillType.getParentSkill() == parentSkill) { + if (pluginRef.getSkillTools().getPrimarySkillBySubSkill(subSkillType) == parentSkill) { if (pluginRef.getPermissionTools().isSubSkillEnabled(player, subSkillType)) { if (!InteractionManager.hasSubSkill(subSkillType)) textComponents.add(pluginRef.getTextComponentFactory().getSubSkillTextComponent(player, subSkillType)); @@ -535,11 +535,9 @@ public class TextComponentFactory { public TextComponent getSubSkillUnlockedNotificationComponents(Player player, SubSkillType subSkillType) { TextComponent unlockMessage = new TextComponent(""); - unlockMessage.setText(pluginRef.getLocaleManager().getString("JSON.SkillUnlockMessage", subSkillType.getLocaleName(), pluginRef.getRankTools().getRank(player, subSkillType))); + unlockMessage.setText(pluginRef.getLocaleManager().getString("JSON.SkillUnlockMessage", subSkillType.getLocaleName(pluginRef), pluginRef.getRankTools().getRank(player, subSkillType))); unlockMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, getSubSkillHoverComponent(player, subSkillType))); - unlockMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/" + subSkillType.getParentSkill().toString().toLowerCase())); + unlockMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/" + pluginRef.getSkillTools().getPrimarySkillBySubSkill(subSkillType).toString().toLowerCase())); return unlockMessage; } -} - - +} \ No newline at end of file