WoodcuttingCommand.java 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.gmail.nossr50.commands.skills;
  2. import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
  3. import com.gmail.nossr50.datatypes.skills.SubSkillType;
  4. import com.gmail.nossr50.mcMMO;
  5. import net.md_5.bungee.api.chat.TextComponent;
  6. import org.bukkit.entity.Player;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. public class WoodcuttingCommand extends SkillCommand {
  10. private String treeFellerLength;
  11. private String treeFellerLengthEndurance;
  12. private String doubleDropChance;
  13. private String doubleDropChanceLucky;
  14. private boolean canTreeFell;
  15. private boolean canLeafBlow;
  16. private boolean canDoubleDrop;
  17. private boolean canSplinter;
  18. private boolean canBarkSurgeon;
  19. private boolean canNaturesBounty;
  20. public WoodcuttingCommand(mcMMO pluginRef) {
  21. super(PrimarySkillType.WOODCUTTING, pluginRef);
  22. }
  23. @Override
  24. protected void dataCalculations(Player player, double skillValue) {
  25. // DOUBLE DROPS
  26. if (canDoubleDrop) {
  27. setDoubleDropClassicChanceStrings(player);
  28. }
  29. // TREE FELLER
  30. if (canTreeFell) {
  31. String[] treeFellerStrings = formatLengthDisplayValues(player, skillValue);
  32. treeFellerLength = treeFellerStrings[0];
  33. treeFellerLengthEndurance = treeFellerStrings[1];
  34. }
  35. }
  36. private void setDoubleDropClassicChanceStrings(Player player) {
  37. String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER);
  38. doubleDropChance = doubleDropStrings[0];
  39. doubleDropChanceLucky = doubleDropStrings[1];
  40. }
  41. @Override
  42. protected void permissionsCheck(Player player) {
  43. canTreeFell = pluginRef.getRankTools().hasUnlockedSubskill(player, SubSkillType.WOODCUTTING_TREE_FELLER) && pluginRef.getPermissionTools().treeFeller(player);
  44. canDoubleDrop = canUseSubSkill(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && pluginRef.getRankTools().getRank(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1;
  45. canLeafBlow = canUseSubSkill(player, SubSkillType.WOODCUTTING_LEAF_BLOWER);
  46. /*canSplinter = canUseSubskill(player, SubSkillType.WOODCUTTING_SPLINTER);
  47. canBarkSurgeon = canUseSubskill(player, SubSkillType.WOODCUTTING_BARK_SURGEON);
  48. canNaturesBounty = canUseSubskill(player, SubSkillType.WOODCUTTING_NATURES_BOUNTY);*/
  49. }
  50. @Override
  51. protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
  52. List<String> messages = new ArrayList<>();
  53. if (canDoubleDrop) {
  54. messages.add(getStatMessage(SubSkillType.WOODCUTTING_HARVEST_LUMBER, doubleDropChance)
  55. + (isLucky ? pluginRef.getLocaleManager().getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
  56. }
  57. if (canLeafBlow) {
  58. messages.add(pluginRef.getLocaleManager().getString("Ability.Generic.Template", pluginRef.getLocaleManager().getString("Woodcutting.Ability.0"), pluginRef.getLocaleManager().getString("Woodcutting.Ability.1")));
  59. }
  60. if (canTreeFell) {
  61. messages.add(getStatMessage(SubSkillType.WOODCUTTING_TREE_FELLER, treeFellerLength)
  62. + (hasEndurance ? pluginRef.getLocaleManager().getString("Perks.ActivationTime.Bonus", treeFellerLengthEndurance) : ""));
  63. }
  64. return messages;
  65. }
  66. @Override
  67. protected List<TextComponent> getTextComponents(Player player) {
  68. List<TextComponent> textComponents = new ArrayList<>();
  69. pluginRef.getTextComponentFactory().getSubSkillTextComponents(player, textComponents, PrimarySkillType.WOODCUTTING);
  70. return textComponents;
  71. }
  72. }