TamingCommand.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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.config.Config;
  7. import com.gmail.nossr50.datatypes.SkillType;
  8. import com.gmail.nossr50.locale.LocaleLoader;
  9. public class TamingCommand extends SkillCommand {
  10. AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
  11. private String goreChance;
  12. private String goreChanceLucky;
  13. private float goreChanceMax = advancedConfig.getGoreChanceMax();
  14. private float goreMaxLevel = advancedConfig.getGoreMaxBonusLevel();
  15. private int fastFoodUnlock = advancedConfig.getFastFoodUnlock();
  16. private float fastFoodChance = advancedConfig.getFastFoodChance();
  17. private int enviromentallyAwareUnlock = advancedConfig.getEnviromentallyAwareUnlock();
  18. private int thickFurUnlock = advancedConfig.getThickFurUnlock();
  19. private int shockProofUnlock = advancedConfig.getShockProofUnlock();
  20. private int sharpenedClawUnlock = advancedConfig.getSharpenedClawsUnlock();
  21. private boolean canBeastLore;
  22. private boolean canGore;
  23. private boolean canSharpenedClaws;
  24. private boolean canEnvironmentallyAware;
  25. private boolean canThickFur;
  26. private boolean canShockProof;
  27. private boolean canCallWild;
  28. private boolean canFastFood;
  29. public TamingCommand() {
  30. super(SkillType.TAMING);
  31. }
  32. @Override
  33. protected void dataCalculations() {
  34. DecimalFormat df = new DecimalFormat("0.0");
  35. float goreChanceF;
  36. if(skillValue >= goreMaxLevel) goreChanceF = (goreChanceMax);
  37. else goreChanceF = (float) (((double) goreChanceMax / (double) goreMaxLevel) * skillValue);
  38. goreChance = df.format(goreChanceF);
  39. if(goreChanceF + goreChanceF * 0.3333D >= 100D) goreChanceLucky = df.format(100D);
  40. else goreChanceLucky = df.format(goreChanceF + goreChanceF * 0.3333D);
  41. }
  42. @Override
  43. protected void permissionsCheck() {
  44. canBeastLore = permInstance.beastLore(player);
  45. canCallWild = permInstance.callOfTheWild(player);
  46. canEnvironmentallyAware = permInstance.environmentallyAware(player);
  47. canFastFood = permInstance.fastFoodService(player);
  48. canGore = permInstance.gore(player);
  49. canSharpenedClaws = permInstance.sharpenedClaws(player);
  50. canShockProof = permInstance.shockProof(player);
  51. canThickFur = permInstance.thickFur(player);
  52. }
  53. @Override
  54. protected boolean effectsHeaderPermissions() {
  55. return canBeastLore || canCallWild || canEnvironmentallyAware || canFastFood || canGore || canSharpenedClaws || canShockProof || canThickFur;
  56. }
  57. @Override
  58. protected void effectsDisplay() {
  59. if (player.hasPermission("mcmmo.perks.lucky.taming")) {
  60. String perkPrefix = ChatColor.RED + "[mcMMO Perks] ";
  61. player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Perks.lucky.name"), LocaleLoader.getString("Perks.lucky.desc", new Object[] { "Taming" }) }));
  62. }
  63. Config configInstance = Config.getInstance();
  64. if (canBeastLore) {
  65. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.0"), LocaleLoader.getString("Taming.Effect.1") }));
  66. }
  67. if (canGore) {
  68. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.2"), LocaleLoader.getString("Taming.Effect.3") }));
  69. }
  70. if (canSharpenedClaws) {
  71. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.4"), LocaleLoader.getString("Taming.Effect.5") }));
  72. }
  73. if (canEnvironmentallyAware) {
  74. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.6"), LocaleLoader.getString("Taming.Effect.7") }));
  75. }
  76. if (canThickFur) {
  77. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.8"), LocaleLoader.getString("Taming.Effect.9") }));
  78. }
  79. if (canShockProof) {
  80. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.10"), LocaleLoader.getString("Taming.Effect.11") }));
  81. }
  82. if (canFastFood) {
  83. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.16"), LocaleLoader.getString("Taming.Effect.17") }));
  84. }
  85. if (canCallWild) {
  86. player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Taming.Effect.12"), LocaleLoader.getString("Taming.Effect.13") }));
  87. player.sendMessage(LocaleLoader.getString("Taming.Effect.14", new Object[] { configInstance.getTamingCOTWOcelotCost() }));
  88. player.sendMessage(LocaleLoader.getString("Taming.Effect.15", new Object[] { configInstance.getTamingCOTWWolfCost() }));
  89. }
  90. }
  91. @Override
  92. protected boolean statsHeaderPermissions() {
  93. return canEnvironmentallyAware || canFastFood || canGore || canSharpenedClaws || canShockProof || canThickFur;
  94. }
  95. @Override
  96. protected void statsDisplay() {
  97. if (canFastFood) {
  98. if (skillValue < fastFoodUnlock) {
  99. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.4", new Object[] { fastFoodUnlock } ) }));
  100. }
  101. else {
  102. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.8"), LocaleLoader.getString("Taming.Ability.Bonus.9", new Object[] { fastFoodChance } ) }));
  103. }
  104. }
  105. if (canEnvironmentallyAware) {
  106. if (skillValue < enviromentallyAwareUnlock) {
  107. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.0", new Object[] { enviromentallyAwareUnlock } ) }));
  108. }
  109. else {
  110. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.0"), LocaleLoader.getString("Taming.Ability.Bonus.1") }));
  111. }
  112. }
  113. if (canThickFur) {
  114. if (skillValue < thickFurUnlock) {
  115. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.1", new Object[] { thickFurUnlock } ) }));
  116. }
  117. else {
  118. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.2"), LocaleLoader.getString("Taming.Ability.Bonus.3") }));
  119. }
  120. }
  121. if (canShockProof) {
  122. if (skillValue < shockProofUnlock) {
  123. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.2", new Object[] { shockProofUnlock } ) }));
  124. }
  125. else {
  126. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.4"), LocaleLoader.getString("Taming.Ability.Bonus.5") }));
  127. }
  128. }
  129. if (canSharpenedClaws) {
  130. if (skillValue < sharpenedClawUnlock) {
  131. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Taming.Ability.Locked.3", new Object[] { sharpenedClawUnlock } ) }));
  132. }
  133. else {
  134. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Taming.Ability.Bonus.6"), LocaleLoader.getString("Taming.Ability.Bonus.7") }));
  135. }
  136. }
  137. if (canGore) {
  138. if (player.hasPermission("mcmmo.perks.lucky.taming"))
  139. player.sendMessage(LocaleLoader.getString("Taming.Combat.Chance.Gore", new Object[] { goreChance }) + LocaleLoader.getString("Perks.lucky.bonus", new Object[] { goreChanceLucky }));
  140. else
  141. player.sendMessage(LocaleLoader.getString("Taming.Combat.Chance.Gore", new Object[] { goreChance }));
  142. }
  143. }
  144. }