ExperienceAPI.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.gmail.nossr50.api;
  2. import org.bukkit.entity.Player;
  3. import com.gmail.nossr50.Users;
  4. import com.gmail.nossr50.datatypes.SkillType;
  5. import com.gmail.nossr50.skills.Skills;
  6. public class ExperienceAPI {
  7. /**
  8. * Check the XP of a player. This should be called after giving XP to process level-ups.
  9. *
  10. * @param player The player to check
  11. * @param skillType The skill to check
  12. */
  13. private static void checkXP(Player player, SkillType skillType) {
  14. if (skillType.equals(SkillType.ALL)) {
  15. Skills.XpCheckAll(player);
  16. }
  17. else {
  18. Skills.XpCheckSkill(skillType, player);
  19. }
  20. }
  21. /**
  22. * Adds XP to the player, doesn't calculate for XP Rate or other modifiers.
  23. * </br>
  24. * This function is designed for API usage.
  25. *
  26. * @param player The player to add XP to
  27. * @param skillType The skill to add XP to
  28. * @param XP The amount of XP to add
  29. */
  30. public static void addRawXP(Player player, SkillType skillType, int XP) {
  31. Users.getProfile(player).addXPOverride(skillType, XP);
  32. checkXP(player, skillType);
  33. }
  34. /**
  35. * Adds XP to the player, calculates for XP Rate but not skill modifiers.
  36. * </br>
  37. * This function is designed for API usage.
  38. *
  39. * @param player The player to add XP to
  40. * @param skillType The skill to add XP to
  41. * @param XP The amount of XP to add
  42. */
  43. public static void addMultipliedXP(Player player, SkillType skillType, int XP) {
  44. Users.getProfile(player).addXPOverrideBonus(skillType, XP);
  45. checkXP(player, skillType);
  46. }
  47. /**
  48. * Adds XP to the player, calculates for XP Rate and skill modifiers.
  49. * </br>
  50. * This function is designed for API usage.
  51. *
  52. * @param player The player to add XP to
  53. * @param skillType The skill to add XP to
  54. * @param XP The amount of XP to add
  55. */
  56. public static void addXP(Player player, SkillType skillType, int XP) {
  57. Users.getProfile(player).addXP(skillType, XP);
  58. checkXP(player, skillType);
  59. }
  60. /**
  61. * Get the amount of XP a player has in a specific skill.
  62. * </br>
  63. * This function is designed for API usage.
  64. *
  65. * @param player The player to get XP for
  66. * @param skillType The skill to get XP for
  67. * @return the amount of XP in a given skill
  68. */
  69. public static int getXP(Player player, SkillType skillType) {
  70. return Users.getProfile(player).getSkillXpLevel(skillType);
  71. }
  72. /**
  73. * Get the amount of XP left before leveling up.
  74. * </br>
  75. * This function is designed for API usage.
  76. *
  77. * @param player The player to get the XP amount for
  78. * @param skillType The skill to get the XP amount for
  79. * @return the amount of XP left before leveling up a specifc skill
  80. */
  81. public static int getXPToNextLevel(Player player, SkillType skillType) {
  82. return Users.getProfile(player).getXpToLevel(skillType);
  83. }
  84. /**
  85. * Add levels to a skill.
  86. * </br>
  87. * This function is designed for API usage.
  88. *
  89. * @param skillType Type of skill to add levels to
  90. * @param levels Number of levels to add
  91. */
  92. public static void addLevel(Player player, SkillType skillType, int levels) {
  93. Users.getProfile(player).addLevels(skillType, levels);
  94. }
  95. /**
  96. * Get the level a player has in a specific skill.
  97. * </br>
  98. * This function is designed for API usage.
  99. *
  100. * @param player The player to get the level for
  101. * @param skillType The skill to get the level for
  102. * @return the level of a given skill
  103. */
  104. public static int getLevel(Player player, SkillType skillType) {
  105. return Users.getProfile(player).getSkillLevel(skillType);
  106. }
  107. }