diff --git a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java index 56b9f8563..0c9d27879 100644 --- a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java +++ b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java @@ -32,7 +32,7 @@ public final class ExperienceAPI { * @return true if this is a valid mcMMO skill */ public static boolean isValidSkillType(String skillType) { - return SkillType.getSkill(skillType) != null; + return SkillType.getSkillFromLocalized(skillType) != null; } /** @@ -46,7 +46,7 @@ public final class ExperienceAPI { * @return true if this is a valid, non-child mcMMO skill */ public static boolean isNonChildSkill(String skillType) { - SkillType skill = SkillType.getSkill(skillType); + SkillType skill = SkillType.getSkillFromLocalized(skillType); return skill != null && !skill.isChildSkill(); } @@ -644,7 +644,7 @@ public final class ExperienceAPI { int powerLevel = 0; PlayerProfile profile = getOfflineProfile(playerName); - for (SkillType type : SkillType.NON_CHILD_SKILLS) { + for (SkillType type : SkillType.nonChildSkills) { powerLevel += profile.getSkillLevel(type); } @@ -665,7 +665,7 @@ public final class ExperienceAPI { int powerLevel = 0; PlayerProfile profile = getOfflineProfile(uuid); - for (SkillType type : SkillType.NON_CHILD_SKILLS) { + for (SkillType type : SkillType.nonChildSkills) { powerLevel += profile.getSkillLevel(type); } @@ -981,7 +981,7 @@ public final class ExperienceAPI { } private static SkillType getSkillType(String skillType) throws InvalidSkillException { - SkillType skill = SkillType.getSkill(skillType); + SkillType skill = SkillType.getSkillFromLocalized(skillType); if (skill == null) { throw new InvalidSkillException(); diff --git a/src/main/java/com/gmail/nossr50/api/SkillAPI.java b/src/main/java/com/gmail/nossr50/api/SkillAPI.java index 6565a7cb1..d6341ab9a 100644 --- a/src/main/java/com/gmail/nossr50/api/SkillAPI.java +++ b/src/main/java/com/gmail/nossr50/api/SkillAPI.java @@ -1,7 +1,6 @@ package com.gmail.nossr50.api; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import com.gmail.nossr50.datatypes.skills.SkillType; @@ -18,7 +17,7 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getSkills() { - return getListFromEnum(Arrays.asList(SkillType.values())); + return SkillType.skillNames; } /** @@ -30,7 +29,7 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getNonChildSkills() { - return getListFromEnum(SkillType.NON_CHILD_SKILLS); + return getStringListFromSkillList(SkillType.nonChildSkills); } /** @@ -42,7 +41,7 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getChildSkills() { - return getListFromEnum(SkillType.CHILD_SKILLS); + return getStringListFromSkillList(SkillType.childSkills); } /** @@ -54,7 +53,7 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getCombatSkills() { - return getListFromEnum(SkillType.COMBAT_SKILLS); + return getStringListFromSkillList(SkillType.combatSkills); } /** @@ -66,7 +65,7 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getGatheringSkills() { - return getListFromEnum(SkillType.GATHERING_SKILLS); + return getStringListFromSkillList(SkillType.gatheringSkills); } /** @@ -78,14 +77,14 @@ public final class SkillAPI { * @return a list of strings with valid skill names */ public static List getMiscSkills() { - return getListFromEnum(SkillType.MISC_SKILLS); + return getStringListFromSkillList(SkillType.miscSkills); } - private static List getListFromEnum(List skillsTypes) { + private static List getStringListFromSkillList(List skillsTypes) { List skills = new ArrayList(); for (SkillType skillType : skillsTypes) { - skills.add(skillType.name()); + skills.add(skillType.getName()); } return skills; diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java index 85121d3fe..b95d22981 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java @@ -41,6 +41,6 @@ public class AddlevelsCommand extends ExperienceCommand { @Override protected void handlePlayerMessageSkill(Player player, int value, SkillType skill) { - player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getName())); + player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, skill.getLocalizedName())); } } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java index b4358f8be..a0baf0aa6 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java @@ -39,6 +39,6 @@ public class AddxpCommand extends ExperienceCommand { @Override protected void handlePlayerMessageSkill(Player player, int value, SkillType skill) { - player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getName())); + player.sendMessage(LocaleLoader.getString("Commands.addxp.AwardSkill", value, skill.getLocalizedName())); } } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java index e2b0a154f..9f4f6188b 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java @@ -39,7 +39,7 @@ public abstract class ExperienceCommand implements TabExecutor { return true; } - skill = SkillType.getSkill(args[0]); + skill = SkillType.getSkillFromLocalized(args[0]); if (args[1].equalsIgnoreCase("all")) { skill = null; @@ -58,7 +58,7 @@ public abstract class ExperienceCommand implements TabExecutor { return true; } - skill = SkillType.getSkill(args[1]); + skill = SkillType.getSkillFromLocalized(args[1]); if (args[1].equalsIgnoreCase("all")) { skill = null; @@ -98,7 +98,7 @@ public abstract class ExperienceCommand implements TabExecutor { List playerNames = CommandUtils.getOnlinePlayerNames(sender); return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList(playerNames.size())); case 2: - return StringUtil.copyPartialMatches(args[1], SkillType.SKILL_NAMES, new ArrayList(SkillType.SKILL_NAMES.size())); + return StringUtil.copyPartialMatches(args[1], SkillType.skillNames, new ArrayList(SkillType.skillNames.size())); default: return ImmutableList.of(); } @@ -119,13 +119,13 @@ public abstract class ExperienceCommand implements TabExecutor { sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName)); } else { - sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName)); + sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getLocalizedName(), playerName)); } } protected void editValues(Player player, PlayerProfile profile, SkillType skill, int value) { if (skill == null) { - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { handleCommand(player, profile, skillType, value); } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java index 6041e0576..ffe172bcc 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java @@ -47,6 +47,6 @@ public class MmoeditCommand extends ExperienceCommand { @Override protected void handlePlayerMessageSkill(Player player, int value, SkillType skill) { - player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getName(), value)); + player.sendMessage(LocaleLoader.getString("Commands.mmoedit.Modified.1", skill.getLocalizedName(), value)); } } diff --git a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java index e4adcd67d..4fcbbc2f5 100644 --- a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java @@ -44,7 +44,7 @@ public class SkillresetCommand implements TabExecutor { return true; } - editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), SkillType.getSkill(args[0])); + editValues((Player) sender, UserManager.getPlayer(sender.getName()).getProfile(), SkillType.getSkillFromLocalized(args[0])); return true; case 2: @@ -62,7 +62,7 @@ public class SkillresetCommand implements TabExecutor { skill = null; } else { - skill = SkillType.getSkill(args[1]); + skill = SkillType.getSkillFromLocalized(args[1]); } String playerName = CommandUtils.getMatchedPlayerName(args[0]); @@ -97,7 +97,7 @@ public class SkillresetCommand implements TabExecutor { List playerNames = CommandUtils.getOnlinePlayerNames(sender); return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList(playerNames.size())); case 2: - return StringUtil.copyPartialMatches(args[1], SkillType.SKILL_NAMES, new ArrayList(SkillType.SKILL_NAMES.size())); + return StringUtil.copyPartialMatches(args[1], SkillType.skillNames, new ArrayList(SkillType.skillNames.size())); default: return ImmutableList.of(); } @@ -130,7 +130,7 @@ public class SkillresetCommand implements TabExecutor { } protected void handlePlayerMessageSkill(Player player, SkillType skill) { - player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skill.getName())); + player.sendMessage(LocaleLoader.getString("Commands.Reset.Single", skill.getLocalizedName())); } private boolean validateArguments(CommandSender sender, String skillName) { @@ -142,13 +142,13 @@ public class SkillresetCommand implements TabExecutor { sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName)); } else { - sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName)); + sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getLocalizedName(), playerName)); } } protected void editValues(Player player, PlayerProfile profile, SkillType skill) { if (skill == null) { - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { handleCommand(player, profile, skillType); } diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java index bf0b17aa9..a5a161015 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreCommand.java @@ -22,7 +22,7 @@ public class HardcoreCommand extends HardcoreModeCommand { @Override protected boolean checkEnabled(SkillType skill) { if (skill == null) { - for (SkillType skillType : SkillType.values()) { + for (SkillType skillType : SkillType.skillList) { if (!skillType.getHardcoreStatLossEnabled()) { return false; } @@ -52,7 +52,7 @@ public class HardcoreCommand extends HardcoreModeCommand { private void toggle(boolean enable, SkillType skill) { if (skill == null) { - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { skillType.setHardcoreStatLossEnabled(enable); } } @@ -60,6 +60,6 @@ public class HardcoreCommand extends HardcoreModeCommand { skill.setHardcoreStatLossEnabled(enable); } - mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (skill == null ? "all skills" : skill.getName()))); + mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), (skill == null ? "all skills" : skill.getLocalizedName()))); } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java index cbfa728d8..02f2c814f 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/HardcoreModeCommand.java @@ -76,7 +76,7 @@ public abstract class HardcoreModeCommand implements TabExecutor { return true; } - SkillType skill = SkillType.getSkill(args[0]); + SkillType skill = SkillType.getSkillFromLocalized(args[0]); if (!CommandUtils.isChildSkill(sender, skill)) { return true; diff --git a/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java b/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java index b3380463a..32f1a5508 100644 --- a/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/hardcore/VampirismCommand.java @@ -22,7 +22,7 @@ public class VampirismCommand extends HardcoreModeCommand { @Override protected boolean checkEnabled(SkillType skill) { if (skill == null) { - for (SkillType skillType : SkillType.values()) { + for (SkillType skillType : SkillType.skillList) { if (!skillType.getHardcoreVampirismEnabled()) { return false; } @@ -52,7 +52,7 @@ public class VampirismCommand extends HardcoreModeCommand { private void toggle(boolean enable, SkillType skill) { if (skill == null) { - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { skillType.setHardcoreVampirismEnabled(enable); } } diff --git a/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java b/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java index 78c19d907..b7863b55e 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java @@ -53,17 +53,17 @@ public class InspectCommand implements TabExecutor { sender.sendMessage(LocaleLoader.getString("Inspect.OfflineStats", playerName)); sender.sendMessage(LocaleLoader.getString("Stats.Header.Gathering")); - for (SkillType skill : SkillType.GATHERING_SKILLS) { + for (SkillType skill : SkillType.gatheringSkills) { sender.sendMessage(CommandUtils.displaySkill(profile, skill)); } sender.sendMessage(LocaleLoader.getString("Stats.Header.Combat")); - for (SkillType skill : SkillType.COMBAT_SKILLS) { + for (SkillType skill : SkillType.combatSkills) { sender.sendMessage(CommandUtils.displaySkill(profile, skill)); } sender.sendMessage(LocaleLoader.getString("Stats.Header.Misc")); - for (SkillType skill : SkillType.MISC_SKILLS) { + for (SkillType skill : SkillType.miscSkills) { sender.sendMessage(CommandUtils.displaySkill(profile, skill)); } diff --git a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java index becca971a..dc7d2818a 100644 --- a/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/player/MctopCommand.java @@ -70,7 +70,7 @@ public class MctopCommand implements TabExecutor { public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { switch (args.length) { case 1: - return StringUtil.copyPartialMatches(args[0], SkillType.SKILL_NAMES, new ArrayList(SkillType.SKILL_NAMES.size())); + return StringUtil.copyPartialMatches(args[0], SkillType.skillNames, new ArrayList(SkillType.skillNames.size())); default: return ImmutableList.of(); } @@ -120,7 +120,7 @@ public class MctopCommand implements TabExecutor { return null; } - SkillType skill = SkillType.getSkill(skillName); + SkillType skill = SkillType.getSkillFromLocalized(skillName); if (CommandUtils.isChildSkill(sender, skill)) { return null; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java index 5bc3aa0b4..d1c4de16c 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java @@ -23,7 +23,7 @@ public class AcrobaticsCommand extends SkillCommand { private boolean canGracefulRoll; public AcrobaticsCommand() { - super(SkillType.ACROBATICS); + super(SkillType.acrobatics); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java index 1853a4083..a5956f3df 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java @@ -26,7 +26,7 @@ public class AlchemyCommand extends SkillCommand { private boolean canConcoctions; public AlchemyCommand() { - super(SkillType.ALCHEMY); + super(SkillType.alchemy); } protected String[] calculateAbilityDisplayValues(Player player, boolean isLucky) { diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java index 9ac0da7f5..b8b717382 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java @@ -23,7 +23,7 @@ public class ArcheryCommand extends SkillCommand { private boolean canRetrieve; public ArcheryCommand() { - super(SkillType.ARCHERY); + super(SkillType.archery); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java index 0916a0c21..042ba433e 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java @@ -26,7 +26,7 @@ public class AxesCommand extends SkillCommand { private boolean canGreaterImpact; public AxesCommand() { - super(SkillType.AXES); + super(SkillType.axes); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java index acc231d26..c48cd9301 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java @@ -18,7 +18,7 @@ public class ExcavationCommand extends SkillCommand { private boolean canTreasureHunt; public ExcavationCommand() { - super(SkillType.EXCAVATION); + super(SkillType.excavation); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java index 72f6acf30..41762ad45 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java @@ -44,7 +44,7 @@ public class FishingCommand extends SkillCommand { private boolean canIceFish; public FishingCommand() { - super(SkillType.FISHING); + super(SkillType.fishing); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java index b426fbd23..0db57dfee 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java @@ -35,7 +35,7 @@ public class HerbalismCommand extends SkillCommand { private boolean canShroomThumb; public HerbalismCommand() { - super(SkillType.HERBALISM); + super(SkillType.herbalism); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index bf5cab61f..fabaa4f06 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java @@ -35,7 +35,7 @@ public class MiningCommand extends SkillCommand { private boolean canDemoExpert; public MiningCommand() { - super(SkillType.MINING); + super(SkillType.mining); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java index aa6148940..1765f92bc 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java @@ -42,7 +42,7 @@ public class RepairCommand extends SkillCommand { private int stoneLevel; public RepairCommand() { - super(SkillType.REPAIR); + super(SkillType.repair); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java index 67b245214..b71b703d9 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java @@ -18,7 +18,7 @@ public class SalvageCommand extends SkillCommand { private boolean canArcaneSalvage; public SalvageCommand() { - super(SkillType.SALVAGE); + super(SkillType.salvage); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java index 44c31af07..220297198 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java @@ -38,7 +38,7 @@ public abstract class SkillCommand implements TabExecutor { public SkillCommand(SkillType skill) { this.skill = skill; - skillName = skill.getName(); + skillName = skill.getLocalizedName(); skillGuideCommand = new SkillGuideCommand(skill); } @@ -82,7 +82,7 @@ public abstract class SkillCommand implements TabExecutor { Set parents = FamilyTree.getParents(skill); for (SkillType parent : parents) { - player.sendMessage(parent.getName() + " - " + LocaleLoader.getString("Effects.Level", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent))); + player.sendMessage(parent.getLocalizedName() + " - " + LocaleLoader.getString("Effects.Level", mcMMOPlayer.getSkillLevel(parent), mcMMOPlayer.getSkillXpLevel(parent), mcMMOPlayer.getXpToLevel(parent))); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java index 34024f06a..67acb6f9f 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java @@ -18,7 +18,7 @@ public class SkillGuideCommand implements CommandExecutor { private String invalidPage = LocaleLoader.getString("Guides.Page.Invalid"); public SkillGuideCommand(SkillType skill) { - header = LocaleLoader.getString("Guides.Header", skill.getName()); + header = LocaleLoader.getString("Guides.Header", skill.getLocalizedName()); guide = getGuide(skill); } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java index ddb4604cd..824d05aa9 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java @@ -27,7 +27,7 @@ public class SmeltingCommand extends SkillCommand { private boolean canVanillaXPBoost; public SmeltingCommand() { - super(SkillType.SMELTING); + super(SkillType.smelting); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java index bfd29ecac..bb25fafab 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java @@ -26,7 +26,7 @@ public class SwordsCommand extends SkillCommand { private boolean canBleed; public SwordsCommand() { - super(SkillType.SWORDS); + super(SkillType.swords); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java index 50e7ac7a9..d3d73e520 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java @@ -28,7 +28,7 @@ public class TamingCommand extends SkillCommand { private boolean canHolyHound; public TamingCommand() { - super(SkillType.TAMING); + super(SkillType.taming); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java index 310af6e89..31cdfb977 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java @@ -29,7 +29,7 @@ public class UnarmedCommand extends SkillCommand { private boolean canIronGrip; public UnarmedCommand() { - super(SkillType.UNARMED); + super(SkillType.unarmed); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java index 4a3dbd0a7..fee28f96f 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java @@ -22,7 +22,7 @@ public class WoodcuttingCommand extends SkillCommand { private boolean canDoubleDrop; public WoodcuttingCommand() { - super(SkillType.WOODCUTTING); + super(SkillType.woodcutting); } @Override diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index b064e5a5d..bb612334b 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.datatypes.skills.SecondaryAbility; import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.skills.alchemy.Alchemy; @@ -689,8 +690,13 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { public int getAbilityLength() { return config.getInt("Skills.General.Ability.IncreaseLevel", 50); } public int getEnchantBuff() { return config.getInt("Skills.General.Ability.EnchantBuff", 5); } - public int getMaxBonusLevel(SecondaryAbility skillAbility) { return config.getInt("Skills." + StringUtils.getCapitalized(SkillType.bySecondaryAbility(skillAbility).toString()) + "." + StringUtils.getPrettySecondaryAbilityString(skillAbility).replace(" ", "") + ".MaxBonusLevel"); } - public double getMaxChance(SecondaryAbility skillAbility) { return config.getDouble("Skills." + StringUtils.getCapitalized(SkillType.bySecondaryAbility(skillAbility).toString()) + "." + StringUtils.getPrettySecondaryAbilityString(skillAbility).replace(" ", "") + ".ChanceMax", 100.0D); } + public int getMaxBonusLevel(SecondaryAbility skillAbility) { + String skillAbilityString = "Skills." + StringUtils.getCapitalized(SkillType.bySecondaryAbility(skillAbility).toString()) + "." + StringUtils.getPrettySecondaryAbilityString(skillAbility).replace(" ", "") + ".MaxBonusLevel"; + return config.getInt(skillAbilityString); + } + public double getMaxChance(SecondaryAbility skillAbility) { return config.getDouble("Skills." + StringUtils.getCapitalized( + SkillType.bySecondaryAbility(skillAbility).toString() + ) + "." + StringUtils.getPrettySecondaryAbilityString(skillAbility).replace(" ", "") + ".ChanceMax", 100.0D); } /* ACROBATICS */ public double getDodgeDamageModifier() { return config.getDouble("Skills.Acrobatics.Dodge.DamageModifier", 2.0D); } diff --git a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java index 13284b993..2f1803b35 100644 --- a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java +++ b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java @@ -278,31 +278,31 @@ public final class FlatfileDatabaseManager implements DatabaseManager { else { // Otherwise write the new player information writer.append(playerName).append(":"); - writer.append(profile.getSkillLevel(SkillType.MINING)).append(":"); + writer.append(profile.getSkillLevel(SkillType.mining)).append(":"); writer.append(":"); writer.append(":"); - writer.append(profile.getSkillXpLevel(SkillType.MINING)).append(":"); - writer.append(profile.getSkillLevel(SkillType.WOODCUTTING)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.WOODCUTTING)).append(":"); - writer.append(profile.getSkillLevel(SkillType.REPAIR)).append(":"); - writer.append(profile.getSkillLevel(SkillType.UNARMED)).append(":"); - writer.append(profile.getSkillLevel(SkillType.HERBALISM)).append(":"); - writer.append(profile.getSkillLevel(SkillType.EXCAVATION)).append(":"); - writer.append(profile.getSkillLevel(SkillType.ARCHERY)).append(":"); - writer.append(profile.getSkillLevel(SkillType.SWORDS)).append(":"); - writer.append(profile.getSkillLevel(SkillType.AXES)).append(":"); - writer.append(profile.getSkillLevel(SkillType.ACROBATICS)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.REPAIR)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.UNARMED)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.HERBALISM)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.EXCAVATION)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.ARCHERY)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.SWORDS)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.AXES)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.ACROBATICS)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.mining)).append(":"); + writer.append(profile.getSkillLevel(SkillType.woodcutting)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.woodcutting)).append(":"); + writer.append(profile.getSkillLevel(SkillType.repair)).append(":"); + writer.append(profile.getSkillLevel(SkillType.unarmed)).append(":"); + writer.append(profile.getSkillLevel(SkillType.herbalism)).append(":"); + writer.append(profile.getSkillLevel(SkillType.excavation)).append(":"); + writer.append(profile.getSkillLevel(SkillType.archery)).append(":"); + writer.append(profile.getSkillLevel(SkillType.swords)).append(":"); + writer.append(profile.getSkillLevel(SkillType.axes)).append(":"); + writer.append(profile.getSkillLevel(SkillType.acrobatics)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.repair)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.unarmed)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.herbalism)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.excavation)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.archery)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.swords)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.axes)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.acrobatics)).append(":"); writer.append(":"); - writer.append(profile.getSkillLevel(SkillType.TAMING)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.TAMING)).append(":"); + writer.append(profile.getSkillLevel(SkillType.taming)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.taming)).append(":"); writer.append((int) profile.getAbilityDATS(AbilityType.BERSERK)).append(":"); writer.append((int) profile.getAbilityDATS(AbilityType.GIGA_DRILL_BREAKER)).append(":"); writer.append((int) profile.getAbilityDATS(AbilityType.TREE_FELLER)).append(":"); @@ -311,14 +311,14 @@ public final class FlatfileDatabaseManager implements DatabaseManager { writer.append((int) profile.getAbilityDATS(AbilityType.SKULL_SPLITTER)).append(":"); writer.append((int) profile.getAbilityDATS(AbilityType.SUPER_BREAKER)).append(":"); writer.append(":"); - writer.append(profile.getSkillLevel(SkillType.FISHING)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.FISHING)).append(":"); + writer.append(profile.getSkillLevel(SkillType.fishing)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.fishing)).append(":"); writer.append((int) profile.getAbilityDATS(AbilityType.BLAST_MINING)).append(":"); writer.append(System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR).append(":"); MobHealthbarType mobHealthbarType = profile.getMobHealthbarType(); writer.append(mobHealthbarType == null ? Config.getInstance().getMobHealthbarDefault().toString() : mobHealthbarType.toString()).append(":"); - writer.append(profile.getSkillLevel(SkillType.ALCHEMY)).append(":"); - writer.append(profile.getSkillXpLevel(SkillType.ALCHEMY)).append(":"); + writer.append(profile.getSkillLevel(SkillType.alchemy)).append(":"); + writer.append(profile.getSkillXpLevel(SkillType.alchemy)).append(":"); writer.append(uuid.toString()).append(":"); writer.append("\r\n"); } @@ -367,7 +367,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager { Map skills = new HashMap(); - for (SkillType skill : SkillType.NON_CHILD_SKILLS) { + for (SkillType skill : SkillType.nonChildSkills) { skills.put(skill, getPlayerRank(playerName, playerStatHash.get(skill))); } @@ -750,19 +750,19 @@ public final class FlatfileDatabaseManager implements DatabaseManager { Map skills = getSkillMapFromLine(data); - powerLevel += putStat(acrobatics, playerName, skills.get(SkillType.ACROBATICS)); - powerLevel += putStat(alchemy, playerName, skills.get(SkillType.ALCHEMY)); - powerLevel += putStat(archery, playerName, skills.get(SkillType.ARCHERY)); - powerLevel += putStat(axes, playerName, skills.get(SkillType.AXES)); - powerLevel += putStat(excavation, playerName, skills.get(SkillType.EXCAVATION)); - powerLevel += putStat(fishing, playerName, skills.get(SkillType.FISHING)); - powerLevel += putStat(herbalism, playerName, skills.get(SkillType.HERBALISM)); - powerLevel += putStat(mining, playerName, skills.get(SkillType.MINING)); - powerLevel += putStat(repair, playerName, skills.get(SkillType.REPAIR)); - powerLevel += putStat(swords, playerName, skills.get(SkillType.SWORDS)); - powerLevel += putStat(taming, playerName, skills.get(SkillType.TAMING)); - powerLevel += putStat(unarmed, playerName, skills.get(SkillType.UNARMED)); - powerLevel += putStat(woodcutting, playerName, skills.get(SkillType.WOODCUTTING)); + powerLevel += putStat(acrobatics, playerName, skills.get(SkillType.acrobatics)); + powerLevel += putStat(alchemy, playerName, skills.get(SkillType.alchemy)); + powerLevel += putStat(archery, playerName, skills.get(SkillType.archery)); + powerLevel += putStat(axes, playerName, skills.get(SkillType.axes)); + powerLevel += putStat(excavation, playerName, skills.get(SkillType.excavation)); + powerLevel += putStat(fishing, playerName, skills.get(SkillType.fishing)); + powerLevel += putStat(herbalism, playerName, skills.get(SkillType.herbalism)); + powerLevel += putStat(mining, playerName, skills.get(SkillType.mining)); + powerLevel += putStat(repair, playerName, skills.get(SkillType.repair)); + powerLevel += putStat(swords, playerName, skills.get(SkillType.swords)); + powerLevel += putStat(taming, playerName, skills.get(SkillType.taming)); + powerLevel += putStat(unarmed, playerName, skills.get(SkillType.unarmed)); + powerLevel += putStat(woodcutting, playerName, skills.get(SkillType.woodcutting)); putStat(powerLevels, playerName, powerLevel); } @@ -799,19 +799,19 @@ public final class FlatfileDatabaseManager implements DatabaseManager { Collections.sort(alchemy, c); Collections.sort(powerLevels, c); - playerStatHash.put(SkillType.MINING, mining); - playerStatHash.put(SkillType.WOODCUTTING, woodcutting); - playerStatHash.put(SkillType.REPAIR, repair); - playerStatHash.put(SkillType.UNARMED, unarmed); - playerStatHash.put(SkillType.HERBALISM, herbalism); - playerStatHash.put(SkillType.EXCAVATION, excavation); - playerStatHash.put(SkillType.ARCHERY, archery); - playerStatHash.put(SkillType.SWORDS, swords); - playerStatHash.put(SkillType.AXES, axes); - playerStatHash.put(SkillType.ACROBATICS, acrobatics); - playerStatHash.put(SkillType.TAMING, taming); - playerStatHash.put(SkillType.FISHING, fishing); - playerStatHash.put(SkillType.ALCHEMY, alchemy); + playerStatHash.put(SkillType.mining, mining); + playerStatHash.put(SkillType.woodcutting, woodcutting); + playerStatHash.put(SkillType.repair, repair); + playerStatHash.put(SkillType.unarmed, unarmed); + playerStatHash.put(SkillType.herbalism, herbalism); + playerStatHash.put(SkillType.excavation, excavation); + playerStatHash.put(SkillType.archery, archery); + playerStatHash.put(SkillType.swords, swords); + playerStatHash.put(SkillType.axes, axes); + playerStatHash.put(SkillType.acrobatics, acrobatics); + playerStatHash.put(SkillType.taming, taming); + playerStatHash.put(SkillType.fishing, fishing); + playerStatHash.put(SkillType.alchemy, alchemy); } /** @@ -1076,25 +1076,25 @@ public final class FlatfileDatabaseManager implements DatabaseManager { private PlayerProfile loadFromLine(String[] character) { Map skills = getSkillMapFromLine(character); // Skill levels - Map skillsXp = new EnumMap(SkillType.class); // Skill & XP + Map skillsXp = new HashMap(); // Skill & XP Map skillsDATS = new EnumMap(AbilityType.class); // Ability & Cooldown MobHealthbarType mobHealthbarType; // TODO on updates, put new values in a try{} ? - skillsXp.put(SkillType.TAMING, (float) Integer.valueOf(character[25])); - skillsXp.put(SkillType.MINING, (float) Integer.valueOf(character[4])); - skillsXp.put(SkillType.REPAIR, (float) Integer.valueOf(character[15])); - skillsXp.put(SkillType.WOODCUTTING, (float) Integer.valueOf(character[6])); - skillsXp.put(SkillType.UNARMED, (float) Integer.valueOf(character[16])); - skillsXp.put(SkillType.HERBALISM, (float) Integer.valueOf(character[17])); - skillsXp.put(SkillType.EXCAVATION, (float) Integer.valueOf(character[18])); - skillsXp.put(SkillType.ARCHERY, (float) Integer.valueOf(character[19])); - skillsXp.put(SkillType.SWORDS, (float) Integer.valueOf(character[20])); - skillsXp.put(SkillType.AXES, (float) Integer.valueOf(character[21])); - skillsXp.put(SkillType.ACROBATICS, (float) Integer.valueOf(character[22])); - skillsXp.put(SkillType.FISHING, (float) Integer.valueOf(character[35])); - skillsXp.put(SkillType.ALCHEMY, (float) Integer.valueOf(character[40])); + skillsXp.put(SkillType.taming, (float) Integer.valueOf(character[25])); + skillsXp.put(SkillType.mining, (float) Integer.valueOf(character[4])); + skillsXp.put(SkillType.repair, (float) Integer.valueOf(character[15])); + skillsXp.put(SkillType.woodcutting, (float) Integer.valueOf(character[6])); + skillsXp.put(SkillType.unarmed, (float) Integer.valueOf(character[16])); + skillsXp.put(SkillType.herbalism, (float) Integer.valueOf(character[17])); + skillsXp.put(SkillType.excavation, (float) Integer.valueOf(character[18])); + skillsXp.put(SkillType.archery, (float) Integer.valueOf(character[19])); + skillsXp.put(SkillType.swords, (float) Integer.valueOf(character[20])); + skillsXp.put(SkillType.axes, (float) Integer.valueOf(character[21])); + skillsXp.put(SkillType.acrobatics, (float) Integer.valueOf(character[22])); + skillsXp.put(SkillType.fishing, (float) Integer.valueOf(character[35])); + skillsXp.put(SkillType.alchemy, (float) Integer.valueOf(character[40])); // Taming - Unused skillsDATS.put(AbilityType.SUPER_BREAKER, Integer.valueOf(character[32])); @@ -1128,21 +1128,21 @@ public final class FlatfileDatabaseManager implements DatabaseManager { } private Map getSkillMapFromLine(String[] character) { - Map skills = new EnumMap(SkillType.class); // Skill & Level + Map skills = new HashMap(); // Skill & Level - skills.put(SkillType.TAMING, Integer.valueOf(character[24])); - skills.put(SkillType.MINING, Integer.valueOf(character[1])); - skills.put(SkillType.REPAIR, Integer.valueOf(character[7])); - skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[5])); - skills.put(SkillType.UNARMED, Integer.valueOf(character[8])); - skills.put(SkillType.HERBALISM, Integer.valueOf(character[9])); - skills.put(SkillType.EXCAVATION, Integer.valueOf(character[10])); - skills.put(SkillType.ARCHERY, Integer.valueOf(character[11])); - skills.put(SkillType.SWORDS, Integer.valueOf(character[12])); - skills.put(SkillType.AXES, Integer.valueOf(character[13])); - skills.put(SkillType.ACROBATICS, Integer.valueOf(character[14])); - skills.put(SkillType.FISHING, Integer.valueOf(character[34])); - skills.put(SkillType.ALCHEMY, Integer.valueOf(character[39])); + skills.put(SkillType.taming, Integer.valueOf(character[24])); + skills.put(SkillType.mining, Integer.valueOf(character[1])); + skills.put(SkillType.repair, Integer.valueOf(character[7])); + skills.put(SkillType.woodcutting, Integer.valueOf(character[5])); + skills.put(SkillType.unarmed, Integer.valueOf(character[8])); + skills.put(SkillType.herbalism, Integer.valueOf(character[9])); + skills.put(SkillType.excavation, Integer.valueOf(character[10])); + skills.put(SkillType.archery, Integer.valueOf(character[11])); + skills.put(SkillType.swords, Integer.valueOf(character[12])); + skills.put(SkillType.axes, Integer.valueOf(character[13])); + skills.put(SkillType.acrobatics, Integer.valueOf(character[14])); + skills.put(SkillType.fishing, Integer.valueOf(character[34])); + skills.put(SkillType.alchemy, Integer.valueOf(character[39])); return skills; } diff --git a/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java b/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java index b21a99c18..ef506cbf7 100644 --- a/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java +++ b/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java @@ -272,19 +272,19 @@ public final class SQLDatabaseManager implements DatabaseManager { + ", unarmed = ?, herbalism = ?, excavation = ?" + ", archery = ?, swords = ?, axes = ?, acrobatics = ?" + ", fishing = ?, alchemy = ? WHERE user_id = ?"); - statement.setInt(1, profile.getSkillLevel(SkillType.TAMING)); - statement.setInt(2, profile.getSkillLevel(SkillType.MINING)); - statement.setInt(3, profile.getSkillLevel(SkillType.REPAIR)); - statement.setInt(4, profile.getSkillLevel(SkillType.WOODCUTTING)); - statement.setInt(5, profile.getSkillLevel(SkillType.UNARMED)); - statement.setInt(6, profile.getSkillLevel(SkillType.HERBALISM)); - statement.setInt(7, profile.getSkillLevel(SkillType.EXCAVATION)); - statement.setInt(8, profile.getSkillLevel(SkillType.ARCHERY)); - statement.setInt(9, profile.getSkillLevel(SkillType.SWORDS)); - statement.setInt(10, profile.getSkillLevel(SkillType.AXES)); - statement.setInt(11, profile.getSkillLevel(SkillType.ACROBATICS)); - statement.setInt(12, profile.getSkillLevel(SkillType.FISHING)); - statement.setInt(13, profile.getSkillLevel(SkillType.ALCHEMY)); + statement.setInt(1, profile.getSkillLevel(SkillType.taming)); + statement.setInt(2, profile.getSkillLevel(SkillType.mining)); + statement.setInt(3, profile.getSkillLevel(SkillType.repair)); + statement.setInt(4, profile.getSkillLevel(SkillType.woodcutting)); + statement.setInt(5, profile.getSkillLevel(SkillType.unarmed)); + statement.setInt(6, profile.getSkillLevel(SkillType.herbalism)); + statement.setInt(7, profile.getSkillLevel(SkillType.excavation)); + statement.setInt(8, profile.getSkillLevel(SkillType.archery)); + statement.setInt(9, profile.getSkillLevel(SkillType.swords)); + statement.setInt(10, profile.getSkillLevel(SkillType.axes)); + statement.setInt(11, profile.getSkillLevel(SkillType.acrobatics)); + statement.setInt(12, profile.getSkillLevel(SkillType.fishing)); + statement.setInt(13, profile.getSkillLevel(SkillType.alchemy)); statement.setInt(14, id); success &= (statement.executeUpdate() != 0); statement.close(); @@ -294,19 +294,19 @@ public final class SQLDatabaseManager implements DatabaseManager { + ", unarmed = ?, herbalism = ?, excavation = ?" + ", archery = ?, swords = ?, axes = ?, acrobatics = ?" + ", fishing = ?, alchemy = ? WHERE user_id = ?"); - statement.setInt(1, profile.getSkillXpLevel(SkillType.TAMING)); - statement.setInt(2, profile.getSkillXpLevel(SkillType.MINING)); - statement.setInt(3, profile.getSkillXpLevel(SkillType.REPAIR)); - statement.setInt(4, profile.getSkillXpLevel(SkillType.WOODCUTTING)); - statement.setInt(5, profile.getSkillXpLevel(SkillType.UNARMED)); - statement.setInt(6, profile.getSkillXpLevel(SkillType.HERBALISM)); - statement.setInt(7, profile.getSkillXpLevel(SkillType.EXCAVATION)); - statement.setInt(8, profile.getSkillXpLevel(SkillType.ARCHERY)); - statement.setInt(9, profile.getSkillXpLevel(SkillType.SWORDS)); - statement.setInt(10, profile.getSkillXpLevel(SkillType.AXES)); - statement.setInt(11, profile.getSkillXpLevel(SkillType.ACROBATICS)); - statement.setInt(12, profile.getSkillXpLevel(SkillType.FISHING)); - statement.setInt(13, profile.getSkillXpLevel(SkillType.ALCHEMY)); + statement.setInt(1, profile.getSkillXpLevel(SkillType.taming)); + statement.setInt(2, profile.getSkillXpLevel(SkillType.mining)); + statement.setInt(3, profile.getSkillXpLevel(SkillType.repair)); + statement.setInt(4, profile.getSkillXpLevel(SkillType.woodcutting)); + statement.setInt(5, profile.getSkillXpLevel(SkillType.unarmed)); + statement.setInt(6, profile.getSkillXpLevel(SkillType.herbalism)); + statement.setInt(7, profile.getSkillXpLevel(SkillType.excavation)); + statement.setInt(8, profile.getSkillXpLevel(SkillType.archery)); + statement.setInt(9, profile.getSkillXpLevel(SkillType.swords)); + statement.setInt(10, profile.getSkillXpLevel(SkillType.axes)); + statement.setInt(11, profile.getSkillXpLevel(SkillType.acrobatics)); + statement.setInt(12, profile.getSkillXpLevel(SkillType.fishing)); + statement.setInt(13, profile.getSkillXpLevel(SkillType.alchemy)); statement.setInt(14, id); success &= (statement.executeUpdate() != 0); statement.close(); @@ -361,7 +361,7 @@ public final class SQLDatabaseManager implements DatabaseManager { public List readLeaderboard(SkillType skill, int pageNumber, int statsPerPage) { List stats = new ArrayList(); - String query = skill == null ? ALL_QUERY_VERSION : skill.name().toLowerCase(); + String query = skill == null ? ALL_QUERY_VERSION : skill.getName().toLowerCase(); ResultSet resultSet = null; PreparedStatement statement = null; Connection connection = null; @@ -425,8 +425,8 @@ public final class SQLDatabaseManager implements DatabaseManager { try { connection = getConnection(PoolIdentifier.MISC); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { - String skillName = skillType.name().toLowerCase(); + for (SkillType skillType : SkillType.nonChildSkills) { + String skillName = skillType.getName().toLowerCase(); String sql = "SELECT COUNT(*) AS rank FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id WHERE " + skillName + " > 0 " + "AND " + skillName + " > (SELECT " + skillName + " FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id " + "WHERE user = ?)"; @@ -1226,8 +1226,8 @@ public final class SQLDatabaseManager implements DatabaseManager { } private PlayerProfile loadFromResult(String playerName, ResultSet result) throws SQLException { - Map skills = new EnumMap(SkillType.class); // Skill & Level - Map skillsXp = new EnumMap(SkillType.class); // Skill & XP + Map skills = new HashMap(); // Skill & Level + Map skillsXp = new HashMap(); // Skill & XP Map skillsDATS = new EnumMap(AbilityType.class); // Ability & Cooldown MobHealthbarType mobHealthbarType; UUID uuid; @@ -1238,33 +1238,33 @@ public final class SQLDatabaseManager implements DatabaseManager { final int OFFSET_DATS = 26; final int OFFSET_OTHER = 38; - skills.put(SkillType.TAMING, result.getInt(OFFSET_SKILLS + 1)); - skills.put(SkillType.MINING, result.getInt(OFFSET_SKILLS + 2)); - skills.put(SkillType.REPAIR, result.getInt(OFFSET_SKILLS + 3)); - skills.put(SkillType.WOODCUTTING, result.getInt(OFFSET_SKILLS + 4)); - skills.put(SkillType.UNARMED, result.getInt(OFFSET_SKILLS + 5)); - skills.put(SkillType.HERBALISM, result.getInt(OFFSET_SKILLS + 6)); - skills.put(SkillType.EXCAVATION, result.getInt(OFFSET_SKILLS + 7)); - skills.put(SkillType.ARCHERY, result.getInt(OFFSET_SKILLS + 8)); - skills.put(SkillType.SWORDS, result.getInt(OFFSET_SKILLS + 9)); - skills.put(SkillType.AXES, result.getInt(OFFSET_SKILLS + 10)); - skills.put(SkillType.ACROBATICS, result.getInt(OFFSET_SKILLS + 11)); - skills.put(SkillType.FISHING, result.getInt(OFFSET_SKILLS + 12)); - skills.put(SkillType.ALCHEMY, result.getInt(OFFSET_SKILLS + 13)); + skills.put(SkillType.taming, result.getInt(OFFSET_SKILLS + 1)); + skills.put(SkillType.mining, result.getInt(OFFSET_SKILLS + 2)); + skills.put(SkillType.repair, result.getInt(OFFSET_SKILLS + 3)); + skills.put(SkillType.woodcutting, result.getInt(OFFSET_SKILLS + 4)); + skills.put(SkillType.unarmed, result.getInt(OFFSET_SKILLS + 5)); + skills.put(SkillType.herbalism, result.getInt(OFFSET_SKILLS + 6)); + skills.put(SkillType.excavation, result.getInt(OFFSET_SKILLS + 7)); + skills.put(SkillType.archery, result.getInt(OFFSET_SKILLS + 8)); + skills.put(SkillType.swords, result.getInt(OFFSET_SKILLS + 9)); + skills.put(SkillType.axes, result.getInt(OFFSET_SKILLS + 10)); + skills.put(SkillType.acrobatics, result.getInt(OFFSET_SKILLS + 11)); + skills.put(SkillType.fishing, result.getInt(OFFSET_SKILLS + 12)); + skills.put(SkillType.alchemy, result.getInt(OFFSET_SKILLS + 13)); - skillsXp.put(SkillType.TAMING, result.getFloat(OFFSET_XP + 1)); - skillsXp.put(SkillType.MINING, result.getFloat(OFFSET_XP + 2)); - skillsXp.put(SkillType.REPAIR, result.getFloat(OFFSET_XP + 3)); - skillsXp.put(SkillType.WOODCUTTING, result.getFloat(OFFSET_XP + 4)); - skillsXp.put(SkillType.UNARMED, result.getFloat(OFFSET_XP + 5)); - skillsXp.put(SkillType.HERBALISM, result.getFloat(OFFSET_XP + 6)); - skillsXp.put(SkillType.EXCAVATION, result.getFloat(OFFSET_XP + 7)); - skillsXp.put(SkillType.ARCHERY, result.getFloat(OFFSET_XP + 8)); - skillsXp.put(SkillType.SWORDS, result.getFloat(OFFSET_XP + 9)); - skillsXp.put(SkillType.AXES, result.getFloat(OFFSET_XP + 10)); - skillsXp.put(SkillType.ACROBATICS, result.getFloat(OFFSET_XP + 11)); - skillsXp.put(SkillType.FISHING, result.getFloat(OFFSET_XP + 12)); - skillsXp.put(SkillType.ALCHEMY, result.getFloat(OFFSET_XP + 13)); + skillsXp.put(SkillType.taming, result.getFloat(OFFSET_XP + 1)); + skillsXp.put(SkillType.mining, result.getFloat(OFFSET_XP + 2)); + skillsXp.put(SkillType.repair, result.getFloat(OFFSET_XP + 3)); + skillsXp.put(SkillType.woodcutting, result.getFloat(OFFSET_XP + 4)); + skillsXp.put(SkillType.unarmed, result.getFloat(OFFSET_XP + 5)); + skillsXp.put(SkillType.herbalism, result.getFloat(OFFSET_XP + 6)); + skillsXp.put(SkillType.excavation, result.getFloat(OFFSET_XP + 7)); + skillsXp.put(SkillType.archery, result.getFloat(OFFSET_XP + 8)); + skillsXp.put(SkillType.swords, result.getFloat(OFFSET_XP + 9)); + skillsXp.put(SkillType.axes, result.getFloat(OFFSET_XP + 10)); + skillsXp.put(SkillType.acrobatics, result.getFloat(OFFSET_XP + 11)); + skillsXp.put(SkillType.fishing, result.getFloat(OFFSET_XP + 12)); + skillsXp.put(SkillType.alchemy, result.getFloat(OFFSET_XP + 13)); // Taming - Unused - result.getInt(OFFSET_DATS + 1) skillsDATS.put(AbilityType.SUPER_BREAKER, result.getInt(OFFSET_DATS + 2)); @@ -1357,11 +1357,11 @@ public final class SQLDatabaseManager implements DatabaseManager { resultSet = statement.executeQuery("SHOW INDEX FROM `" + tablePrefix + "skills` WHERE `Key_name` LIKE 'idx\\_%'"); resultSet.last(); - if (resultSet.getRow() != SkillType.NON_CHILD_SKILLS.size()) { + if (resultSet.getRow() != SkillType.nonChildSkills.size()) { mcMMO.p.getLogger().info("Indexing tables, this may take a while on larger databases"); - for (SkillType skill : SkillType.NON_CHILD_SKILLS) { - String skill_name = skill.name().toLowerCase(); + for (SkillType skill : SkillType.nonChildSkills) { + String skill_name = skill.getName().toLowerCase(); try { statement.executeUpdate("ALTER TABLE `" + tablePrefix + "skills` ADD INDEX `idx_" + skill_name + "` (`" + skill_name + "`) USING BTREE"); diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java index fb023a807..ad0a5e37a 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java +++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java @@ -111,7 +111,7 @@ public class McMMOPlayer { * If in the future someone wants to remove this, don't forget to also remove what is in the SkillType enum. - bm01 */ try { - for (SkillType skillType : SkillType.values()) { + for (SkillType skillType : SkillType.skillList) { skillManagers.put(skillType, skillType.getManagerClass().getConstructor(McMMOPlayer.class).newInstance(this)); } } @@ -131,63 +131,63 @@ public class McMMOPlayer { } public AcrobaticsManager getAcrobaticsManager() { - return (AcrobaticsManager) skillManagers.get(SkillType.ACROBATICS); + return (AcrobaticsManager) skillManagers.get(SkillType.acrobatics); } public AlchemyManager getAlchemyManager() { - return (AlchemyManager) skillManagers.get(SkillType.ALCHEMY); + return (AlchemyManager) skillManagers.get(SkillType.alchemy); } public ArcheryManager getArcheryManager() { - return (ArcheryManager) skillManagers.get(SkillType.ARCHERY); + return (ArcheryManager) skillManagers.get(SkillType.archery); } public AxesManager getAxesManager() { - return (AxesManager) skillManagers.get(SkillType.AXES); + return (AxesManager) skillManagers.get(SkillType.axes); } public ExcavationManager getExcavationManager() { - return (ExcavationManager) skillManagers.get(SkillType.EXCAVATION); + return (ExcavationManager) skillManagers.get(SkillType.excavation); } public FishingManager getFishingManager() { - return (FishingManager) skillManagers.get(SkillType.FISHING); + return (FishingManager) skillManagers.get(SkillType.fishing); } public HerbalismManager getHerbalismManager() { - return (HerbalismManager) skillManagers.get(SkillType.HERBALISM); + return (HerbalismManager) skillManagers.get(SkillType.herbalism); } public MiningManager getMiningManager() { - return (MiningManager) skillManagers.get(SkillType.MINING); + return (MiningManager) skillManagers.get(SkillType.mining); } public RepairManager getRepairManager() { - return (RepairManager) skillManagers.get(SkillType.REPAIR); + return (RepairManager) skillManagers.get(SkillType.repair); } public SalvageManager getSalvageManager() { - return (SalvageManager) skillManagers.get(SkillType.SALVAGE); + return (SalvageManager) skillManagers.get(SkillType.salvage); } public SmeltingManager getSmeltingManager() { - return (SmeltingManager) skillManagers.get(SkillType.SMELTING); + return (SmeltingManager) skillManagers.get(SkillType.smelting); } public SwordsManager getSwordsManager() { - return (SwordsManager) skillManagers.get(SkillType.SWORDS); + return (SwordsManager) skillManagers.get(SkillType.swords); } public TamingManager getTamingManager() { - return (TamingManager) skillManagers.get(SkillType.TAMING); + return (TamingManager) skillManagers.get(SkillType.taming); } public UnarmedManager getUnarmedManager() { - return (UnarmedManager) skillManagers.get(SkillType.UNARMED); + return (UnarmedManager) skillManagers.get(SkillType.unarmed); } public WoodcuttingManager getWoodcuttingManager() { - return (WoodcuttingManager) skillManagers.get(SkillType.WOODCUTTING); + return (WoodcuttingManager) skillManagers.get(SkillType.woodcutting); } public SkillManager getSkillManager(SkillType skillType) { @@ -389,7 +389,7 @@ public class McMMOPlayer { public int getPowerLevel() { int powerLevel = 0; - for (SkillType type : SkillType.NON_CHILD_SKILLS) { + for (SkillType type : SkillType.nonChildSkills) { if (type.getPermissions(player)) { powerLevel += getSkillLevel(type); } @@ -475,7 +475,7 @@ public class McMMOPlayer { return; } - isUsingUnarmed = (skillType == SkillType.UNARMED); + isUsingUnarmed = (skillType == SkillType.unarmed); checkXp(skillType, xpGainReason); } @@ -725,7 +725,7 @@ public class McMMOPlayer { * Axes and Woodcutting are odd because they share the same tool. * We show them the too tired message when they take action. */ - if (skill == SkillType.WOODCUTTING || skill == SkillType.AXES) { + if (skill == SkillType.woodcutting || skill == SkillType.axes) { player.sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining)); } @@ -787,7 +787,7 @@ public class McMMOPlayer { * Basically the tool always needs to ready and we check to see if the cooldown is over when the user takes action */ if (ability.getPermissions(player) && tool.inHand(inHand) && !getToolPreparationMode(tool)) { - if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) { + if (skill != SkillType.woodcutting && skill != SkillType.axes) { int timeRemaining = calculateTimeRemaining(ability); if (!getAbilityMode(ability) && timeRemaining > 0) { diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java index 53686c5e5..473561665 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java +++ b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java @@ -47,7 +47,7 @@ public class PlayerProfile { abilityDATS.put(abilityType, 0); } - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { skills.put(skillType, 0); skillsXp.put(skillType, 0F); } diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java index f5045fbc1..728995397 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java @@ -10,6 +10,22 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Tameable; import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.commands.skills.AcrobaticsCommand; +import com.gmail.nossr50.commands.skills.AlchemyCommand; +import com.gmail.nossr50.commands.skills.ArcheryCommand; +import com.gmail.nossr50.commands.skills.AxesCommand; +import com.gmail.nossr50.commands.skills.ExcavationCommand; +import com.gmail.nossr50.commands.skills.FishingCommand; +import com.gmail.nossr50.commands.skills.HerbalismCommand; +import com.gmail.nossr50.commands.skills.MiningCommand; +import com.gmail.nossr50.commands.skills.RepairCommand; +import com.gmail.nossr50.commands.skills.SalvageCommand; +import com.gmail.nossr50.commands.skills.SkillCommand; +import com.gmail.nossr50.commands.skills.SmeltingCommand; +import com.gmail.nossr50.commands.skills.SwordsCommand; +import com.gmail.nossr50.commands.skills.TamingCommand; +import com.gmail.nossr50.commands.skills.UnarmedCommand; +import com.gmail.nossr50.commands.skills.WoodcuttingCommand; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.locale.LocaleLoader; @@ -32,71 +48,92 @@ import com.gmail.nossr50.skills.woodcutting.WoodcuttingManager; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.skills.ParticleEffectUtils; - import com.google.common.collect.ImmutableList; -public enum SkillType { - ACROBATICS(AcrobaticsManager.class, Color.WHITE, ImmutableList.of(SecondaryAbility.DODGE, SecondaryAbility.GRACEFUL_ROLL, SecondaryAbility.ROLL)), - ALCHEMY(AlchemyManager.class, Color.FUCHSIA, ImmutableList.of(SecondaryAbility.CATALYSIS, SecondaryAbility.CONCOCTIONS)), - ARCHERY(ArcheryManager.class, Color.MAROON, ImmutableList.of(SecondaryAbility.DAZE, SecondaryAbility.RETRIEVE, SecondaryAbility.SKILL_SHOT)), - AXES(AxesManager.class, Color.AQUA, AbilityType.SKULL_SPLITTER, ToolType.AXE, ImmutableList.of(SecondaryAbility.ARMOR_IMPACT, SecondaryAbility.AXE_MASTERY, SecondaryAbility.CRITICAL_HIT, SecondaryAbility.GREATER_IMPACT)), - EXCAVATION(ExcavationManager.class, Color.fromRGB(139, 69, 19), AbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL, ImmutableList.of(SecondaryAbility.EXCAVATION_TREASURE_HUNTER)), - FISHING(FishingManager.class, Color.NAVY, ImmutableList.of(SecondaryAbility.FISHERMANS_DIET, SecondaryAbility.FISHING_TREASURE_HUNTER, SecondaryAbility.ICE_FISHING, SecondaryAbility.MAGIC_HUNTER, SecondaryAbility.MASTER_ANGLER, SecondaryAbility.SHAKE)), - HERBALISM(HerbalismManager.class, Color.GREEN, AbilityType.GREEN_TERRA, ToolType.HOE, ImmutableList.of(SecondaryAbility.FARMERS_DIET, SecondaryAbility.GREEN_THUMB_PLANT, SecondaryAbility.GREEN_THUMB_BLOCK, SecondaryAbility.HERBALISM_DOUBLE_DROPS, SecondaryAbility.HYLIAN_LUCK, SecondaryAbility.SHROOM_THUMB)), - MINING(MiningManager.class, Color.GRAY, AbilityType.SUPER_BREAKER, ToolType.PICKAXE, ImmutableList.of(SecondaryAbility.MINING_DOUBLE_DROPS)), - REPAIR(RepairManager.class, Color.SILVER, ImmutableList.of(SecondaryAbility.ARCANE_FORGING, SecondaryAbility.REPAIR_MASTERY, SecondaryAbility.SUPER_REPAIR)), - SALVAGE(SalvageManager.class, Color.ORANGE, ImmutableList.of(SecondaryAbility.ADVANCED_SALVAGE, SecondaryAbility.ARCANE_SALVAGE)), - SMELTING(SmeltingManager.class, Color.YELLOW, ImmutableList.of(SecondaryAbility.FLUX_MINING, SecondaryAbility.FUEL_EFFICIENCY, SecondaryAbility.SECOND_SMELT)), - SWORDS(SwordsManager.class, Color.fromRGB(178, 34, 34), AbilityType.SERRATED_STRIKES, ToolType.SWORD, ImmutableList.of(SecondaryAbility.BLEED, SecondaryAbility.COUNTER)), - TAMING(TamingManager.class, Color.PURPLE, ImmutableList.of(SecondaryAbility.BEAST_LORE, SecondaryAbility.CALL_OF_THE_WILD, SecondaryAbility.ENVIROMENTALLY_AWARE, SecondaryAbility.FAST_FOOD, SecondaryAbility.GORE, SecondaryAbility.HOLY_HOUND, SecondaryAbility.SHARPENED_CLAWS, SecondaryAbility.SHOCK_PROOF, SecondaryAbility.THICK_FUR)), - UNARMED(UnarmedManager.class, Color.BLACK, AbilityType.BERSERK, ToolType.FISTS, ImmutableList.of(SecondaryAbility.BLOCK_CRACKER, SecondaryAbility.DEFLECT, SecondaryAbility.DISARM, SecondaryAbility.IRON_ARM, SecondaryAbility.IRON_GRIP)), - WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, AbilityType.TREE_FELLER, ToolType.AXE, ImmutableList.of(SecondaryAbility.LEAF_BLOWER, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS)); +public class SkillType { + public enum SkillUseType { + COMBAT, + GATHERING, + MISC + } + public static List skillNames = new ArrayList(); + public static List skillList = new ArrayList(); + + public static List childSkills = new ArrayList(); + public static List nonChildSkills = new ArrayList(); + + public static List combatSkills = new ArrayList(); + public static List gatheringSkills = new ArrayList(); + public static List miscSkills = new ArrayList(); + + + public static final SkillType acrobatics = createSkill("ACROBATICS" , AcrobaticsManager.class , AcrobaticsCommand.class , false, Color.WHITE, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.DODGE, SecondaryAbility.GRACEFUL_ROLL, SecondaryAbility.ROLL)); + public static final SkillType alchemy = createSkill("ALCHEMY" , AlchemyManager.class , AlchemyCommand.class , false, Color.FUCHSIA, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.CATALYSIS, SecondaryAbility.CONCOCTIONS)); + public static final SkillType archery = createSkill("ARCHERY" , ArcheryManager.class , ArcheryCommand.class , false, Color.MAROON, SkillUseType.COMBAT, ImmutableList.of(SecondaryAbility.DAZE, SecondaryAbility.RETRIEVE, SecondaryAbility.SKILL_SHOT)); + public static final SkillType axes = createSkill("AXES" , AxesManager.class , AxesCommand.class , false, Color.AQUA, SkillUseType.COMBAT, AbilityType.SKULL_SPLITTER, ToolType.AXE, ImmutableList.of(SecondaryAbility.ARMOR_IMPACT, SecondaryAbility.AXE_MASTERY, SecondaryAbility.CRITICAL_HIT, SecondaryAbility.GREATER_IMPACT)); + public static final SkillType excavation = createSkill("EXCAVATION" , ExcavationManager.class , ExcavationCommand.class , false, Color.fromRGB(139, 69, 19), SkillUseType.GATHERING, AbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL, ImmutableList.of(SecondaryAbility.EXCAVATION_TREASURE_HUNTER)); + public static final SkillType fishing = createSkill("FISHING" , FishingManager.class , FishingCommand.class , false, Color.NAVY, SkillUseType.GATHERING, ImmutableList.of(SecondaryAbility.FISHERMANS_DIET, SecondaryAbility.FISHING_TREASURE_HUNTER, SecondaryAbility.ICE_FISHING, SecondaryAbility.MAGIC_HUNTER, SecondaryAbility.MASTER_ANGLER, SecondaryAbility.SHAKE)); + public static final SkillType herbalism = createSkill("HERBALISM" , HerbalismManager.class , HerbalismCommand.class , false, Color.GREEN, SkillUseType.GATHERING, AbilityType.GREEN_TERRA, ToolType.HOE, ImmutableList.of(SecondaryAbility.FARMERS_DIET, SecondaryAbility.GREEN_THUMB_PLANT, SecondaryAbility.GREEN_THUMB_BLOCK, SecondaryAbility.HERBALISM_DOUBLE_DROPS, SecondaryAbility.HYLIAN_LUCK, SecondaryAbility.SHROOM_THUMB)); + public static final SkillType mining = createSkill("MINING" , MiningManager.class , MiningCommand.class , false, Color.GRAY, SkillUseType.GATHERING, AbilityType.SUPER_BREAKER, ToolType.PICKAXE, ImmutableList.of(SecondaryAbility.MINING_DOUBLE_DROPS)); + public static final SkillType repair = createSkill("REPAIR" , RepairManager.class , RepairCommand.class , false, Color.SILVER, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.ARCANE_FORGING, SecondaryAbility.REPAIR_MASTERY, SecondaryAbility.SUPER_REPAIR)); + public static final SkillType salvage = createSkill("SALVAGE" , SalvageManager.class , SalvageCommand.class , true, Color.ORANGE, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.ADVANCED_SALVAGE, SecondaryAbility.ARCANE_SALVAGE)); + public static final SkillType smelting = createSkill("SMELTING" , SmeltingManager.class , SmeltingCommand.class , true, Color.YELLOW, SkillUseType.MISC, ImmutableList.of(SecondaryAbility.FLUX_MINING, SecondaryAbility.FUEL_EFFICIENCY, SecondaryAbility.SECOND_SMELT)); + public static final SkillType swords = createSkill("SWORDS" , SwordsManager.class , SwordsCommand.class , false, Color.fromRGB(178, 34, 34), SkillUseType.COMBAT, AbilityType.SERRATED_STRIKES, ToolType.SWORD, ImmutableList.of(SecondaryAbility.BLEED, SecondaryAbility.COUNTER)); + public static final SkillType taming = createSkill("TAMING" , TamingManager.class , TamingCommand.class , false, Color.PURPLE, SkillUseType.COMBAT, ImmutableList.of(SecondaryAbility.BEAST_LORE, SecondaryAbility.CALL_OF_THE_WILD, SecondaryAbility.ENVIROMENTALLY_AWARE, SecondaryAbility.FAST_FOOD, SecondaryAbility.GORE, SecondaryAbility.HOLY_HOUND, SecondaryAbility.SHARPENED_CLAWS, SecondaryAbility.SHOCK_PROOF, SecondaryAbility.THICK_FUR)); + public static final SkillType unarmed = createSkill("UNARMED" , UnarmedManager.class , UnarmedCommand.class , false, Color.BLACK, SkillUseType.COMBAT, AbilityType.BERSERK, ToolType.FISTS, ImmutableList.of(SecondaryAbility.BLOCK_CRACKER, SecondaryAbility.DEFLECT, SecondaryAbility.DISARM, SecondaryAbility.IRON_ARM, SecondaryAbility.IRON_GRIP)); + public static final SkillType woodcutting = createSkill("WOODCUTTING", WoodcuttingManager.class , WoodcuttingCommand.class , false, Color.OLIVE, SkillUseType.GATHERING, AbilityType.TREE_FELLER, ToolType.AXE, ImmutableList.of(SecondaryAbility.LEAF_BLOWER, SecondaryAbility.WOODCUTTING_DOUBLE_DROPS)); + + + private String name; private Class managerClass; + private Class commandClass; + private boolean isChild; private Color runescapeColor; + private SkillUseType skillUseType; private AbilityType ability; private ToolType tool; private List secondaryAbilities; - - public static final List SKILL_NAMES; - - public static final List CHILD_SKILLS; - public static final List NON_CHILD_SKILLS; - - public static final List COMBAT_SKILLS = ImmutableList.of(ARCHERY, AXES, SWORDS, TAMING, UNARMED); - public static final List GATHERING_SKILLS = ImmutableList.of(EXCAVATION, FISHING, HERBALISM, MINING, WOODCUTTING); - public static final List MISC_SKILLS = ImmutableList.of(ACROBATICS, ALCHEMY, REPAIR, SALVAGE, SMELTING); - - static { - List childSkills = new ArrayList(); - List nonChildSkills = new ArrayList(); - ArrayList names = new ArrayList(); - - for (SkillType skill : values()) { - if (skill.isChildSkill()) { - childSkills.add(skill); - } - else { - nonChildSkills.add(skill); - } - - names.add(skill.getName()); - } - - Collections.sort(names); - SKILL_NAMES = ImmutableList.copyOf(names); - - CHILD_SKILLS = ImmutableList.copyOf(childSkills); - NON_CHILD_SKILLS = ImmutableList.copyOf(nonChildSkills); + + public static SkillType createSkill(String name, Class managerClass, Class commandClass, boolean isChild, Color runescapeColor, SkillUseType skillUseType, List secondaryAbilities) { + return createSkill(name, managerClass, commandClass, isChild, runescapeColor, skillUseType, null, null, secondaryAbilities); + } + + public static SkillType createSkill(String name, Class managerClass, Class commandClass, boolean isChild, Color runescapeColor, SkillUseType skillUseType, AbilityType ability, ToolType tool, List secondaryAbilities) { + SkillType skill = new SkillType(name, managerClass, commandClass, isChild, runescapeColor, skillUseType, ability, tool, secondaryAbilities); + skillList.add(skill); + if(skill.isChild) { + childSkills.add(skill); + } + else { + nonChildSkills.add(skill); + } + switch(skill.skillUseType) { + case COMBAT: + combatSkills.add(skill); + break; + case GATHERING: + gatheringSkills.add(skill); + break; + default: + miscSkills.add(skill); + break; + } + skillNames.add(skill.name); + return skill; + } + + private SkillType(String name, Class managerClass, Class commandClass, boolean isChild, Color runescapeColor, SkillUseType skillUseType, List secondaryAbilities) { + this(name, managerClass, commandClass, isChild, runescapeColor, skillUseType, null, null, secondaryAbilities); } - private SkillType(Class managerClass, Color runescapeColor, List secondaryAbilities) { - this(managerClass, runescapeColor, null, null, secondaryAbilities); - } - - private SkillType(Class managerClass, Color runescapeColor, AbilityType ability, ToolType tool, List secondaryAbilities) { - this.managerClass = managerClass; + private SkillType(String name, Class managerClass, Class commandClass, boolean isChild, Color runescapeColor, SkillUseType skillUseType, AbilityType ability, ToolType tool, List secondaryAbilities) { + this.name = name; + this.managerClass = managerClass; + this.commandClass = commandClass; + this.isChild = isChild; this.runescapeColor = runescapeColor; + this.skillUseType = skillUseType; this.ability = ability; this.tool = tool; this.secondaryAbilities = secondaryAbilities; @@ -106,6 +143,10 @@ public enum SkillType { return managerClass; } + public Class getCommandClass() { + return commandClass; + } + public AbilityType getAbility() { return ability; } @@ -159,17 +200,21 @@ public enum SkillType { return ExperienceConfig.getInstance().getFormulaSkillModifier(this); } - public static SkillType getSkill(String skillName) { + public static SkillType getSkillFromLocalized(String skillName) { if (!Config.getInstance().getLocale().equalsIgnoreCase("en_US")) { - for (SkillType type : values()) { - if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(type.name()) + ".SkillName"))) { + for (SkillType type : skillList) { + if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(type.name) + ".SkillName"))) { return type; } } } - for (SkillType type : values()) { - if (type.name().equalsIgnoreCase(skillName)) { + return getSkill(skillName); + } + + public static SkillType getSkill(String skillName) { + for (SkillType type : skillList) { + if (type.name.equalsIgnoreCase(skillName)) { return type; } } @@ -181,20 +226,12 @@ public enum SkillType { return null; } - // TODO: This is a little "hacky", we probably need to add something to distinguish child skills in the enum, or to use another enum for them public boolean isChildSkill() { - switch (this) { - case SALVAGE: - case SMELTING: - return true; - - default: - return false; - } + return isChild; } public static SkillType bySecondaryAbility(SecondaryAbility skillAbility) { - for (SkillType type : values()) { + for (SkillType type : skillList) { if (type.getSkillAbilities().contains(skillAbility)) { return type; } @@ -203,7 +240,7 @@ public enum SkillType { } public static SkillType byAbility(AbilityType ability) { - for (SkillType type : values()) { + for (SkillType type : skillList) { if (type.getAbility() == ability) { return type; } @@ -212,7 +249,18 @@ public enum SkillType { return null; } - public String getName() { + public String getName() + { + return this.name; + } + + @Override + public String toString() + { + return getName(); + } + + public String getLocalizedName() { return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? StringUtils.getCapitalized(this.toString()) : StringUtils.getCapitalized(LocaleLoader.getString(StringUtils.getCapitalized(this.toString()) + ".SkillName")); } @@ -227,4 +275,9 @@ public enum SkillType { public boolean shouldProcess(Entity target) { return (target instanceof Player || (target instanceof Tameable && ((Tameable) target).isTamed())) ? getPVPEnabled() : getPVEEnabled(); } + + public static void setUpSkillTypes() + { + Collections.sort(skillNames); + } } diff --git a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java index 0152b30e9..9eb364565 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java @@ -15,7 +15,7 @@ public class McMMOPlayerBrewEvent extends McMMOPlayerSkillEvent implements Cance private boolean cancelled; public McMMOPlayerBrewEvent(Player player, BlockState brewingStand) { - super(player, SkillType.ALCHEMY); + super(player, SkillType.alchemy); this.brewingStand = brewingStand; cancelled = false; } diff --git a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java index 48c2e27c1..9fbb77e64 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java @@ -12,7 +12,7 @@ public class McMMOPlayerCatalysisEvent extends McMMOPlayerSkillEvent implements private boolean cancelled; public McMMOPlayerCatalysisEvent(Player player, double speed) { - super(player, SkillType.ALCHEMY); + super(player, SkillType.alchemy); this.speed = speed; cancelled = false; } diff --git a/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java b/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java index 09d8c0842..174bd24d6 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java @@ -10,7 +10,7 @@ public class McMMOPlayerFishingEvent extends McMMOPlayerSkillEvent implements Ca private boolean cancelled; protected McMMOPlayerFishingEvent(Player player) { - super(player, SkillType.FISHING); + super(player, SkillType.fishing); cancelled = false; } diff --git a/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java b/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java index e2f2eb009..f0c5a8740 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java @@ -17,7 +17,7 @@ public class McMMOPlayerRepairCheckEvent extends McMMOPlayerSkillEvent implement private boolean cancelled; public McMMOPlayerRepairCheckEvent(Player player, short repairAmount, ItemStack repairMaterial, ItemStack repairedObject) { - super(player, SkillType.REPAIR); + super(player, SkillType.repair); this.repairAmount = repairAmount; this.repairMaterial = repairMaterial; this.repairedObject = repairedObject; diff --git a/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java b/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java index defc5edde..1f4f17823 100644 --- a/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java +++ b/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java @@ -11,7 +11,7 @@ public class McMMOPlayerDisarmEvent extends McMMOPlayerSkillEvent implements Can private Player defender; public McMMOPlayerDisarmEvent(Player defender) { - super(defender, SkillType.UNARMED); + super(defender, SkillType.unarmed); this.defender = defender; } diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index 6380402a3..ad85279ee 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -130,10 +130,10 @@ public class BlockListener implements Listener { McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - if (blockState.getType() == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player)) { + if (blockState.getType() == Repair.anvilMaterial && SkillType.repair.getPermissions(player)) { mcMMOPlayer.getRepairManager().placedAnvilCheck(); } - else if (blockState.getType() == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player)) { + else if (blockState.getType() == Salvage.anvilMaterial && SkillType.salvage.getPermissions(player)) { mcMMOPlayer.getSalvageManager().placedAnvilCheck(); } } @@ -176,26 +176,26 @@ public class BlockListener implements Listener { /* Green Terra */ if (herbalismManager.canActivateAbility()) { - mcMMOPlayer.checkAbilityActivation(SkillType.HERBALISM); + mcMMOPlayer.checkAbilityActivation(SkillType.herbalism); } /* * We don't check the block store here because herbalism has too many unusual edge cases. * Instead, we check it inside the drops handler. */ - if (SkillType.HERBALISM.getPermissions(player)) { + if (SkillType.herbalism.getPermissions(player)) { herbalismManager.herbalismBlockCheck(blockState); } } /* MINING */ - else if (BlockUtils.affectedBySuperBreaker(blockState) && ItemUtils.isPickaxe(heldItem) && SkillType.MINING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { + else if (BlockUtils.affectedBySuperBreaker(blockState) && ItemUtils.isPickaxe(heldItem) && SkillType.mining.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { MiningManager miningManager = mcMMOPlayer.getMiningManager(); miningManager.miningBlockCheck(blockState); } /* WOOD CUTTING */ - else if (BlockUtils.isLog(blockState) && ItemUtils.isAxe(heldItem) && SkillType.WOODCUTTING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { + else if (BlockUtils.isLog(blockState) && ItemUtils.isAxe(heldItem) && SkillType.woodcutting.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager(); if (woodcuttingManager.canUseTreeFeller(heldItem)) { @@ -207,7 +207,7 @@ public class BlockListener implements Listener { } /* EXCAVATION */ - else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && SkillType.EXCAVATION.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { + else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && SkillType.excavation.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) { ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager(); excavationManager.excavationBlockCheck(blockState); @@ -312,19 +312,19 @@ public class BlockListener implements Listener { } if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) { - mcMMOPlayer.checkAbilityActivation(SkillType.HERBALISM); + mcMMOPlayer.checkAbilityActivation(SkillType.herbalism); } else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.isLog(blockState) && Permissions.treeFeller(player)) { - mcMMOPlayer.checkAbilityActivation(SkillType.WOODCUTTING); + mcMMOPlayer.checkAbilityActivation(SkillType.woodcutting); } else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) { - mcMMOPlayer.checkAbilityActivation(SkillType.MINING); + mcMMOPlayer.checkAbilityActivation(SkillType.mining); } else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) { - mcMMOPlayer.checkAbilityActivation(SkillType.EXCAVATION); + mcMMOPlayer.checkAbilityActivation(SkillType.excavation); } else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) { - mcMMOPlayer.checkAbilityActivation(SkillType.UNARMED); + mcMMOPlayer.checkAbilityActivation(SkillType.unarmed); } } diff --git a/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java b/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java index 588cc4252..be5e3ee52 100644 --- a/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java @@ -113,7 +113,7 @@ public class InventoryListener implements Listener { Player player = getPlayerFromFurnace(furnaceBlock); - if (!UserManager.hasPlayerDataKey(player) || !SkillType.SMELTING.getPermissions(player)) { + if (!UserManager.hasPlayerDataKey(player) || !SkillType.smelting.getPermissions(player)) { return; } @@ -132,7 +132,7 @@ public class InventoryListener implements Listener { Player player = getPlayerFromFurnace(furnaceBlock); - if (!UserManager.hasPlayerDataKey(player) || !Permissions.vanillaXpBoost(player, SkillType.SMELTING)) { + if (!UserManager.hasPlayerDataKey(player) || !Permissions.vanillaXpBoost(player, SkillType.smelting)) { return; } diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java index 0e7356af5..811a24fce 100644 --- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java @@ -211,7 +211,7 @@ public class PlayerListener implements Listener { public void onPlayerFishHighest(PlayerFishEvent event) { Player player = event.getPlayer(); - if (!UserManager.hasPlayerDataKey(player) || !SkillType.FISHING.getPermissions(player)) { + if (!UserManager.hasPlayerDataKey(player) || !SkillType.fishing.getPermissions(player)) { return; } @@ -232,7 +232,7 @@ public class PlayerListener implements Listener { fishingCatch.setItemStack(new ItemStack(Material.RAW_FISH, 1)); } - if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) { + if (Permissions.vanillaXpBoost(player, SkillType.fishing)) { event.setExpToDrop(fishingManager.handleVanillaXpBoost(event.getExpToDrop())); } return; @@ -263,7 +263,7 @@ public class PlayerListener implements Listener { public void onPlayerFishMonitor(PlayerFishEvent event) { Player player = event.getPlayer(); - if (!UserManager.hasPlayerDataKey(player) || !SkillType.FISHING.getPermissions(player)) { + if (!UserManager.hasPlayerDataKey(player) || !SkillType.fishing.getPermissions(player)) { return; } @@ -446,7 +446,7 @@ public class PlayerListener implements Listener { if (!Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() || player.isSneaking()) { /* REPAIR CHECKS */ - if (type == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) { + if (type == Repair.anvilMaterial && SkillType.repair.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) { RepairManager repairManager = mcMMOPlayer.getRepairManager(); event.setCancelled(true); @@ -457,7 +457,7 @@ public class PlayerListener implements Listener { } } /* SALVAGE CHECKS */ - else if (type == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) { + else if (type == Salvage.anvilMaterial && SkillType.salvage.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) { SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager(); event.setCancelled(true); @@ -485,7 +485,7 @@ public class PlayerListener implements Listener { if ((Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() && player.isSneaking()) || !Config.getInstance().getAbilitiesOnlyActivateWhenSneaking()) { /* REPAIR CHECKS */ - if (type == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) { + if (type == Repair.anvilMaterial && SkillType.repair.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) { RepairManager repairManager = mcMMOPlayer.getRepairManager(); // Cancel repairing an enchanted item @@ -495,7 +495,7 @@ public class PlayerListener implements Listener { } } /* SALVAGE CHECKS */ - else if (type == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) { + else if (type == Salvage.anvilMaterial && SkillType.salvage.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) { SalvageManager salvageManager = mcMMOPlayer.getSalvageManager(); // Cancel salvaging an enchanted item @@ -538,15 +538,15 @@ public class PlayerListener implements Listener { if (BlockUtils.canActivateAbilities(blockState)) { if (Config.getInstance().getAbilitiesEnabled()) { if (BlockUtils.canActivateHerbalism(blockState)) { - mcMMOPlayer.processAbilityActivation(SkillType.HERBALISM); + mcMMOPlayer.processAbilityActivation(SkillType.herbalism); } - mcMMOPlayer.processAbilityActivation(SkillType.AXES); - mcMMOPlayer.processAbilityActivation(SkillType.EXCAVATION); - mcMMOPlayer.processAbilityActivation(SkillType.MINING); - mcMMOPlayer.processAbilityActivation(SkillType.SWORDS); - mcMMOPlayer.processAbilityActivation(SkillType.UNARMED); - mcMMOPlayer.processAbilityActivation(SkillType.WOODCUTTING); + mcMMOPlayer.processAbilityActivation(SkillType.axes); + mcMMOPlayer.processAbilityActivation(SkillType.excavation); + mcMMOPlayer.processAbilityActivation(SkillType.mining); + mcMMOPlayer.processAbilityActivation(SkillType.swords); + mcMMOPlayer.processAbilityActivation(SkillType.unarmed); + mcMMOPlayer.processAbilityActivation(SkillType.woodcutting); } ChimaeraWing.activationCheck(player); @@ -575,13 +575,13 @@ public class PlayerListener implements Listener { /* ACTIVATION CHECKS */ if (Config.getInstance().getAbilitiesEnabled()) { - mcMMOPlayer.processAbilityActivation(SkillType.AXES); - mcMMOPlayer.processAbilityActivation(SkillType.EXCAVATION); - mcMMOPlayer.processAbilityActivation(SkillType.HERBALISM); - mcMMOPlayer.processAbilityActivation(SkillType.MINING); - mcMMOPlayer.processAbilityActivation(SkillType.SWORDS); - mcMMOPlayer.processAbilityActivation(SkillType.UNARMED); - mcMMOPlayer.processAbilityActivation(SkillType.WOODCUTTING); + mcMMOPlayer.processAbilityActivation(SkillType.axes); + mcMMOPlayer.processAbilityActivation(SkillType.excavation); + mcMMOPlayer.processAbilityActivation(SkillType.herbalism); + mcMMOPlayer.processAbilityActivation(SkillType.mining); + mcMMOPlayer.processAbilityActivation(SkillType.swords); + mcMMOPlayer.processAbilityActivation(SkillType.unarmed); + mcMMOPlayer.processAbilityActivation(SkillType.woodcutting); } /* ITEM CHECKS */ @@ -681,9 +681,9 @@ public class PlayerListener implements Listener { String lowerCaseCommand = command.toLowerCase(); // Do these ACTUALLY have to be lower case to work properly? - for (SkillType skill : SkillType.values()) { + for (SkillType skill : SkillType.skillList) { String skillName = skill.toString().toLowerCase(); - String localizedName = skill.getName().toLowerCase(); + String localizedName = skill.getLocalizedName().toLowerCase(); if (lowerCaseCommand.equals(localizedName)) { event.setMessage(message.replace(command, skillName)); diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java index afbfea0c7..ce96c8252 100644 --- a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java @@ -46,13 +46,13 @@ public class McrankCommandDisplayTask extends BukkitRunnable { sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Heading")); sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Player", playerName)); - for (SkillType skill : SkillType.NON_CHILD_SKILLS) { + for (SkillType skill : SkillType.nonChildSkills) { if (!skill.getPermissions(player)) { continue; } rank = skills.get(skill); - sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", skill.getName(), (rank == null ? LocaleLoader.getString("Commands.mcrank.Unranked") : rank))); + sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", skill.getLocalizedName(), (rank == null ? LocaleLoader.getString("Commands.mcrank.Unranked") : rank))); } rank = skills.get(null); diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java index bdc4ba455..91fb8753e 100644 --- a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java @@ -50,7 +50,7 @@ public class MctopCommandDisplayTask extends BukkitRunnable { sender.sendMessage(LocaleLoader.getString("Commands.PowerLevel.Leaderboard")); } else { - sender.sendMessage(LocaleLoader.getString("Commands.Skill.Leaderboard", skill.getName())); + sender.sendMessage(LocaleLoader.getString("Commands.Skill.Leaderboard", skill.getLocalizedName())); } int place = (page * 10) - 9; diff --git a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java index ad00520ad..274fadd1d 100644 --- a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java @@ -59,7 +59,7 @@ public class FormulaConversionTask extends BukkitRunnable { private void editValues(PlayerProfile profile) { mcMMO.p.debug("========================================================================"); mcMMO.p.debug("Conversion report for " + profile.getPlayerName() + ":"); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { int oldLevel = profile.getSkillLevel(skillType); int oldXPLevel = profile.getSkillXpLevel(skillType); int totalOldXP = mcMMO.getFormulaManager().calculateTotalExperience(oldLevel, oldXPLevel); diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java index cfcac3ca5..c061bbc2d 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java @@ -37,7 +37,7 @@ public class AlchemyBrewTask extends BukkitRunnable { brewTimer = DEFAULT_BREW_TICKS; if (player != null && !Misc.isNPCEntity(player) && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.CATALYSIS)) { - double catalysis = UserManager.getPlayer(player).getAlchemyManager().calculateBrewSpeed(Permissions.lucky(player, SkillType.ALCHEMY)); + double catalysis = UserManager.getPlayer(player).getAlchemyManager().calculateBrewSpeed(Permissions.lucky(player, SkillType.alchemy)); McMMOPlayerCatalysisEvent event = new McMMOPlayerCatalysisEvent(player, catalysis); mcMMO.p.getServer().getPluginManager().callEvent(event); diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java index 851f0daf5..9db471622 100644 --- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java @@ -25,7 +25,7 @@ public class AcrobaticsManager extends SkillManager { Location lastFallLocation; public AcrobaticsManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.ACROBATICS); + super(mcMMOPlayer, SkillType.acrobatics); } public boolean canRoll() { diff --git a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java index 3448567a4..087c791eb 100644 --- a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java +++ b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java @@ -17,7 +17,7 @@ public class AlchemyManager extends SkillManager { private final double LUCKY_MODIFIER = 4.0 / 3.0; public AlchemyManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.ALCHEMY); + super(mcMMOPlayer, SkillType.alchemy); } public int getTier() { diff --git a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java index 9d60e4a49..ce04515a0 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java @@ -20,7 +20,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class ArcheryManager extends SkillManager { public ArcheryManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.ARCHERY); + super(mcMMOPlayer, SkillType.archery); } public boolean canDaze(LivingEntity target) { diff --git a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java index 3421d5c55..631a7bd4a 100644 --- a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java +++ b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java @@ -23,7 +23,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class AxesManager extends SkillManager { public AxesManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.AXES); + super(mcMMOPlayer, SkillType.axes); } public boolean canUseAxeMastery() { diff --git a/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java b/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java index fbbd290b3..976df37ca 100644 --- a/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java +++ b/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java @@ -1,6 +1,8 @@ package com.gmail.nossr50.skills.child; import java.util.EnumSet; +import java.util.HashSet; +import java.util.Set; import org.bukkit.configuration.file.YamlConfiguration; @@ -20,15 +22,15 @@ public class ChildConfig extends AutoUpdateConfigLoader { FamilyTree.clearRegistrations(); // when reloading, need to clear statics - for (SkillType skill : SkillType.CHILD_SKILLS) { - plugin.debug("Finding parents of " + skill.name()); + for (SkillType skill : SkillType.childSkills) { + plugin.debug("Finding parents of " + skill.getLocalizedName()); - EnumSet parentSkills = EnumSet.noneOf(SkillType.class); + Set parentSkills = new HashSet(); boolean useDefaults = false; // If we had an error we back out and use defaults - for (String name : config.getStringList(StringUtils.getCapitalized(skill.name()))) { + for (String name : config.getStringList(StringUtils.getCapitalized(skill.getName()))) { try { - SkillType parentSkill = SkillType.valueOf(name.toUpperCase()); + SkillType parentSkill = SkillType.getSkill(name); FamilyTree.enforceNotChildSkill(parentSkill); parentSkills.add(parentSkill); } @@ -41,18 +43,18 @@ public class ChildConfig extends AutoUpdateConfigLoader { if (useDefaults) { parentSkills.clear(); - for (String name : config.getDefaults().getStringList(StringUtils.getCapitalized(skill.name()))) { + for (String name : config.getDefaults().getStringList(StringUtils.getCapitalized(skill.getName()))) { /* We do less checks in here because it's from inside our jar. * If they're dedicated enough to have modified it, they can have the errors it may produce. * Alternatively, this can be used to allow child skills to be parent skills, provided there are no circular dependencies this is an advanced sort of configuration. */ - parentSkills.add(SkillType.valueOf(name.toUpperCase())); + parentSkills.add(SkillType.getSkill(name)); } } // Register them for (SkillType parentSkill : parentSkills) { - plugin.debug("Registering " + parentSkill.name() + " as parent of " + skill.name()); + plugin.debug("Registering " + parentSkill.getName() + " as parent of " + skill.getName()); FamilyTree.registerParent(skill, parentSkill); } } diff --git a/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java b/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java index bb3842b01..118fd266d 100644 --- a/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java +++ b/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.skills.child; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; +import java.util.HashSet; import java.util.Set; import com.gmail.nossr50.datatypes.skills.SkillType; @@ -22,7 +23,7 @@ public class FamilyTree { enforceNotChildSkill(parentSkill); if (!tree.containsKey(childSkill)) { - tree.put(childSkill, EnumSet.noneOf(SkillType.class)); + tree.put(childSkill, new HashSet()); } tree.get(childSkill).add(parentSkill); @@ -41,13 +42,13 @@ public class FamilyTree { protected static void enforceChildSkill(SkillType skill) { if (!skill.isChildSkill()) { - throw new IllegalArgumentException(skill.name() + " is not a child skill!"); + throw new IllegalArgumentException(skill.getName() + " is not a child skill!"); } } protected static void enforceNotChildSkill(SkillType skill) { if (skill.isChildSkill()) { - throw new IllegalArgumentException(skill.name() + " is a child skill!"); + throw new IllegalArgumentException(skill.getName() + " is a child skill!"); } } } diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java index 1f96a80c6..da589df54 100644 --- a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java @@ -58,7 +58,7 @@ public class Excavation { xp = ExperienceConfig.getInstance().getDirtAndSandXp(blockState.getData()); } else { - xp = ExperienceConfig.getInstance().getXp(SkillType.EXCAVATION, material); + xp = ExperienceConfig.getInstance().getXp(SkillType.excavation, material); } if (xp == 0 && mcMMO.getModManager().isCustomExcavationBlock(blockState)) { 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 ab4a4df3f..003573a7c 100644 --- a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java +++ b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java @@ -18,7 +18,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class ExcavationManager extends SkillManager { public ExcavationManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.EXCAVATION); + super(mcMMOPlayer, SkillType.excavation); } /** diff --git a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java index ccac74894..cec0d86a1 100644 --- a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java @@ -72,7 +72,7 @@ public class FishingManager extends SkillManager { private Location hookLocation; public FishingManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.FISHING); + super(mcMMOPlayer, SkillType.fishing); } public boolean canShake(Entity target) { 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 61396112c..e409cc329 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java @@ -40,7 +40,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class HerbalismManager extends SkillManager { public HerbalismManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.HERBALISM); + super(mcMMOPlayer, SkillType.herbalism); } public boolean canBlockCheck() { diff --git a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java index c93c692a1..60d6b55d3 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java @@ -19,7 +19,7 @@ public class Mining { */ protected static int getBlockXp(BlockState blockState) { Material blockType = blockState.getType(); - int xp = ExperienceConfig.getInstance().getXp(SkillType.MINING, blockType != Material.GLOWING_REDSTONE_ORE ? blockType : Material.REDSTONE_ORE); + int xp = ExperienceConfig.getInstance().getXp(SkillType.mining, blockType != Material.GLOWING_REDSTONE_ORE ? blockType : Material.REDSTONE_ORE); if (xp == 0 && mcMMO.getModManager().isCustomMiningBlock(blockState)) { xp = mcMMO.getModManager().getBlock(blockState).getXpGain(); @@ -50,7 +50,7 @@ public class Mining { return; case GLOWING_REDSTONE_ORE: - if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) { + if (Config.getInstance().getDoubleDropsEnabled(SkillType.mining, Material.REDSTONE_ORE)) { Misc.dropItem(blockState.getLocation(), new ItemStack(Material.REDSTONE_ORE)); } return; @@ -104,7 +104,7 @@ public class Mining { return; case GLOWING_REDSTONE_ORE: - if (Config.getInstance().getDoubleDropsEnabled(SkillType.MINING, Material.REDSTONE_ORE)) { + if (Config.getInstance().getDoubleDropsEnabled(SkillType.mining, Material.REDSTONE_ORE)) { Misc.dropItems(blockState.getLocation(), blockState.getBlock().getDrops()); } return; diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java index 63d324218..85713731a 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -29,7 +29,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class MiningManager extends SkillManager { public MiningManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.MINING); + super(mcMMOPlayer, SkillType.mining); } public boolean canUseDemolitionsExpertise() { diff --git a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java index 070a06772..65982025f 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java @@ -33,7 +33,7 @@ public class RepairManager extends SkillManager { private int lastClick; public RepairManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.REPAIR); + super(mcMMOPlayer, SkillType.repair); } /** diff --git a/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java b/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java index ecd2f7e0e..bb5cdd949 100644 --- a/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java +++ b/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java @@ -30,7 +30,7 @@ public class SalvageManager extends SkillManager { private int lastClick; public SalvageManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.SALVAGE); + super(mcMMOPlayer, SkillType.salvage); } /** diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java index fdb60a0f3..d8d659a72 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java @@ -50,6 +50,6 @@ public class Smelting { MaterialData data = smelting.getData(); Material resourceType = smelting.getType(); - return mcMMO.getModManager().isCustomOre(data) ? mcMMO.getModManager().getBlock(data).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(SkillType.SMELTING, resourceType != Material.GLOWING_REDSTONE_ORE ? resourceType : Material.REDSTONE_ORE); + return mcMMO.getModManager().isCustomOre(data) ? mcMMO.getModManager().getBlock(data).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(SkillType.smelting, resourceType != Material.GLOWING_REDSTONE_ORE ? resourceType : Material.REDSTONE_ORE); } } diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java index 2bc8ff8f2..297fc682e 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java @@ -22,7 +22,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class SmeltingManager extends SkillManager { public SmeltingManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.SMELTING); + super(mcMMOPlayer, SkillType.smelting); } public boolean canUseFluxMining(BlockState blockState) { diff --git a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java index 769028708..8acdbb1bc 100644 --- a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java @@ -23,7 +23,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class SwordsManager extends SkillManager { public SwordsManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.SWORDS); + super(mcMMOPlayer, SkillType.swords); } public boolean canActivateAbility() { diff --git a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java index 41e2ead87..27c49b26d 100644 --- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java @@ -28,7 +28,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class TamingManager extends SkillManager { public TamingManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.TAMING); + super(mcMMOPlayer, SkillType.taming); } public boolean canUseThickFur() { diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java index 0904ceb9d..c04d00236 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java @@ -26,7 +26,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class UnarmedManager extends SkillManager { public UnarmedManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.UNARMED); + super(mcMMOPlayer, SkillType.unarmed); } public boolean canActivateAbility() { diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java index 23c95c8a7..0c78632f7 100644 --- a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java @@ -30,7 +30,7 @@ import com.gmail.nossr50.util.skills.SkillUtils; public class WoodcuttingManager extends SkillManager { public WoodcuttingManager(McMMOPlayer mcMMOPlayer) { - super(mcMMOPlayer, SkillType.WOODCUTTING); + super(mcMMOPlayer, SkillType.woodcutting); } public boolean canUseLeafBlower(ItemStack heldItem) { diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java index a3cf68253..20e307171 100644 --- a/src/main/java/com/gmail/nossr50/util/EventUtils.java +++ b/src/main/java/com/gmail/nossr50/util/EventUtils.java @@ -177,7 +177,7 @@ public class EventUtils { experienceChanged = event.getExperienceChanged(); PlayerProfile playerProfile = UserManager.getPlayer(player).getProfile(); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { String skillName = skillType.toString(); int playerSkillLevel = playerProfile.getSkillLevel(skillType); @@ -215,7 +215,7 @@ public class EventUtils { McMMOPlayer killerPlayer = UserManager.getPlayer(killer); PlayerProfile victimProfile = UserManager.getPlayer(victim).getProfile(); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { String skillName = skillType.toString(); int victimSkillLevel = victimProfile.getSkillLevel(skillType); diff --git a/src/main/java/com/gmail/nossr50/util/HardcoreManager.java b/src/main/java/com/gmail/nossr50/util/HardcoreManager.java index 2c3e1a7c0..f67ef6ef6 100644 --- a/src/main/java/com/gmail/nossr50/util/HardcoreManager.java +++ b/src/main/java/com/gmail/nossr50/util/HardcoreManager.java @@ -23,7 +23,7 @@ public final class HardcoreManager { HashMap levelChanged = new HashMap(); HashMap experienceChanged = new HashMap(); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { if (!skillType.getHardcoreStatLossEnabled()) { break; } @@ -62,7 +62,7 @@ public final class HardcoreManager { HashMap levelChanged = new HashMap(); HashMap experienceChanged = new HashMap(); - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { if (!skillType.getHardcoreVampirismEnabled()) { break; } @@ -107,7 +107,7 @@ public final class HardcoreManager { public static boolean isStatLossEnabled() { boolean enabled = false; - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { if (skillType.getHardcoreStatLossEnabled()) { enabled = true; break; @@ -125,7 +125,7 @@ public final class HardcoreManager { public static boolean isVampirismEnabled() { boolean enabled = false; - for (SkillType skillType : SkillType.NON_CHILD_SKILLS) { + for (SkillType skillType : SkillType.nonChildSkills) { if (skillType.getHardcoreVampirismEnabled()) { enabled = true; break; diff --git a/src/main/java/com/gmail/nossr50/util/HolidayManager.java b/src/main/java/com/gmail/nossr50/util/HolidayManager.java index 1c73f5ae5..690de7eee 100644 --- a/src/main/java/com/gmail/nossr50/util/HolidayManager.java +++ b/src/main/java/com/gmail/nossr50/util/HolidayManager.java @@ -375,7 +375,7 @@ public final class HolidayManager { } public void levelUpApril(Player player, FakeSkillType fakeSkillType) { - int levelTotal = Misc.getRandom().nextInt(1 + UserManager.getPlayer(player).getSkillLevel(SkillType.MINING)) + 1; + int levelTotal = Misc.getRandom().nextInt(1 + UserManager.getPlayer(player).getSkillLevel(SkillType.mining)) + 1; player.playSound(player.getLocation(), Sound.LEVEL_UP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH); player.sendMessage(ChatColor.YELLOW + StringUtils.getCapitalized(fakeSkillType.toString()) + " skill increased by 1. Total (" + levelTotal + ")"); ParticleEffectUtils.fireworkParticleShower(player, ALL_COLORS.get(Misc.getRandom().nextInt(ALL_COLORS.size()))); diff --git a/src/main/java/com/gmail/nossr50/util/Motd.java b/src/main/java/com/gmail/nossr50/util/Motd.java index 3ede5b77b..2738b8037 100644 --- a/src/main/java/com/gmail/nossr50/util/Motd.java +++ b/src/main/java/com/gmail/nossr50/util/Motd.java @@ -85,7 +85,7 @@ public final class Motd { * @param player Target player */ public static void displayXpPerks(Player player) { - for (SkillType skill : SkillType.values()) { + for (SkillType skill : SkillType.skillList) { if (PerksUtils.handleXpPerks(player, 1, skill) > 1) { player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.XP.Name"), LocaleLoader.getString("Perks.XP.Desc"))); return; @@ -126,7 +126,7 @@ public final class Motd { * @param player Target player */ public static void displayLuckyPerks(Player player) { - for (SkillType skill : SkillType.values()) { + for (SkillType skill : SkillType.skillList) { if (Permissions.lucky(player, skill)) { player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login"))); return; diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java index 808135ae3..a2f578890 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java @@ -61,9 +61,9 @@ public final class CommandRegistrationManager { private static String permissionsMessage = LocaleLoader.getString("mcMMO.NoPermission"); private static void registerSkillCommands() { - for (SkillType skill : SkillType.values()) { + for (SkillType skill : SkillType.skillList) { String commandName = skill.toString().toLowerCase(); - String localizedName = skill.getName().toLowerCase(); + String localizedName = skill.getLocalizedName().toLowerCase(); PluginCommand command; @@ -74,70 +74,11 @@ public final class CommandRegistrationManager { command.setUsage(LocaleLoader.getString("Commands.Usage.0", localizedName)); command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.2", localizedName, "?", "[" + LocaleLoader.getString("Commands.Usage.Page") + "]")); - switch (skill) { - case ACROBATICS: - command.setExecutor(new AcrobaticsCommand()); - break; - - case ALCHEMY: - command.setExecutor(new AlchemyCommand()); - break; - - case ARCHERY: - command.setExecutor(new ArcheryCommand()); - break; - - case AXES: - command.setExecutor(new AxesCommand()); - break; - - case EXCAVATION: - command.setExecutor(new ExcavationCommand()); - break; - - case FISHING: - command.setExecutor(new FishingCommand()); - break; - - case HERBALISM: - command.setExecutor(new HerbalismCommand()); - break; - - case MINING: - command.setExecutor(new MiningCommand()); - break; - - case REPAIR: - command.setExecutor(new RepairCommand()); - break; - - case SALVAGE: - command.setExecutor(new SalvageCommand()); - break; - - case SMELTING: - command.setExecutor(new SmeltingCommand()); - break; - - case SWORDS: - command.setExecutor(new SwordsCommand()); - break; - - case TAMING: - command.setExecutor(new TamingCommand()); - break; - - case UNARMED: - command.setExecutor(new UnarmedCommand()); - break; - - case WOODCUTTING: - command.setExecutor(new WoodcuttingCommand()); - break; - - default: - break; - } + try { + command.setExecutor(skill.getCommandClass().newInstance()); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java index 76dd50bdf..9c846a964 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java @@ -181,7 +181,7 @@ public final class CommandUtils { * @param display The sender to display stats to */ public static void printGatheringSkills(Player inspect, CommandSender display) { - printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), SkillType.GATHERING_SKILLS); + printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), SkillType.gatheringSkills); } public static void printGatheringSkills(Player player) { @@ -195,7 +195,7 @@ public final class CommandUtils { * @param display The sender to display stats to */ public static void printCombatSkills(Player inspect, CommandSender display) { - printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), SkillType.COMBAT_SKILLS); + printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), SkillType.combatSkills); } public static void printCombatSkills(Player player) { @@ -209,7 +209,7 @@ public final class CommandUtils { * @param display The sender to display stats to */ public static void printMiscSkills(Player inspect, CommandSender display) { - printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), SkillType.MISC_SKILLS); + printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), SkillType.miscSkills); } public static void printMiscSkills(Player player) { diff --git a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java index dfaa43374..2232d9bbc 100644 --- a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java +++ b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java @@ -76,14 +76,14 @@ public class ScoreboardManager { Collections.shuffle(colors, Misc.getRandom()); int i = 0; - for (SkillType type : SkillType.values()) { + for (SkillType type : SkillType.skillList) { // Include child skills - skillLabelBuilder.put(type, getShortenedName(colors.get(i) + type.getName(), false)); + skillLabelBuilder.put(type, getShortenedName(colors.get(i) + type.getLocalizedName(), false)); if (type.getAbility() != null) { abilityLabelBuilder.put(type.getAbility(), getShortenedName(colors.get(i) + type.getAbility().getName())); - if (type == SkillType.MINING) { + if (type == SkillType.mining) { abilityLabelBuilder.put(AbilityType.BLAST_MINING, getShortenedName(colors.get(i) + AbilityType.BLAST_MINING.getName())); } } @@ -94,14 +94,14 @@ public class ScoreboardManager { } } else { - for (SkillType type : SkillType.values()) { + for (SkillType type : SkillType.skillList) { // Include child skills - skillLabelBuilder.put(type, getShortenedName(ChatColor.GREEN + type.getName())); + skillLabelBuilder.put(type, getShortenedName(ChatColor.GREEN + type.getLocalizedName())); if (type.getAbility() != null) { abilityLabelBuilder.put(type.getAbility(), getShortenedName(ChatColor.AQUA + type.getAbility().getName())); - if (type == SkillType.MINING) { + if (type == SkillType.mining) { abilityLabelBuilder.put(AbilityType.BLAST_MINING, getShortenedName(ChatColor.AQUA + AbilityType.BLAST_MINING.getName())); } } diff --git a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java index e8343dcba..da87f1648 100644 --- a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java +++ b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java @@ -426,7 +426,7 @@ public class ScoreboardWrapper { if (targetSkill.getAbility() != null) { boolean stopUpdating; - if (targetSkill == SkillType.MINING) { + if (targetSkill == SkillType.mining) { // Special-Case: Mining has two abilities, both with cooldowns Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.SUPER_BREAKER)); Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.BLAST_MINING)); @@ -494,7 +494,7 @@ public class ScoreboardWrapper { // Calculate power level here int powerLevel = 0; - for (SkillType skill : SkillType.NON_CHILD_SKILLS) { // Don't include child skills, makes the list too long + for (SkillType skill : SkillType.nonChildSkills) { // Don't include child skills, makes the list too long int level = newProfile.getSkillLevel(skill); powerLevel += level; @@ -527,7 +527,7 @@ public class ScoreboardWrapper { Integer rank; Player player = mcMMO.p.getServer().getPlayerExact(playerName); - for (SkillType skill : SkillType.NON_CHILD_SKILLS) { + for (SkillType skill : SkillType.nonChildSkills) { if (!skill.getPermissions(player)) { continue; } diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java index 04ccd19e8..5028e5fc2 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java @@ -60,7 +60,7 @@ public final class CombatUtils { Map modifiers = getModifiers(event); if (swordsManager.canActivateAbility()) { - mcMMOPlayer.checkAbilityActivation(SkillType.SWORDS); + mcMMOPlayer.checkAbilityActivation(SkillType.swords); } if (swordsManager.canUseBleed()) { @@ -71,7 +71,7 @@ public final class CombatUtils { swordsManager.serratedStrikes(target, initialDamage, modifiers); } - startGainXp(mcMMOPlayer, target, SkillType.SWORDS); + startGainXp(mcMMOPlayer, target, SkillType.swords); } private static void processAxeCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) { @@ -83,7 +83,7 @@ public final class CombatUtils { AxesManager axesManager = mcMMOPlayer.getAxesManager(); if (axesManager.canActivateAbility()) { - mcMMOPlayer.checkAbilityActivation(SkillType.AXES); + mcMMOPlayer.checkAbilityActivation(SkillType.axes); } if (axesManager.canUseAxeMastery()) { @@ -106,7 +106,7 @@ public final class CombatUtils { } applyScaledModifiers(initialDamage, finalDamage, event); - startGainXp(mcMMOPlayer, target, SkillType.AXES); + startGainXp(mcMMOPlayer, target, SkillType.axes); } private static void processUnarmedCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) { @@ -117,7 +117,7 @@ public final class CombatUtils { UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager(); if (unarmedManager.canActivateAbility()) { - mcMMOPlayer.checkAbilityActivation(SkillType.UNARMED); + mcMMOPlayer.checkAbilityActivation(SkillType.unarmed); } if (unarmedManager.canUseIronArm()) { @@ -133,7 +133,7 @@ public final class CombatUtils { } applyScaledModifiers(initialDamage, finalDamage, event); - startGainXp(mcMMOPlayer, target, SkillType.UNARMED); + startGainXp(mcMMOPlayer, target, SkillType.unarmed); } private static void processTamingCombat(LivingEntity target, Player master, Wolf wolf, EntityDamageByEntityEvent event) { @@ -156,7 +156,7 @@ public final class CombatUtils { } applyScaledModifiers(initialDamage, finalDamage, event); - startGainXp(mcMMOPlayer, target, SkillType.TAMING); + startGainXp(mcMMOPlayer, target, SkillType.taming); } private static void processArcheryCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event, Arrow arrow) { @@ -166,7 +166,7 @@ public final class CombatUtils { McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); ArcheryManager archeryManager = mcMMOPlayer.getArcheryManager(); - if (target instanceof Player && SkillType.UNARMED.getPVPEnabled()) { + if (target instanceof Player && SkillType.unarmed.getPVPEnabled()) { UnarmedManager unarmedManager = UserManager.getPlayer((Player) target).getUnarmedManager(); if (unarmedManager.canDeflect()) { @@ -193,7 +193,7 @@ public final class CombatUtils { archeryManager.distanceXpBonus(target, arrow); applyScaledModifiers(initialDamage, finalDamage, event); - startGainXp(mcMMOPlayer, target, SkillType.ARCHERY, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble()); + startGainXp(mcMMOPlayer, target, SkillType.archery, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble()); } /** @@ -231,29 +231,29 @@ public final class CombatUtils { } if (ItemUtils.isSword(heldItem)) { - if (!SkillType.SWORDS.shouldProcess(target)) { + if (!SkillType.swords.shouldProcess(target)) { return; } - if (SkillType.SWORDS.getPermissions(player)) { + if (SkillType.swords.getPermissions(player)) { processSwordCombat(target, player, event); } } else if (ItemUtils.isAxe(heldItem)) { - if (!SkillType.AXES.shouldProcess(target)) { + if (!SkillType.axes.shouldProcess(target)) { return; } - if (SkillType.AXES.getPermissions(player)) { + if (SkillType.axes.getPermissions(player)) { processAxeCombat(target, player, event); } } else if (heldItem.getType() == Material.AIR) { - if (!SkillType.UNARMED.shouldProcess(target)) { + if (!SkillType.unarmed.shouldProcess(target)) { return; } - if (SkillType.UNARMED.getPermissions(player)) { + if (SkillType.unarmed.getPermissions(player)) { processUnarmedCombat(target, player, event); } } @@ -263,10 +263,10 @@ public final class CombatUtils { Wolf wolf = (Wolf) damager; AnimalTamer tamer = wolf.getOwner(); - if (tamer != null && tamer instanceof Player && SkillType.TAMING.shouldProcess(target)) { + if (tamer != null && tamer instanceof Player && SkillType.taming.shouldProcess(target)) { Player master = (Player) tamer; - if (!Misc.isNPCEntity(master) && SkillType.TAMING.getPermissions(master)) { + if (!Misc.isNPCEntity(master) && SkillType.taming.getPermissions(master)) { processTamingCombat(target, master, wolf, event); } } @@ -275,10 +275,10 @@ public final class CombatUtils { Arrow arrow = (Arrow) damager; ProjectileSource projectileSource = arrow.getShooter(); - if (projectileSource != null && projectileSource instanceof Player && SkillType.ARCHERY.shouldProcess(target)) { + if (projectileSource != null && projectileSource instanceof Player && SkillType.archery.shouldProcess(target)) { Player player = (Player) projectileSource; - if (!Misc.isNPCEntity(player) && SkillType.ARCHERY.getPermissions(player)) { + if (!Misc.isNPCEntity(player) && SkillType.archery.getPermissions(player)) { processArcheryCombat(target, player, event, arrow); } } @@ -301,7 +301,7 @@ public final class CombatUtils { } if (ItemUtils.isSword(player.getItemInHand())) { - if (!SkillType.SWORDS.shouldProcess(target)) { + if (!SkillType.swords.shouldProcess(target)) { return; } @@ -393,24 +393,17 @@ public final class CombatUtils { LivingEntity livingEntity = (LivingEntity) entity; EventUtils.callFakeArmSwingEvent(attacker); - switch (type) { - case SWORDS: - if (entity instanceof Player) { - ((Player) entity).sendMessage(LocaleLoader.getString("Swords.Combat.SS.Struck")); - } + if(type == SkillType.swords) { + if (entity instanceof Player) { + ((Player) entity).sendMessage(LocaleLoader.getString("Swords.Combat.SS.Struck")); + } - BleedTimerTask.add(livingEntity, Swords.serratedStrikesBleedTicks); - break; - - case AXES: - if (entity instanceof Player) { - ((Player) entity).sendMessage(LocaleLoader.getString("Axes.Combat.SS.Struck")); - } - - break; - - default: - break; + BleedTimerTask.add(livingEntity, Swords.serratedStrikesBleedTicks); + } + else if(type == SkillType.axes) { + if (entity instanceof Player) { + ((Player) entity).sendMessage(LocaleLoader.getString("Axes.Combat.SS.Struck")); + } } dealDamage(livingEntity, damageAmount, attacker); diff --git a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java index f4dbec446..7bb670902 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java +++ b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java @@ -82,7 +82,7 @@ public class SkillUtils { * @return true if this is a valid skill, false otherwise */ public static boolean isSkill(String skillName) { - return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? SkillType.getSkill(skillName) != null : isLocalizedSkill(skillName); + return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? SkillType.getSkillFromLocalized(skillName) != null : isLocalizedSkill(skillName); } public static void sendSkillMessage(Player player, String message) { @@ -132,7 +132,7 @@ public class SkillUtils { } McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - SkillType skill = mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) ? SkillType.MINING : SkillType.EXCAVATION; + SkillType skill = mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) ? SkillType.mining : SkillType.excavation; int ticks = PerksUtils.handleActivationPerks(player, 2 + (mcMMOPlayer.getSkillLevel(skill) / AdvancedConfig.getInstance().getAbilityLength()), skill.getAbility().getMaxLength()) * Misc.TICK_CONVERSION_FACTOR; PotionEffect abilityBuff = new PotionEffect(PotionEffectType.FAST_DIGGING, duration + ticks, amplifier + 10); @@ -229,7 +229,7 @@ public class SkillUtils { } private static boolean isLocalizedSkill(String skillName) { - for (SkillType skill : SkillType.values()) { + for (SkillType skill : SkillType.skillList) { if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".SkillName"))) { return true; }