SalvageCommand.java 3.0 KB

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