SalvageCommand.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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.skills.salvage.Salvage;
  6. import com.gmail.nossr50.skills.salvage.SalvageManager;
  7. import com.gmail.nossr50.util.TextComponentFactory;
  8. import com.gmail.nossr50.util.player.UserManager;
  9. import com.gmail.nossr50.util.skills.RankUtils;
  10. import net.kyori.adventure.text.Component;
  11. import org.bukkit.entity.Player;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. public class SalvageCommand extends SkillCommand {
  15. private boolean canScrapCollector;
  16. private boolean canArcaneSalvage;
  17. public SalvageCommand() {
  18. super(PrimarySkillType.SALVAGE);
  19. }
  20. @Override
  21. protected void dataCalculations(Player player, float skillValue) {
  22. // TODO Auto-generated method stub
  23. }
  24. @Override
  25. protected void permissionsCheck(Player player) {
  26. canScrapCollector = canUseSubskill(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR);
  27. canArcaneSalvage = canUseSubskill(player, SubSkillType.SALVAGE_ARCANE_SALVAGE);
  28. }
  29. @Override
  30. protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
  31. List<String> messages = new ArrayList<>();
  32. SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager();
  33. if (canScrapCollector) {
  34. messages.add(getStatMessage(false, true,
  35. SubSkillType.SALVAGE_SCRAP_COLLECTOR,
  36. String.valueOf(RankUtils.getRank(player, SubSkillType.SALVAGE_SCRAP_COLLECTOR)),
  37. RankUtils.getHighestRankStr(SubSkillType.SALVAGE_SCRAP_COLLECTOR)));
  38. }
  39. if (canArcaneSalvage) {
  40. messages.add(getStatMessage(false, true, SubSkillType.SALVAGE_ARCANE_SALVAGE,
  41. String.valueOf(salvageManager.getArcaneSalvageRank()),
  42. String.valueOf(RankUtils.getHighestRank(SubSkillType.SALVAGE_ARCANE_SALVAGE))));
  43. if (Salvage.arcaneSalvageEnchantLoss) {
  44. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Salvage.Arcane.ExtractFull"), percent.format(salvageManager.getExtractFullEnchantChance() / 100)));
  45. }
  46. if (Salvage.arcaneSalvageDowngrades) {
  47. messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Salvage.Arcane.ExtractPartial"), percent.format(salvageManager.getExtractPartialEnchantChance() / 100)));
  48. }
  49. }
  50. return messages;
  51. }
  52. @Override
  53. protected List<Component> getTextComponents(Player player) {
  54. List<Component> textComponents = new ArrayList<>();
  55. TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SALVAGE);
  56. return textComponents;
  57. }
  58. }