SmeltingCommand.java 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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.locale.LocaleLoader;
  5. import com.gmail.nossr50.util.Permissions;
  6. import com.gmail.nossr50.util.TextComponentFactory;
  7. import com.gmail.nossr50.util.player.UserManager;
  8. import com.gmail.nossr50.util.skills.RankUtils;
  9. import net.md_5.bungee.api.chat.TextComponent;
  10. import org.bukkit.entity.Player;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. public class SmeltingCommand extends SkillCommand {
  14. private String burnTimeModifier;
  15. private String str_secondSmeltChance;
  16. private String str_secondSmeltChanceLucky;
  17. private String str_fluxMiningChance;
  18. private String str_fluxMiningChanceLucky;
  19. private boolean canFuelEfficiency;
  20. private boolean canSecondSmelt;
  21. private boolean canFluxMine;
  22. private boolean canUnderstandTheArt;
  23. public SmeltingCommand() {
  24. super(PrimarySkillType.SMELTING);
  25. }
  26. @Override
  27. protected void dataCalculations(Player player, float skillValue) {
  28. // FUEL EFFICIENCY
  29. if (canFuelEfficiency) {
  30. burnTimeModifier = String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getFuelEfficiencyMultiplier());
  31. }
  32. // FLUX MINING
  33. /*if (canFluxMine) {
  34. String[] fluxMiningStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_FLUX_MINING);
  35. str_fluxMiningChance = fluxMiningStrings[0];
  36. str_fluxMiningChanceLucky = fluxMiningStrings[1];
  37. }*/
  38. // SECOND SMELT
  39. if (canSecondSmelt) {
  40. String[] secondSmeltStrings = getAbilityDisplayValues(player, SubSkillType.SMELTING_SECOND_SMELT);
  41. str_secondSmeltChance = secondSmeltStrings[0];
  42. str_secondSmeltChanceLucky = secondSmeltStrings[1];
  43. }
  44. }
  45. @Override
  46. protected void permissionsCheck(Player player) {
  47. canFuelEfficiency = canUseSubskill(player, SubSkillType.SMELTING_FUEL_EFFICIENCY);
  48. canSecondSmelt = canUseSubskill(player, SubSkillType.SMELTING_SECOND_SMELT);
  49. //canFluxMine = canUseSubskill(player, SubSkillType.SMELTING_FLUX_MINING);
  50. canUnderstandTheArt = Permissions.vanillaXpBoost(player, skill) && RankUtils.hasUnlockedSubskill(player, SubSkillType.SMELTING_UNDERSTANDING_THE_ART);
  51. }
  52. @Override
  53. protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
  54. List<String> messages = new ArrayList<>();
  55. /*if (canFluxMine) {
  56. messages.add(getStatMessage(SubSkillType.SMELTING_FLUX_MINING, str_fluxMiningChance)
  57. + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
  58. //messages.add(LocaleLoader.getString("Smelting.Ability.FluxMining", str_fluxMiningChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
  59. }*/
  60. if (canFuelEfficiency) {
  61. messages.add(getStatMessage(false, true, SubSkillType.SMELTING_FUEL_EFFICIENCY, burnTimeModifier));
  62. }
  63. if (canSecondSmelt) {
  64. messages.add(getStatMessage(SubSkillType.SMELTING_SECOND_SMELT, str_secondSmeltChance)
  65. + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_secondSmeltChanceLucky) : ""));
  66. }
  67. if (canUnderstandTheArt) {
  68. messages.add(getStatMessage(false, true, SubSkillType.SMELTING_UNDERSTANDING_THE_ART,
  69. String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getVanillaXpMultiplier())));
  70. }
  71. return messages;
  72. }
  73. @Override
  74. protected List<TextComponent> getTextComponents(Player player) {
  75. List<TextComponent> textComponents = new ArrayList<>();
  76. TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SMELTING);
  77. return textComponents;
  78. }
  79. }