WoodcuttingCommand.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.gmail.nossr50.commands.skills;
  2. import com.gmail.nossr50.commands.SkillCommand;
  3. import com.gmail.nossr50.config.Config;
  4. import com.gmail.nossr50.datatypes.SkillType;
  5. import com.gmail.nossr50.locale.LocaleLoader;
  6. public class WoodcuttingCommand extends SkillCommand {
  7. private String treeFellerLength;
  8. private String doubleDropChance;
  9. private boolean canTreeFell;
  10. private boolean canLeafBlow;
  11. private boolean canDoubleDrop;
  12. private boolean doubleDropsDisabled;
  13. public WoodcuttingCommand() {
  14. super(SkillType.WOODCUTTING);
  15. }
  16. @Override
  17. protected void dataCalculations() {
  18. treeFellerLength = String.valueOf(2 + ((int) skillValue / 50));
  19. if (skillValue >= 1000) {
  20. doubleDropChance = "100.00%";
  21. }
  22. else {
  23. doubleDropChance = percent.format(skillValue / 1000);
  24. }
  25. }
  26. @Override
  27. protected void permissionsCheck() {
  28. Config configInstance = Config.getInstance();
  29. canTreeFell = permInstance.treeFeller(player);
  30. canDoubleDrop = permInstance.woodcuttingDoubleDrops(player);
  31. canLeafBlow = permInstance.leafBlower(player);
  32. doubleDropsDisabled = configInstance.woodcuttingDoubleDropsDisabled();
  33. }
  34. @Override
  35. protected boolean effectsHeaderPermissions() {
  36. return (canDoubleDrop && !doubleDropsDisabled) || canLeafBlow || canTreeFell;
  37. }
  38. @Override
  39. protected void effectsDisplay() {
  40. if (canTreeFell) {
  41. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Woodcutting.Effect.0"), LocaleLoader.getString("Woodcutting.Effect.1") }));
  42. }
  43. if (canLeafBlow) {
  44. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Woodcutting.Effect.2"), LocaleLoader.getString("Woodcutting.Effect.3") }));
  45. }
  46. if (canDoubleDrop && !doubleDropsDisabled) {
  47. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Woodcutting.Effect.4"), LocaleLoader.getString("Woodcutting.Effect.5") }));
  48. }
  49. }
  50. @Override
  51. protected boolean statsHeaderPermissions() {
  52. return (canDoubleDrop && !doubleDropsDisabled) || canLeafBlow || canTreeFell;
  53. }
  54. @Override
  55. protected void statsDisplay() {
  56. //TODO: Remove? Basically duplicates the above.
  57. if (canLeafBlow) {
  58. if (skillValue < 100) {
  59. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Woodcutting.Ability.Locked.0") }));
  60. }
  61. else {
  62. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Woodcutting.Ability.0"), LocaleLoader.getString("Woodcutting.Ability.1") }));
  63. }
  64. }
  65. if (canDoubleDrop && !doubleDropsDisabled) {
  66. player.sendMessage(LocaleLoader.getString("Woodcutting.Ability.Chance.DDrop", new Object[] { doubleDropChance }));
  67. }
  68. if (canTreeFell) {
  69. player.sendMessage(LocaleLoader.getString("Woodcutting.Ability.Length", new Object[] { treeFellerLength }));
  70. }
  71. }
  72. }