FishingCommand.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.gmail.nossr50.commands.skills;
  2. import java.text.DecimalFormat;
  3. import org.bukkit.ChatColor;
  4. import com.gmail.nossr50.commands.SkillCommand;
  5. import com.gmail.nossr50.config.AdvancedConfig;
  6. import com.gmail.nossr50.datatypes.SkillType;
  7. import com.gmail.nossr50.locale.LocaleLoader;
  8. import com.gmail.nossr50.skills.gathering.Fishing;
  9. public class FishingCommand extends SkillCommand {
  10. AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
  11. private int lootTier;
  12. private String magicChance;
  13. private int shakeUnlockLevel;
  14. private String shakeChance;
  15. private String shakeChanceLucky;
  16. private String fishermansDietRank;
  17. private int fishermansDietRankChange = advancedConfig.getFarmerDietRankChange();
  18. private int fishermansDietRankMaxLevel = fishermansDietRankChange * 5;
  19. private boolean canTreasureHunt;
  20. private boolean canMagicHunt;
  21. private boolean canShake;
  22. private boolean canFishermansDiet;
  23. public FishingCommand() {
  24. super(SkillType.FISHING);
  25. }
  26. @Override
  27. protected void dataCalculations() {
  28. DecimalFormat df = new DecimalFormat("0.0");
  29. //Treasure Hunter
  30. lootTier = Fishing.getFishingLootTier(profile);
  31. magicChance = percent.format(lootTier / 15D);
  32. //Shake
  33. int dropChance = Fishing.getShakeChance(lootTier);
  34. shakeChance = df.format(dropChance);
  35. if(dropChance + dropChance * 0.3333D >= 100D) shakeChanceLucky = df.format(100D);
  36. else shakeChanceLucky = df.format(dropChance + dropChance * 0.3333D);
  37. shakeUnlockLevel = advancedConfig.getShakeUnlockLevel();
  38. //Fishermans Diet
  39. if(skillValue >= fishermansDietRankMaxLevel) fishermansDietRank = "5";
  40. else fishermansDietRank = String.valueOf((int) ((double) skillValue / (double) fishermansDietRankChange));
  41. }
  42. @Override
  43. protected void permissionsCheck() {
  44. canTreasureHunt = permInstance.fishingTreasures(player);
  45. canMagicHunt = permInstance.fishingMagic(player);
  46. canShake = permInstance.shakeMob(player);
  47. canFishermansDiet = permInstance.fishermansDiet(player);
  48. }
  49. @Override
  50. protected boolean effectsHeaderPermissions() {
  51. return canTreasureHunt || canMagicHunt || canShake;
  52. }
  53. @Override
  54. protected void effectsDisplay() {
  55. if (player.hasPermission("mcmmo.perks.lucky.fishing")) {
  56. String perkPrefix = ChatColor.RED + "[mcMMO Perks] ";
  57. player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Perks.lucky.name"), LocaleLoader.getString("Perks.lucky.desc", new Object[] { "Fishing" }) }));
  58. }
  59. if (canTreasureHunt) {
  60. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.0"), LocaleLoader.getString("Fishing.Effect.1") }));
  61. }
  62. if (canMagicHunt) {
  63. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.2"), LocaleLoader.getString("Fishing.Effect.3") }));
  64. }
  65. if (canShake) {
  66. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.4"), LocaleLoader.getString("Fishing.Effect.5") }));
  67. }
  68. if (canFishermansDiet) {
  69. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.6"), LocaleLoader.getString("Fishing.Effect.7") }));
  70. }
  71. }
  72. @Override
  73. protected boolean statsHeaderPermissions() {
  74. return canTreasureHunt || canMagicHunt || canShake;
  75. }
  76. @Override
  77. protected void statsDisplay() {
  78. if (canTreasureHunt) {
  79. player.sendMessage(LocaleLoader.getString("Fishing.Ability.Rank", new Object[] { lootTier }));
  80. }
  81. if (canMagicHunt) {
  82. player.sendMessage(LocaleLoader.getString("Fishing.Enchant.Chance", new Object[] { magicChance }));
  83. }
  84. if (canShake) {
  85. if (skillValue < advancedConfig.getShakeUnlockLevel()) {
  86. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Fishing.Ability.Locked.0", new Object[] { shakeUnlockLevel }) }));
  87. }
  88. else {
  89. if (player.hasPermission("mcmmo.perks.lucky.fishing"))
  90. player.sendMessage(LocaleLoader.getString("Fishing.Ability.Shake", new Object[] { shakeChance }) + LocaleLoader.getString("Perks.lucky.bonus", new Object[] { shakeChanceLucky }));
  91. else
  92. player.sendMessage(LocaleLoader.getString("Fishing.Ability.Shake", new Object[] { shakeChance }));
  93. }
  94. }
  95. if (canFishermansDiet) {
  96. player.sendMessage(LocaleLoader.getString("Fishing.Ability.FD", new Object[] { fishermansDietRank }));
  97. }
  98. }
  99. }