SmeltingCommand.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.gmail.nossr50.skills.smelting;
  2. import com.gmail.nossr50.config.AdvancedConfig;
  3. import com.gmail.nossr50.locale.LocaleLoader;
  4. import com.gmail.nossr50.skills.SkillCommand;
  5. import com.gmail.nossr50.skills.SkillManagerStore;
  6. import com.gmail.nossr50.skills.utilities.SkillType;
  7. import com.gmail.nossr50.util.Permissions;
  8. public class SmeltingCommand extends SkillCommand {
  9. private String burnTimeModifier;
  10. private String secondSmeltChance;
  11. private String secondSmeltChanceLucky;
  12. private String fluxMiningChance;
  13. private String fluxMiningChanceLucky;
  14. private int vanillaXPModifier;
  15. private boolean canFuelEfficiency;
  16. private boolean canSecondSmelt;
  17. private boolean canFluxMine;
  18. private boolean canVanillaXPBoost;
  19. public SmeltingCommand() {
  20. super(SkillType.SMELTING);
  21. }
  22. @Override
  23. protected void dataCalculations() {
  24. //FUEL EFFICIENCY
  25. burnTimeModifier = decimal.format(1 + ((skillValue / Smelting.burnModifierMaxLevel) * Smelting.burnTimeMultiplier));
  26. //SECOND SMELT
  27. String[] secondSmeltStrings = calculateAbilityDisplayValues(Smelting.secondSmeltMaxLevel, Smelting.secondSmeltMaxChance);
  28. secondSmeltChance = secondSmeltStrings[0];
  29. secondSmeltChanceLucky = secondSmeltStrings[1];
  30. //FLUX MINING
  31. String[] fluxMiningStrings = calculateAbilityDisplayValues(Smelting.fluxMiningChance);
  32. fluxMiningChance = fluxMiningStrings[0];
  33. fluxMiningChanceLucky = fluxMiningStrings[1];
  34. //VANILLA XP BOOST
  35. vanillaXPModifier = SkillManagerStore.getInstance().getSmeltingManager(player.getName()).getVanillaXpMultiplier();
  36. }
  37. @Override
  38. protected void permissionsCheck() {
  39. canFuelEfficiency = Permissions.fuelEfficiency(player);
  40. canSecondSmelt = Permissions.doubleDrops(player, skill);
  41. canFluxMine = Permissions.fluxMining(player);
  42. canVanillaXPBoost = Permissions.vanillaXpBoost(player, skill);
  43. }
  44. @Override
  45. protected boolean effectsHeaderPermissions() {
  46. return canFluxMine || canFuelEfficiency || canSecondSmelt || canVanillaXPBoost;
  47. }
  48. @Override
  49. protected void effectsDisplay() {
  50. luckyEffectsDisplay();
  51. if (canFuelEfficiency) {
  52. player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Smelting.Effect.0"), LocaleLoader.getString("Smelting.Effect.1")));
  53. }
  54. if (canSecondSmelt) {
  55. player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Smelting.Effect.2"), LocaleLoader.getString("Smelting.Effect.3")));
  56. }
  57. if (canVanillaXPBoost) {
  58. player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Smelting.Effect.4"), LocaleLoader.getString("Smelting.Effect.5")));
  59. }
  60. if (canFluxMine) {
  61. player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Smelting.Effect.6"), LocaleLoader.getString("Smelting.Effect.7")));
  62. }
  63. }
  64. @Override
  65. protected boolean statsHeaderPermissions() {
  66. return canFluxMine || canFuelEfficiency || canSecondSmelt || canVanillaXPBoost;
  67. }
  68. @Override
  69. protected void statsDisplay() {
  70. if (canFuelEfficiency) {
  71. player.sendMessage(LocaleLoader.getString("Smelting.Ability.FuelEfficiency", burnTimeModifier));
  72. }
  73. if (canSecondSmelt) {
  74. if (isLucky) {
  75. player.sendMessage(LocaleLoader.getString("Smelting.Ability.SecondSmelt", secondSmeltChance) + LocaleLoader.getString("Perks.lucky.bonus", secondSmeltChanceLucky));
  76. }
  77. else {
  78. player.sendMessage(LocaleLoader.getString("Smelting.Ability.SecondSmelt", secondSmeltChance));
  79. }
  80. }
  81. if (canVanillaXPBoost) {
  82. if (skillValue < AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank1Level()) {
  83. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Smelting.Ability.Locked.0", AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank1Level())));
  84. }
  85. else {
  86. player.sendMessage(LocaleLoader.getString("Smelting.Ability.VanillaXPBoost", vanillaXPModifier));
  87. }
  88. }
  89. if (canFluxMine) {
  90. if (skillValue < Smelting.fluxMiningUnlockLevel) {
  91. player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", LocaleLoader.getString("Smelting.Ability.Locked.1", Smelting.fluxMiningUnlockLevel)));
  92. }
  93. else if (isLucky) {
  94. player.sendMessage(LocaleLoader.getString("Smelting.Ability.FluxMining", fluxMiningChance) + LocaleLoader.getString("Perks.lucky.bonus", fluxMiningChanceLucky));
  95. }
  96. else {
  97. player.sendMessage(LocaleLoader.getString("Smelting.Ability.FluxMining", fluxMiningChance));
  98. }
  99. }
  100. }
  101. }