From 1c63e34dbbc45e7b42327e58fed15ba31bab11fb Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 16 Mar 2021 16:13:08 -0700 Subject: [PATCH] Comment out old API, will use as a reference when writing new API --- .../com/gmail/nossr50/api/AbilityAPI.java | 176 +- .../java/com/gmail/nossr50/api/ChatAPI.java | 303 +- .../com/gmail/nossr50/api/DatabaseAPI.java | 60 +- .../com/gmail/nossr50/api/ExperienceAPI.java | 2451 +++++++++-------- .../gmail/nossr50/api/ItemSpawnReason.java | 34 +- .../java/com/gmail/nossr50/api/PartyAPI.java | 516 ++-- .../java/com/gmail/nossr50/api/SkillAPI.java | 186 +- 7 files changed, 1854 insertions(+), 1872 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/api/AbilityAPI.java b/src/main/java/com/gmail/nossr50/api/AbilityAPI.java index 5922ecbe6..6e978d25a 100644 --- a/src/main/java/com/gmail/nossr50/api/AbilityAPI.java +++ b/src/main/java/com/gmail/nossr50/api/AbilityAPI.java @@ -1,88 +1,88 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.skills.SuperAbilityType; -import com.gmail.nossr50.runnables.skills.BleedTimerTask; -import com.gmail.nossr50.util.player.UserManager; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - -public final class AbilityAPI { - private AbilityAPI() {} - - public static boolean berserkEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK); - } - - public static boolean gigaDrillBreakerEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER); - } - - public static boolean greenTerraEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GREEN_TERRA); - } - - public static boolean serratedStrikesEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SERRATED_STRIKES); - } - - public static boolean skullSplitterEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SKULL_SPLITTER); - } - - public static boolean superBreakerEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SUPER_BREAKER); - } - - public static boolean treeFellerEnabled(Player player) { - return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.TREE_FELLER); - } - - public static boolean isAnyAbilityEnabled(Player player) { - McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); - - for (SuperAbilityType ability : SuperAbilityType.values()) { - if (mcMMOPlayer.getAbilityMode(ability)) { - return true; - } - } - - return false; - } - - public static void resetCooldowns(Player player) { - UserManager.getPlayer(player).resetCooldowns(); - } - - public static void setBerserkCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.BERSERK, cooldown); - } - - public static void setGigaDrillBreakerCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GIGA_DRILL_BREAKER, cooldown); - } - - public static void setGreenTerraCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GREEN_TERRA, cooldown); - } - - public static void setSerratedStrikesCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SERRATED_STRIKES, cooldown); - } - - public static void setSkullSplitterCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SKULL_SPLITTER, cooldown); - } - - public static void setSuperBreakerCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SUPER_BREAKER, cooldown); - } - - public static void setTreeFellerCooldown(Player player, long cooldown) { - UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.TREE_FELLER, cooldown); - } - - public static boolean isBleeding(LivingEntity entity) { - return BleedTimerTask.isBleeding(entity); - } -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.datatypes.player.McMMOPlayer; +//import com.gmail.nossr50.datatypes.skills.SuperAbilityType; +//import com.gmail.nossr50.runnables.skills.BleedTimerTask; +//import com.gmail.nossr50.util.player.UserManager; +//import org.bukkit.entity.LivingEntity; +//import org.bukkit.entity.Player; +// +//public final class AbilityAPI { +// private AbilityAPI() {} +// +// public static boolean berserkEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK); +// } +// +// public static boolean gigaDrillBreakerEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GIGA_DRILL_BREAKER); +// } +// +// public static boolean greenTerraEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.GREEN_TERRA); +// } +// +// public static boolean serratedStrikesEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SERRATED_STRIKES); +// } +// +// public static boolean skullSplitterEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SKULL_SPLITTER); +// } +// +// public static boolean superBreakerEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.SUPER_BREAKER); +// } +// +// public static boolean treeFellerEnabled(Player player) { +// return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.TREE_FELLER); +// } +// +// public static boolean isAnyAbilityEnabled(Player player) { +// McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); +// +// for (SuperAbilityType ability : SuperAbilityType.values()) { +// if (mcMMOPlayer.getAbilityMode(ability)) { +// return true; +// } +// } +// +// return false; +// } +// +// public static void resetCooldowns(Player player) { +// UserManager.getPlayer(player).resetCooldowns(); +// } +// +// public static void setBerserkCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.BERSERK, cooldown); +// } +// +// public static void setGigaDrillBreakerCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GIGA_DRILL_BREAKER, cooldown); +// } +// +// public static void setGreenTerraCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.GREEN_TERRA, cooldown); +// } +// +// public static void setSerratedStrikesCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SERRATED_STRIKES, cooldown); +// } +// +// public static void setSkullSplitterCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SKULL_SPLITTER, cooldown); +// } +// +// public static void setSuperBreakerCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.SUPER_BREAKER, cooldown); +// } +// +// public static void setTreeFellerCooldown(Player player, long cooldown) { +// UserManager.getPlayer(player).setAbilityDATS(SuperAbilityType.TREE_FELLER, cooldown); +// } +// +// public static boolean isBleeding(LivingEntity entity) { +// return BleedTimerTask.isBleeding(entity); +// } +//} diff --git a/src/main/java/com/gmail/nossr50/api/ChatAPI.java b/src/main/java/com/gmail/nossr50/api/ChatAPI.java index a41b7492f..46d2b7a34 100644 --- a/src/main/java/com/gmail/nossr50/api/ChatAPI.java +++ b/src/main/java/com/gmail/nossr50/api/ChatAPI.java @@ -1,161 +1,142 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.datatypes.chat.ChatChannel; -import com.neetgames.mcmmo.player.OnlineMMOPlayer; -import com.gmail.nossr50.mcMMO; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Objects; - -public final class ChatAPI { - private ChatAPI() {} - - /** - * Check if a {@link Player} is in the Party chat channel - * - * @param player target player - * @return true if the player is targeting the party chat channel - * @deprecated Use {@link #isUsingPartyChat(OnlineMMOPlayer)} instead - */ - @Deprecated - public static boolean isUsingPartyChat(@NotNull Player player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); - - if(mmoPlayer != null) - return mmoPlayer.getChatChannel() == ChatChannel.PARTY; - else - return false; - } - - /** - * Check if a {@link OnlineMMOPlayer} is in the Party chat channel - * - * @param mmoPlayer target player - * @return true if the player is targeting the party chat channel - */ - public static boolean isUsingPartyChat(@NotNull OnlineMMOPlayer mmoPlayer) { - return mmoPlayer.getChatChannel() == ChatChannel.PARTY; - } - - /** - * Check if a player is currently talking in party chat. - * - * @param playerName The name of the player to check - * @return true if the player is using party chat, false otherwise - * @deprecated use {@link #isUsingPartyChat(OnlineMMOPlayer)} instead for performance reasons - */ - @Deprecated - public static boolean isUsingPartyChat(String playerName) { - if(mcMMO.getUserManager().queryMcMMOPlayer(playerName) != null) { - return mcMMO.getUserManager().queryMcMMOPlayer(playerName).getChatChannel() == ChatChannel.PARTY; - } else { - return false; - } - } - - /** - * Check if a {@link Player} is in the Admin chat channel - * - * @param player target player - * @return true if the player is targeting the admin chat channel - * @deprecated Use {@link #isUsingAdminChat(OnlineMMOPlayer)} instead - */ - @Deprecated - public static boolean isUsingAdminChat(@NotNull Player player) { - OnlineMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); - - if(mmoPlayer != null) - return mmoPlayer.getChatChannel() == ChatChannel.ADMIN; - else - return false; - } - - /** - * Check if a {@link OnlineMMOPlayer} is in the Admin chat channel - * - * @param mmoPlayer target player - * @return true if the player is targeting the admin chat channel - */ - public static boolean isUsingAdminChat(@NotNull OnlineMMOPlayer mmoPlayer) { - return mmoPlayer.getChatChannel() == ChatChannel.ADMIN; - } - - /** - * Check if a player is currently talking in admin chat. - * - * @param playerName The name of the player to check - * @return true if the player is using admin chat, false otherwise - * @deprecated use {@link #isUsingAdminChat(OnlineMMOPlayer)} instead for performance reasons - */ - @Deprecated - public static boolean isUsingAdminChat(String playerName) { - if(mcMMO.getUserManager().queryMcMMOPlayer(playerName) != null) { - return mcMMO.getUserManager().queryMcMMOPlayer(playerName).getChatChannel() == ChatChannel.ADMIN; - } else { - return false; - } - } - - /** - * Toggle the party chat channel of a {@link OnlineMMOPlayer} - * - * @param mmoPlayer The player to toggle party chat on. - */ - public static void togglePartyChat(@NotNull OnlineMMOPlayer mmoPlayer) { - mcMMO.p.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY); - } - - /** - * Toggle the party chat mode of a player. - * - * @param player The player to toggle party chat on. - * @deprecated use {@link #togglePartyChat(OnlineMMOPlayer)} - */ - @Deprecated - public static void togglePartyChat(Player player) throws NullPointerException { - mcMMO.p.getChatManager().setOrToggleChatChannel(Objects.requireNonNull(mcMMO.getUserManager().queryPlayer(player)), ChatChannel.PARTY); - } - - /** - * Toggle the party chat mode of a player. - * - * @param playerName The name of the player to toggle party chat on. - * @deprecated Use {@link #togglePartyChat(OnlineMMOPlayer)} instead - */ - @Deprecated - public static void togglePartyChat(String playerName) throws NullPointerException { - mcMMO.p.getChatManager().setOrToggleChatChannel(Objects.requireNonNull(mcMMO.getUserManager().queryMcMMOPlayer(playerName)), ChatChannel.PARTY); - } - - /** - * Toggle the admin chat channel of a {@link OnlineMMOPlayer} - * - * @param mmoPlayer The player to toggle admin chat on. - */ - public static void toggleAdminChat(@NotNull OnlineMMOPlayer mmoPlayer) { - mcMMO.p.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN); - } - - /** - * Toggle the admin chat mode of a player. - * - * @param player The player to toggle admin chat on. - * @deprecated Use {@link #toggleAdminChat(OnlineMMOPlayer)} instead - */ - @Deprecated - public static void toggleAdminChat(Player player) throws NullPointerException { - mcMMO.p.getChatManager().setOrToggleChatChannel(Objects.requireNonNull(mcMMO.getUserManager().queryPlayer(player)), ChatChannel.ADMIN); - } - - /** - * Toggle the admin chat mode of a player. - * - * @param playerName The name of the player to toggle party chat on. - * @deprecated Use {@link #toggleAdminChat(OnlineMMOPlayer)} instead - */ - @Deprecated - public static void toggleAdminChat(String playerName) throws NullPointerException { - mcMMO.p.getChatManager().setOrToggleChatChannel(Objects.requireNonNull(mcMMO.getUserManager().queryMcMMOPlayer(playerName)), ChatChannel.ADMIN); - } -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.datatypes.chat.ChatChannel; +//import com.gmail.nossr50.mcMMO; +//import com.gmail.nossr50.util.player.UserManager; +//import org.bukkit.entity.Player; +// +//public final class ChatAPI { +// private ChatAPI() {} +// +//// /** +//// * Send a message to all members of a party +//// *
+//// * This function is designed for API usage. +//// * +//// * @param plugin The plugin sending the message +//// * @param sender The name of the sender +//// * @param displayName The display name of the sender +//// * @param party The name of the party to send to +//// * @param message The message to send +//// */ +//// public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) { +//// getPartyChatManager(plugin, party).handleChat(sender, displayName, message); +//// } +//// +//// /** +//// * Send a message to all members of a party +//// *
+//// * This function is designed for API usage. +//// * +//// * @param plugin The plugin sending the message +//// * @param sender The name of the sender to display in the chat +//// * @param party The name of the party to send to +//// * @param message The message to send +//// */ +//// public static void sendPartyChat(Plugin plugin, String sender, String party, String message) { +//// getPartyChatManager(plugin, party).handleChat(sender, message); +//// } +//// +//// /** +//// * Send a message to administrators +//// *
+//// * This function is designed for API usage. +//// * +//// * @param plugin The plugin sending the message +//// * @param sender The name of the sender +//// * @param displayName The display name of the sender +//// * @param message The message to send +//// */ +//// public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) { +//// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, displayName, message); +//// } +//// +//// /** +//// * Send a message to administrators +//// *
+//// * This function is designed for API usage. +//// * +//// * @param plugin The plugin sending the message +//// * @param sender The name of the sender to display in the chat +//// * @param message The message to send +//// */ +//// public static void sendAdminChat(Plugin plugin, String sender, String message) { +//// ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, message); +//// } +// +// /** +// * Check if a player is currently talking in party chat. +// * +// * @param player The player to check +// * @return true if the player is using party chat, false otherwise +// */ +// public static boolean isUsingPartyChat(Player player) { +// return UserManager.getPlayer(player).getChatChannel() == ChatChannel.PARTY; +// } +// +// /** +// * Check if a player is currently talking in party chat. +// * +// * @param playerName The name of the player to check +// * @return true if the player is using party chat, false otherwise +// */ +// public static boolean isUsingPartyChat(String playerName) { +// return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.PARTY; +// } +// +// /** +// * Check if a player is currently talking in admin chat. +// * +// * @param player The player to check +// * @return true if the player is using admin chat, false otherwise +// */ +// public static boolean isUsingAdminChat(Player player) { +// return UserManager.getPlayer(player).getChatChannel() == ChatChannel.ADMIN; +// } +// +// /** +// * Check if a player is currently talking in admin chat. +// * +// * @param playerName The name of the player to check +// * @return true if the player is using admin chat, false otherwise +// */ +// public static boolean isUsingAdminChat(String playerName) { +// return UserManager.getPlayer(playerName).getChatChannel() == ChatChannel.ADMIN; +// } +// +// /** +// * Toggle the party chat mode of a player. +// * +// * @param player The player to toggle party chat on. +// */ +// public static void togglePartyChat(Player player) { +// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.PARTY); +// } +// +// /** +// * Toggle the party chat mode of a player. +// * +// * @param playerName The name of the player to toggle party chat on. +// */ +// public static void togglePartyChat(String playerName) { +// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY); +// } +// +// /** +// * Toggle the admin chat mode of a player. +// * +// * @param player The player to toggle admin chat on. +// */ +// public static void toggleAdminChat(Player player) { +// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.ADMIN); +// } +// +// /** +// * Toggle the admin chat mode of a player. +// * +// * @param playerName The name of the player to toggle party chat on. +// */ +// public static void toggleAdminChat(String playerName) { +// mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN); +// } +//} diff --git a/src/main/java/com/gmail/nossr50/api/DatabaseAPI.java b/src/main/java/com/gmail/nossr50/api/DatabaseAPI.java index 8f2879549..7299f93d1 100644 --- a/src/main/java/com/gmail/nossr50/api/DatabaseAPI.java +++ b/src/main/java/com/gmail/nossr50/api/DatabaseAPI.java @@ -1,30 +1,30 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.datatypes.player.PlayerProfile; -import com.gmail.nossr50.mcMMO; - -import java.util.UUID; - -public class DatabaseAPI { - - /** - * Checks if a player exists in the mcMMO Database - * @param uuid player UUID - * @return true if the player exists in the DB, false if they do not - */ - public boolean doesPlayerExistInDB(String uuid) { - return doesPlayerExistInDB(UUID.fromString(uuid)); - } - - /** - * Checks if a player exists in the mcMMO Database - * @param uuid player UUID - * @return true if the player exists in the DB, false if they do not - */ - public boolean doesPlayerExistInDB(UUID uuid) { - PlayerProfile playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, null); - - return playerProfile.isLoaded(); - } - -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.datatypes.player.PlayerProfile; +//import com.gmail.nossr50.mcMMO; +// +//import java.util.UUID; +// +//public class DatabaseAPI { +// +// /** +// * Checks if a player exists in the mcMMO Database +// * @param uuid player UUID +// * @return true if the player exists in the DB, false if they do not +// */ +// public boolean doesPlayerExistInDB(String uuid) { +// return doesPlayerExistInDB(UUID.fromString(uuid)); +// } +// +// /** +// * Checks if a player exists in the mcMMO Database +// * @param uuid player UUID +// * @return true if the player exists in the DB, false if they do not +// */ +// public boolean doesPlayerExistInDB(UUID uuid) { +// PlayerProfile playerProfile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, null); +// +// return playerProfile.isLoaded(); +// } +// +//} diff --git a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java index be325c281..4979acd1d 100644 --- a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java +++ b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java @@ -1,1225 +1,1226 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.api.exceptions.*; -import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.experience.FormulaType; -import com.gmail.nossr50.datatypes.experience.XPGainReason; -import com.gmail.nossr50.datatypes.experience.XPGainSource; -import com.gmail.nossr50.datatypes.player.McMMOPlayer; -import com.gmail.nossr50.datatypes.player.PlayerProfile; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.skills.child.FamilyTree; -import com.gmail.nossr50.util.player.UserManager; -import com.gmail.nossr50.util.skills.CombatUtils; -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.block.BlockState; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; - -import java.util.ArrayList; -import java.util.Set; -import java.util.UUID; - -public final class ExperienceAPI { - private ExperienceAPI() {} - - /** - * Returns whether given string is a valid type of skill suitable for the - * other API calls in this class. - *
- * This function is designed for API usage. - * - * @param skillType A string that may or may not be a skill - * @return true if this is a valid mcMMO skill - */ - public static boolean isValidSkillType(String skillType) { - return PrimarySkillType.getSkill(skillType) != null; - } - - /** - * Start the task that gives combat XP. - * Processes combat XP like mcMMO normally would, so mcMMO will check whether or not the entity should reward XP when giving out the XP - * - * @param mcMMOPlayer The attacking player - * @param target The defending entity - * @param primarySkillType The skill being used - * @param multiplier final XP result will be multiplied by this - * @deprecated Draft API - */ - @Deprecated - public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType, double multiplier) { - CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType, multiplier); - } - - /** - * Start the task that gives combat XP. - * Processes combat XP like mcMMO normally would, so mcMMO will check whether or not the entity should reward XP when giving out the XP - * - * @param mcMMOPlayer The attacking player - * @param target The defending entity - * @param primarySkillType The skill being used - * @deprecated Draft API - */ - @Deprecated - public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType) { - CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType); - } - - /** - * Returns whether the given skill type string is both valid and not a - * child skill. (Child skills have no XP of their own, and their level is - * derived from the parent(s).) - *
- * This function is designed for API usage. - * - * @param skillType the skill to check - * @return true if this is a valid, non-child mcMMO skill - */ - public static boolean isNonChildSkill(String skillType) { - PrimarySkillType skill = PrimarySkillType.getSkill(skillType); - - return skill != null && !skill.isChildSkill(); - } - - @Deprecated - public static void addRawXP(Player player, String skillType, int XP) { - addRawXP(player, skillType, (float) XP); - } - - /** - * Adds raw XP to the player. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - */ - @Deprecated - public static void addRawXP(Player player, String skillType, float XP) { - addRawXP(player, skillType, XP, "UNKNOWN"); - } - - /** - * Adds raw XP to the player. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addRawXP(Player player, String skillType, float XP, String xpGainReason) { - addRawXP(player, skillType, XP, xpGainReason, false); - } - - /** - * Adds raw XP to the player. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * @param isUnshared true if the XP cannot be shared with party members - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) { - if (isUnshared) { - getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - return; - } - - getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - } - - /** - * Adds raw XP to an offline player. - *
- * This function is designed for API usage. - * - * @deprecated We're using float for our XP values now - * replaced by {@link #addRawXPOffline(String playerName, String skillType, float XP)} - */ - @Deprecated - public static void addRawXPOffline(String playerName, String skillType, int XP) { - addRawXPOffline(playerName, skillType, (float) XP); - } - - /** - * Adds raw XP to an offline player. - *
- * This function is designed for API usage. - * - * @deprecated We're using uuids to get an offline player - * replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)} - * - * @param playerName The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static void addRawXPOffline(String playerName, String skillType, float XP) { - addOfflineXP(playerName, getSkillType(skillType), (int) Math.floor(XP)); - } - - /** - * Adds raw XP to an offline player. - *
- * This function is designed for API usage. - * - * @param uuid The UUID of player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static void addRawXPOffline(UUID uuid, String skillType, float XP) { - addOfflineXP(uuid, getSkillType(skillType), (int) Math.floor(XP)); - } - - /** - * Adds XP to the player, calculates for XP Rate only. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - */ - @Deprecated - public static void addMultipliedXP(Player player, String skillType, int XP) { - addMultipliedXP(player, skillType, XP, "UNKNOWN"); - } - - /** - * Adds XP to the player, calculates for XP Rate only. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) { - getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - } - - /** - * Adds XP to an offline player, calculates for XP Rate only. - *
- * This function is designed for API usage. - * - * @param playerName The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static void addMultipliedXPOffline(String playerName, String skillType, int XP) { - addOfflineXP(playerName, getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier())); - } - - /** - * Adds XP to the player, calculates for XP Rate and skill modifier. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - */ - @Deprecated - public static void addModifiedXP(Player player, String skillType, int XP) { - addModifiedXP(player, skillType, XP, "UNKNOWN"); - } - - /** - * Adds XP to the player, calculates for XP Rate and skill modifier. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason) { - addModifiedXP(player, skillType, XP, xpGainReason, false); - } - - /** - * Adds XP to the player, calculates for XP Rate and skill modifier. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * @param isUnshared true if the XP cannot be shared with party members - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) { - PrimarySkillType skill = getSkillType(skillType); - - if (isUnshared) { - getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - return; - } - - getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - } - - /** - * Adds XP to an offline player, calculates for XP Rate and skill modifier. - *
- * This function is designed for API usage. - * - * @param playerName The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static void addModifiedXPOffline(String playerName, String skillType, int XP) { - PrimarySkillType skill = getSkillType(skillType); - - addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier())); - } - - /** - * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, - * and party sharing. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * - * @throws InvalidSkillException if the given skill is not valid - */ - @Deprecated - public static void addXP(Player player, String skillType, int XP) { - addXP(player, skillType, XP, "UNKNOWN"); - } - - /** - * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, - * and party sharing. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addXP(Player player, String skillType, int XP, String xpGainReason) { - addXP(player, skillType, XP, xpGainReason, false); - } - - /** - * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, - * and party sharing. - *
- * This function is designed for API usage. - * - * @param player The player to add XP to - * @param skillType The skill to add XP to - * @param XP The amount of XP to add - * @param xpGainReason The reason to gain XP - * @param isUnshared true if the XP cannot be shared with party members - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidXPGainReasonException if the given xpGainReason is not valid - */ - public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) { - if (isUnshared) { - getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - return; - } - - getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); - } - - /** - * Get the amount of XP a player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param player The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static int getXP(Player player, String skillType) { - return getPlayer(player).getSkillXpLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the amount of XP an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param playerName The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static int getOfflineXP(String playerName, String skillType) { - return getOfflineProfile(playerName).getSkillXpLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the amount of XP an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param uuid The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static int getOfflineXP(UUID uuid, String skillType) { - return getOfflineProfile(uuid).getSkillXpLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the raw amount of XP a player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param player The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static float getXPRaw(Player player, String skillType) { - return getPlayer(player).getSkillXpLevelRaw(getNonChildSkillType(skillType)); - } - - /** - * Get the raw amount of XP an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param playerName The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static float getOfflineXPRaw(String playerName, String skillType) { - return getOfflineProfile(playerName).getSkillXpLevelRaw(getNonChildSkillType(skillType)); - } - - /** - * Get the raw amount of XP an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param uuid The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP in a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static float getOfflineXPRaw(UUID uuid, String skillType) { - return getOfflineProfile(uuid).getSkillXpLevelRaw(getNonChildSkillType(skillType)); - } - - /** - * Get the total amount of XP needed to reach the next level. - *
- * This function is designed for API usage. - * - * @param player The player to get the XP amount for - * @param skillType The skill to get the XP amount for - * @return the total amount of XP needed to reach the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static int getXPToNextLevel(Player player, String skillType) { - return getPlayer(player).getXpToLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the total amount of XP an offline player needs to reach the next level. - *
- * This function is designed for API usage. - * - * @param playerName The player to get XP for - * @param skillType The skill to get XP for - * @return the total amount of XP needed to reach the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static int getOfflineXPToNextLevel(String playerName, String skillType) { - return getOfflineProfile(playerName).getXpToLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the total amount of XP an offline player needs to reach the next level. - *
- * This function is designed for API usage. - * - * @param uuid The player to get XP for - * @param skillType The skill to get XP for - * @return the total amount of XP needed to reach the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static int getOfflineXPToNextLevel(UUID uuid, String skillType) { - return getOfflineProfile(uuid).getXpToLevel(getNonChildSkillType(skillType)); - } - - /** - * Get the amount of XP remaining until the next level. - *
- * This function is designed for API usage. - * - * @param player The player to get the XP amount for - * @param skillType The skill to get the XP amount for - * @return the amount of XP remaining until the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static int getXPRemaining(Player player, String skillType) { - PrimarySkillType skill = getNonChildSkillType(skillType); - - PlayerProfile profile = getPlayer(player).getProfile(); - - return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill); - } - - /** - * Get the amount of XP an offline player has left before leveling up. - *
- * This function is designed for API usage. - * - * @param playerName The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP needed to reach the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static int getOfflineXPRemaining(String playerName, String skillType) { - PrimarySkillType skill = getNonChildSkillType(skillType); - PlayerProfile profile = getOfflineProfile(playerName); - - return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill); - } - - /** - * Get the amount of XP an offline player has left before leveling up. - *
- * This function is designed for API usage. - * - * @param uuid The player to get XP for - * @param skillType The skill to get XP for - * @return the amount of XP needed to reach the next level - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static float getOfflineXPRemaining(UUID uuid, String skillType) { - PrimarySkillType skill = getNonChildSkillType(skillType); - PlayerProfile profile = getOfflineProfile(uuid); - - return profile.getXpToLevel(skill) - profile.getSkillXpLevelRaw(skill); - } - - /** - * Add levels to a skill. - *
- * This function is designed for API usage. - * - * @param player The player to add levels to - * @param skillType Type of skill to add levels to - * @param levels Number of levels to add - * - * @throws InvalidSkillException if the given skill is not valid - */ - public static void addLevel(Player player, String skillType, int levels) { - getPlayer(player).addLevels(getSkillType(skillType), levels); - } - - /** - * Add levels to a skill for an offline player. - *
- * This function is designed for API usage. - * - * @param playerName The player to add levels to - * @param skillType Type of skill to add levels to - * @param levels Number of levels to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static void addLevelOffline(String playerName, String skillType, int levels) { - PlayerProfile profile = getOfflineProfile(playerName); - PrimarySkillType skill = getSkillType(skillType); - - if (skill.isChildSkill()) { - Set parentSkills = FamilyTree.getParents(skill); - - for (PrimarySkillType parentSkill : parentSkills) { - profile.addLevels(parentSkill, (levels / parentSkills.size())); - } - - profile.scheduleAsyncSave(); - return; - } - - profile.addLevels(skill, levels); - profile.scheduleAsyncSave(); - } - - /** - * Add levels to a skill for an offline player. - *
- * This function is designed for API usage. - * - * @param uuid The player to add levels to - * @param skillType Type of skill to add levels to - * @param levels Number of levels to add - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static void addLevelOffline(UUID uuid, String skillType, int levels) { - PlayerProfile profile = getOfflineProfile(uuid); - PrimarySkillType skill = getSkillType(skillType); - - if (skill.isChildSkill()) { - Set parentSkills = FamilyTree.getParents(skill); - - for (PrimarySkillType parentSkill : parentSkills) { - profile.addLevels(parentSkill, (levels / parentSkills.size())); - } - - profile.scheduleAsyncSave(); - return; - } - - profile.addLevels(skill, levels); - profile.scheduleAsyncSave(); - } - - /** - * Get the level a player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param player The player to get the level for - * @param skillType The skill to get the level for - * @return the level of a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @deprecated Use getLevel(Player player, PrimarySkillType skillType) instead - */ - @Deprecated - public static int getLevel(Player player, String skillType) { - return getPlayer(player).getSkillLevel(getSkillType(skillType)); - } - - /** - * Get the level a player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param player The player to get the level for - * @param skillType The skill to get the level for - * @return the level of a given skill - * - * @throws InvalidSkillException if the given skill is not valid - */ - public static int getLevel(Player player, PrimarySkillType skillType) { - return getPlayer(player).getSkillLevel(skillType); - } - - /** - * Get the level an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param playerName The player to get the level for - * @param skillType The skill to get the level for - * @return the level of a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static int getLevelOffline(String playerName, String skillType) { - return getOfflineProfile(playerName).getSkillLevel(getSkillType(skillType)); - } - - /** - * Get the level an offline player has in a specific skill. - *
- * This function is designed for API usage. - * - * @param uuid The player to get the level for - * @param skillType The skill to get the level for - * @return the level of a given skill - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static int getLevelOffline(UUID uuid, String skillType) { - return getOfflineProfile(uuid).getSkillLevel(getSkillType(skillType)); - } - - /** - * Gets the power level of a player. - *
- * This function is designed for API usage. - * - * @param player The player to get the power level for - * @return the power level of the player - */ - public static int getPowerLevel(Player player) { - return getPlayer(player).getPowerLevel(); - } - - /** - * Gets the power level of an offline player. - *
- * This function is designed for API usage. - * - * @param playerName The player to get the power level for - * @return the power level of the player - * - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static int getPowerLevelOffline(String playerName) { - int powerLevel = 0; - PlayerProfile profile = getOfflineProfile(playerName); - - for (PrimarySkillType type : PrimarySkillType.NON_CHILD_SKILLS) { - powerLevel += profile.getSkillLevel(type); - } - - return powerLevel; - } - - /** - * Gets the power level of an offline player. - *
- * This function is designed for API usage. - * - * @param uuid The player to get the power level for - * @return the power level of the player - * - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static int getPowerLevelOffline(UUID uuid) { - int powerLevel = 0; - PlayerProfile profile = getOfflineProfile(uuid); - - for (PrimarySkillType type : PrimarySkillType.NON_CHILD_SKILLS) { - powerLevel += profile.getSkillLevel(type); - } - - return powerLevel; - } - - /** - * Get the level cap of a specific skill. - *
- * This function is designed for API usage. - * - * @param skillType The skill to get the level cap for - * @return the level cap of a given skill - * - * @throws InvalidSkillException if the given skill is not valid - */ - public static int getLevelCap(String skillType) { - return Config.getInstance().getLevelCap(getSkillType(skillType)); - } - - /** - * Get the power level cap. - *
- * This function is designed for API usage. - * - * @return the overall power level cap - */ - public static int getPowerLevelCap() { - return Config.getInstance().getPowerLevelCap(); - } - - /** - * Get the position on the leaderboard of a player. - *
- * This function is designed for API usage. - * - * @param playerName The name of the player to check - * @param skillType The skill to check - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - * - * @return the position on the leaderboard - */ - @Deprecated - public static int getPlayerRankSkill(String playerName, String skillType) { - return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(getNonChildSkillType(skillType)); - } - - /** - * Get the position on the leaderboard of a player. - *
- * This function is designed for API usage. - * - * @param uuid The name of the player to check - * @param skillType The skill to check - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - * - * @return the position on the leaderboard - */ - public static int getPlayerRankSkill(UUID uuid, String skillType) { - return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(getNonChildSkillType(skillType)); - } - - /** - * Get the position on the power level leaderboard of a player. - *
- * This function is designed for API usage. - * - * @param playerName The name of the player to check - * - * @throws InvalidPlayerException if the given player does not exist in the database - * - * @return the position on the power level leaderboard - */ - @Deprecated - public static int getPlayerRankOverall(String playerName) { - return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(null); - } - - /** - * Get the position on the power level leaderboard of a player. - *
- * This function is designed for API usage. - * - * @param uuid The name of the player to check - * - * @throws InvalidPlayerException if the given player does not exist in the database - * - * @return the position on the power level leaderboard - */ - public static int getPlayerRankOverall(UUID uuid) { - return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(null); - } - - /** - * Sets the level of a player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param player The player to set the level of - * @param skillType The skill to set the level for - * @param skillLevel The value to set the level to - * - * @throws InvalidSkillException if the given skill is not valid - */ - public static void setLevel(Player player, String skillType, int skillLevel) { - getPlayer(player).modifySkill(getSkillType(skillType), skillLevel); - } - - /** - * Sets the level of an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param playerName The player to set the level of - * @param skillType The skill to set the level for - * @param skillLevel The value to set the level to - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - @Deprecated - public static void setLevelOffline(String playerName, String skillType, int skillLevel) { - getOfflineProfile(playerName).modifySkill(getSkillType(skillType), skillLevel); - } - - /** - * Sets the level of an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param uuid The player to set the level of - * @param skillType The skill to set the level for - * @param skillLevel The value to set the level to - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - */ - public static void setLevelOffline(UUID uuid, String skillType, int skillLevel) { - getOfflineProfile(uuid).modifySkill(getSkillType(skillType), skillLevel); - } - - /** - * Sets the XP of a player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param player The player to set the XP of - * @param skillType The skill to set the XP for - * @param newValue The value to set the XP to - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static void setXP(Player player, String skillType, int newValue) { - getPlayer(player).setSkillXpLevel(getNonChildSkillType(skillType), newValue); - } - - /** - * Sets the XP of an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param playerName The player to set the XP of - * @param skillType The skill to set the XP for - * @param newValue The value to set the XP to - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static void setXPOffline(String playerName, String skillType, int newValue) { - getOfflineProfile(playerName).setSkillXpLevel(getNonChildSkillType(skillType), newValue); - } - - /** - * Sets the XP of an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param uuid The player to set the XP of - * @param skillType The skill to set the XP for - * @param newValue The value to set the XP to - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static void setXPOffline(UUID uuid, String skillType, int newValue) { - getOfflineProfile(uuid).setSkillXpLevel(getNonChildSkillType(skillType), newValue); - } - - /** - * Removes XP from a player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param player The player to change the XP of - * @param skillType The skill to change the XP for - * @param xp The amount of XP to remove - * - * @throws InvalidSkillException if the given skill is not valid - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static void removeXP(Player player, String skillType, int xp) { - getPlayer(player).removeXp(getNonChildSkillType(skillType), xp); - } - - /** - * Removes XP from an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param playerName The player to change the XP of - * @param skillType The skill to change the XP for - * @param xp The amount of XP to remove - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - @Deprecated - public static void removeXPOffline(String playerName, String skillType, int xp) { - getOfflineProfile(playerName).removeXp(getNonChildSkillType(skillType), xp); - } - - /** - * Removes XP from an offline player in a specific skill type. - *
- * This function is designed for API usage. - * - * @param uuid The player to change the XP of - * @param skillType The skill to change the XP for - * @param xp The amount of XP to remove - * - * @throws InvalidSkillException if the given skill is not valid - * @throws InvalidPlayerException if the given player does not exist in the database - * @throws UnsupportedOperationException if the given skill is a child skill - */ - public static void removeXPOffline(UUID uuid, String skillType, int xp) { - getOfflineProfile(uuid).removeXp(getNonChildSkillType(skillType), xp); - } - - /** - * Check how much XP is needed for a specific level with the selected level curve. - *
- * This function is designed for API usage. - * - * @param level The level to get the amount of XP for - * - * @throws InvalidFormulaTypeException if the given formulaType is not valid - */ - public static int getXpNeededToLevel(int level) { - return mcMMO.getFormulaManager().getXPtoNextLevel(level, ExperienceConfig.getInstance().getFormulaType()); - } - - /** - * Check how much XP is needed for a specific level with the provided level curve. - *
- * This function is designed for API usage. - * - * @param level The level to get the amount of XP for - * @param formulaType The formula type to get the amount of XP for - * - * @throws InvalidFormulaTypeException if the given formulaType is not valid - */ - public static int getXpNeededToLevel(int level, String formulaType) { - return mcMMO.getFormulaManager().getXPtoNextLevel(level, getFormulaType(formulaType)); - } - - /** - * Will add the appropriate type of XP from the block to the player based on the material of the blocks given - * @param blockStates the blocks to reward XP for - * @param mcMMOPlayer the target player - */ - public static void addXpFromBlocks(ArrayList blockStates, McMMOPlayer mcMMOPlayer) - { - for(BlockState bs : blockStates) - { - for(PrimarySkillType skillType : PrimarySkillType.values()) - { - if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) - { - mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF); - } - } - } - } - - /** - * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType - * @param blockStates the blocks to reward XP for - * @param mcMMOPlayer the target player - * @param skillType target primary skill - */ - public static void addXpFromBlocksBySkill(ArrayList blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) - { - for(BlockState bs : blockStates) - { - if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) - { - mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF); - } - } - } - - /** - * Will add the appropriate type of XP from the block to the player based on the material of the blocks given - * @param blockState The target blockstate - * @param mcMMOPlayer The target player - */ - public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) - { - for(PrimarySkillType skillType : PrimarySkillType.values()) - { - if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) - { - mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF); - } - } - } - - /** - * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType - * @param blockState The target blockstate - * @param mcMMOPlayer The target player - * @param skillType target primary skill - */ - public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) - { - if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) - { - mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF); - } - } - - // Utility methods follow. - private static void addOfflineXP(UUID playerUniqueId, PrimarySkillType skill, int XP) { - PlayerProfile profile = getOfflineProfile(playerUniqueId); - - profile.addXp(skill, XP); - profile.save(true); - } - - @Deprecated - private static void addOfflineXP(String playerName, PrimarySkillType skill, int XP) { - PlayerProfile profile = getOfflineProfile(playerName); - - profile.addXp(skill, XP); - profile.scheduleAsyncSave(); - } - - private static PlayerProfile getOfflineProfile(UUID uuid) throws InvalidPlayerException { - OfflinePlayer offlinePlayer = Bukkit.getServer().getOfflinePlayer(uuid); - String playerName = offlinePlayer.getName(); - PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, playerName); - - if (!profile.isLoaded()) { - throw new InvalidPlayerException(); - } - - return profile; - } - - @Deprecated - private static PlayerProfile getOfflineProfile(String playerName) throws InvalidPlayerException { - OfflinePlayer offlinePlayer = Bukkit.getServer().getOfflinePlayer(playerName); - UUID uuid = offlinePlayer.getUniqueId(); - PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, playerName); - - if (!profile.isLoaded()) { - throw new InvalidPlayerException(); - } - - return profile; - } - - private static PrimarySkillType getSkillType(String skillType) throws InvalidSkillException { - PrimarySkillType skill = PrimarySkillType.getSkill(skillType); - - if (skill == null) { - throw new InvalidSkillException(); - } - - return skill; - } - - private static PrimarySkillType getNonChildSkillType(String skillType) throws InvalidSkillException, UnsupportedOperationException { - PrimarySkillType skill = getSkillType(skillType); - - if (skill.isChildSkill()) { - throw new UnsupportedOperationException("Child skills do not have XP"); - } - - return skill; - } - - private static XPGainReason getXPGainReason(String reason) throws InvalidXPGainReasonException { - XPGainReason xpGainReason = XPGainReason.getXPGainReason(reason); - - if (xpGainReason == null) { - throw new InvalidXPGainReasonException(); - } - - return xpGainReason; - } - - private static FormulaType getFormulaType(String formula) throws InvalidFormulaTypeException { - FormulaType formulaType = FormulaType.getFormulaType(formula); - - if (formulaType == null) { - throw new InvalidFormulaTypeException(); - } - - return formulaType; - } - - /** - * @deprecated Use UserManager::getPlayer(Player player) instead - * @param player target player - * @return McMMOPlayer for that player if the profile is loaded, otherwise null - * @throws McMMOPlayerNotFoundException - */ - @Deprecated - private static McMMOPlayer getPlayer(Player player) throws McMMOPlayerNotFoundException { - if (!UserManager.hasPlayerDataKey(player)) { - throw new McMMOPlayerNotFoundException(player); - } - - return UserManager.getPlayer(player); - } -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.config.Config; +//import com.gmail.nossr50.config.experience.ExperienceConfig; +//import com.gmail.nossr50.datatypes.experience.FormulaType; +//import com.gmail.nossr50.datatypes.player.McMMOPlayer; +//import com.gmail.nossr50.datatypes.player.PlayerProfile; +//import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +//import com.gmail.nossr50.mcMMO; +//import com.gmail.nossr50.skills.child.FamilyTree; +//import com.gmail.nossr50.util.player.UserManager; +//import com.gmail.nossr50.util.skills.CombatUtils; +//import com.neetgames.mcmmo.exceptions.InvalidPlayerException; +//import com.neetgames.mcmmo.exceptions.InvalidSkillException; +//import com.neetgames.mcmmo.exceptions.InvalidXPGainReasonException; +//import com.neetgames.mcmmo.experience.XPGainSource; +//import org.bukkit.Bukkit; +//import org.bukkit.OfflinePlayer; +//import org.bukkit.block.BlockState; +//import org.bukkit.entity.LivingEntity; +//import org.bukkit.entity.Player; +// +//import java.util.ArrayList; +//import java.util.Set; +//import java.util.UUID; +// +//public final class ExperienceAPI { +// private ExperienceAPI() {} +// +// /** +// * Returns whether given string is a valid type of skill suitable for the +// * other API calls in this class. +// *
+// * This function is designed for API usage. +// * +// * @param skillType A string that may or may not be a skill +// * @return true if this is a valid mcMMO skill +// */ +// public static boolean isValidSkillType(String skillType) { +// return PrimarySkillType.getSkill(skillType) != null; +// } +// +// /** +// * Start the task that gives combat XP. +// * Processes combat XP like mcMMO normally would, so mcMMO will check whether or not the entity should reward XP when giving out the XP +// * +// * @param mcMMOPlayer The attacking player +// * @param target The defending entity +// * @param primarySkillType The skill being used +// * @param multiplier final XP result will be multiplied by this +// * @deprecated Draft API +// */ +// @Deprecated +// public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType, double multiplier) { +// CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType, multiplier); +// } +// +// /** +// * Start the task that gives combat XP. +// * Processes combat XP like mcMMO normally would, so mcMMO will check whether or not the entity should reward XP when giving out the XP +// * +// * @param mcMMOPlayer The attacking player +// * @param target The defending entity +// * @param primarySkillType The skill being used +// * @deprecated Draft API +// */ +// @Deprecated +// public static void addCombatXP(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType) { +// CombatUtils.processCombatXP(mcMMOPlayer, target, primarySkillType); +// } +// +// /** +// * Returns whether the given skill type string is both valid and not a +// * child skill. (Child skills have no XP of their own, and their level is +// * derived from the parent(s).) +// *
+// * This function is designed for API usage. +// * +// * @param skillType the skill to check +// * @return true if this is a valid, non-child mcMMO skill +// */ +// public static boolean isNonChildSkill(String skillType) { +// PrimarySkillType skill = PrimarySkillType.getSkill(skillType); +// +// return skill != null && !skill.isChildSkill(); +// } +// +// @Deprecated +// public static void addRawXP(Player player, String skillType, int XP) { +// addRawXP(player, skillType, (float) XP); +// } +// +// /** +// * Adds raw XP to the player. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// @Deprecated +// public static void addRawXP(Player player, String skillType, float XP) { +// addRawXP(player, skillType, XP, "UNKNOWN"); +// } +// +// /** +// * Adds raw XP to the player. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addRawXP(Player player, String skillType, float XP, String xpGainReason) { +// addRawXP(player, skillType, XP, xpGainReason, false); +// } +// +// /** +// * Adds raw XP to the player. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * @param isUnshared true if the XP cannot be shared with party members +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) { +// if (isUnshared) { +// getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// return; +// } +// +// getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// } +// +// /** +// * Adds raw XP to an offline player. +// *
+// * This function is designed for API usage. +// * +// * @deprecated We're using float for our XP values now +// * replaced by {@link #addRawXPOffline(String playerName, String skillType, float XP)} +// */ +// @Deprecated +// public static void addRawXPOffline(String playerName, String skillType, int XP) { +// addRawXPOffline(playerName, skillType, (float) XP); +// } +// +// /** +// * Adds raw XP to an offline player. +// *
+// * This function is designed for API usage. +// * +// * @deprecated We're using uuids to get an offline player +// * replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)} +// * +// * @param playerName The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static void addRawXPOffline(String playerName, String skillType, float XP) { +// addOfflineXP(playerName, getSkillType(skillType), (int) Math.floor(XP)); +// } +// +// /** +// * Adds raw XP to an offline player. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The UUID of player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static void addRawXPOffline(UUID uuid, String skillType, float XP) { +// addOfflineXP(uuid, getSkillType(skillType), (int) Math.floor(XP)); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate only. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// @Deprecated +// public static void addMultipliedXP(Player player, String skillType, int XP) { +// addMultipliedXP(player, skillType, XP, "UNKNOWN"); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate only. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) { +// getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// } +// +// /** +// * Adds XP to an offline player, calculates for XP Rate only. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static void addMultipliedXPOffline(String playerName, String skillType, int XP) { +// addOfflineXP(playerName, getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier())); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate and skill modifier. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// @Deprecated +// public static void addModifiedXP(Player player, String skillType, int XP) { +// addModifiedXP(player, skillType, XP, "UNKNOWN"); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate and skill modifier. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason) { +// addModifiedXP(player, skillType, XP, xpGainReason, false); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate and skill modifier. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * @param isUnshared true if the XP cannot be shared with party members +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) { +// PrimarySkillType skill = getSkillType(skillType); +// +// if (isUnshared) { +// getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// return; +// } +// +// getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// } +// +// /** +// * Adds XP to an offline player, calculates for XP Rate and skill modifier. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static void addModifiedXPOffline(String playerName, String skillType, int XP) { +// PrimarySkillType skill = getSkillType(skillType); +// +// addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier())); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, +// * and party sharing. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// @Deprecated +// public static void addXP(Player player, String skillType, int XP) { +// addXP(player, skillType, XP, "UNKNOWN"); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, +// * and party sharing. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addXP(Player player, String skillType, int XP, String xpGainReason) { +// addXP(player, skillType, XP, xpGainReason, false); +// } +// +// /** +// * Adds XP to the player, calculates for XP Rate, skill modifiers, perks, child skills, +// * and party sharing. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add XP to +// * @param skillType The skill to add XP to +// * @param XP The amount of XP to add +// * @param xpGainReason The reason to gain XP +// * @param isUnshared true if the XP cannot be shared with party members +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidXPGainReasonException if the given xpGainReason is not valid +// */ +// public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) { +// if (isUnshared) { +// getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// return; +// } +// +// getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); +// } +// +// /** +// * Get the amount of XP a player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static int getXP(Player player, String skillType) { +// return getPlayer(player).getSkillXpLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the amount of XP an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static int getOfflineXP(String playerName, String skillType) { +// return getOfflineProfile(playerName).getSkillXpLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the amount of XP an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static int getOfflineXP(UUID uuid, String skillType) { +// return getOfflineProfile(uuid).getSkillXpLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the raw amount of XP a player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static float getXPRaw(Player player, String skillType) { +// return getPlayer(player).getSkillXpLevelRaw(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the raw amount of XP an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static float getOfflineXPRaw(String playerName, String skillType) { +// return getOfflineProfile(playerName).getSkillXpLevelRaw(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the raw amount of XP an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP in a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static float getOfflineXPRaw(UUID uuid, String skillType) { +// return getOfflineProfile(uuid).getSkillXpLevelRaw(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the total amount of XP needed to reach the next level. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get the XP amount for +// * @param skillType The skill to get the XP amount for +// * @return the total amount of XP needed to reach the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static int getXPToNextLevel(Player player, String skillType) { +// return getPlayer(player).getXpToLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the total amount of XP an offline player needs to reach the next level. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get XP for +// * @param skillType The skill to get XP for +// * @return the total amount of XP needed to reach the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static int getOfflineXPToNextLevel(String playerName, String skillType) { +// return getOfflineProfile(playerName).getXpToLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the total amount of XP an offline player needs to reach the next level. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get XP for +// * @param skillType The skill to get XP for +// * @return the total amount of XP needed to reach the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static int getOfflineXPToNextLevel(UUID uuid, String skillType) { +// return getOfflineProfile(uuid).getXpToLevel(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the amount of XP remaining until the next level. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get the XP amount for +// * @param skillType The skill to get the XP amount for +// * @return the amount of XP remaining until the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static int getXPRemaining(Player player, String skillType) { +// PrimarySkillType skill = getNonChildSkillType(skillType); +// +// PlayerProfile profile = getPlayer(player).getProfile(); +// +// return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill); +// } +// +// /** +// * Get the amount of XP an offline player has left before leveling up. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP needed to reach the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static int getOfflineXPRemaining(String playerName, String skillType) { +// PrimarySkillType skill = getNonChildSkillType(skillType); +// PlayerProfile profile = getOfflineProfile(playerName); +// +// return profile.getXpToLevel(skill) - profile.getSkillXpLevel(skill); +// } +// +// /** +// * Get the amount of XP an offline player has left before leveling up. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get XP for +// * @param skillType The skill to get XP for +// * @return the amount of XP needed to reach the next level +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static float getOfflineXPRemaining(UUID uuid, String skillType) { +// PrimarySkillType skill = getNonChildSkillType(skillType); +// PlayerProfile profile = getOfflineProfile(uuid); +// +// return profile.getXpToLevel(skill) - profile.getSkillXpLevelRaw(skill); +// } +// +// /** +// * Add levels to a skill. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add levels to +// * @param skillType Type of skill to add levels to +// * @param levels Number of levels to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// public static void addLevel(Player player, String skillType, int levels) { +// getPlayer(player).addLevels(getSkillType(skillType), levels); +// } +// +// /** +// * Add levels to a skill for an offline player. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to add levels to +// * @param skillType Type of skill to add levels to +// * @param levels Number of levels to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static void addLevelOffline(String playerName, String skillType, int levels) { +// PlayerProfile profile = getOfflineProfile(playerName); +// PrimarySkillType skill = getSkillType(skillType); +// +// if (skill.isChildSkill()) { +// Set parentSkills = FamilyTree.getParents(skill); +// +// for (PrimarySkillType parentSkill : parentSkills) { +// profile.addLevels(parentSkill, (levels / parentSkills.size())); +// } +// +// profile.scheduleAsyncSave(); +// return; +// } +// +// profile.addLevels(skill, levels); +// profile.scheduleAsyncSave(); +// } +// +// /** +// * Add levels to a skill for an offline player. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to add levels to +// * @param skillType Type of skill to add levels to +// * @param levels Number of levels to add +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static void addLevelOffline(UUID uuid, String skillType, int levels) { +// PlayerProfile profile = getOfflineProfile(uuid); +// PrimarySkillType skill = getSkillType(skillType); +// +// if (skill.isChildSkill()) { +// Set parentSkills = FamilyTree.getParents(skill); +// +// for (PrimarySkillType parentSkill : parentSkills) { +// profile.addLevels(parentSkill, (levels / parentSkills.size())); +// } +// +// profile.scheduleAsyncSave(); +// return; +// } +// +// profile.addLevels(skill, levels); +// profile.scheduleAsyncSave(); +// } +// +// /** +// * Get the level a player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get the level for +// * @param skillType The skill to get the level for +// * @return the level of a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @deprecated Use getLevel(Player player, PrimarySkillType skillType) instead +// */ +// @Deprecated +// public static int getLevel(Player player, String skillType) { +// return getPlayer(player).getSkillLevel(getSkillType(skillType)); +// } +// +// /** +// * Get the level a player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get the level for +// * @param skillType The skill to get the level for +// * @return the level of a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// public static int getLevel(Player player, PrimarySkillType skillType) { +// return getPlayer(player).getSkillLevel(skillType); +// } +// +// /** +// * Get the level an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get the level for +// * @param skillType The skill to get the level for +// * @return the level of a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static int getLevelOffline(String playerName, String skillType) { +// return getOfflineProfile(playerName).getSkillLevel(getSkillType(skillType)); +// } +// +// /** +// * Get the level an offline player has in a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get the level for +// * @param skillType The skill to get the level for +// * @return the level of a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static int getLevelOffline(UUID uuid, String skillType) { +// return getOfflineProfile(uuid).getSkillLevel(getSkillType(skillType)); +// } +// +// /** +// * Gets the power level of a player. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to get the power level for +// * @return the power level of the player +// */ +// public static int getPowerLevel(Player player) { +// return getPlayer(player).getPowerLevel(); +// } +// +// /** +// * Gets the power level of an offline player. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to get the power level for +// * @return the power level of the player +// * +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static int getPowerLevelOffline(String playerName) { +// int powerLevel = 0; +// PlayerProfile profile = getOfflineProfile(playerName); +// +// for (PrimarySkillType type : PrimarySkillType.NON_CHILD_SKILLS) { +// powerLevel += profile.getSkillLevel(type); +// } +// +// return powerLevel; +// } +// +// /** +// * Gets the power level of an offline player. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to get the power level for +// * @return the power level of the player +// * +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static int getPowerLevelOffline(UUID uuid) { +// int powerLevel = 0; +// PlayerProfile profile = getOfflineProfile(uuid); +// +// for (PrimarySkillType type : PrimarySkillType.NON_CHILD_SKILLS) { +// powerLevel += profile.getSkillLevel(type); +// } +// +// return powerLevel; +// } +// +// /** +// * Get the level cap of a specific skill. +// *
+// * This function is designed for API usage. +// * +// * @param skillType The skill to get the level cap for +// * @return the level cap of a given skill +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// public static int getLevelCap(String skillType) { +// return Config.getInstance().getLevelCap(getSkillType(skillType)); +// } +// +// /** +// * Get the power level cap. +// *
+// * This function is designed for API usage. +// * +// * @return the overall power level cap +// */ +// public static int getPowerLevelCap() { +// return Config.getInstance().getPowerLevelCap(); +// } +// +// /** +// * Get the position on the leaderboard of a player. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The name of the player to check +// * @param skillType The skill to check +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// * +// * @return the position on the leaderboard +// */ +// @Deprecated +// public static int getPlayerRankSkill(String playerName, String skillType) { +// return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the position on the leaderboard of a player. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The name of the player to check +// * @param skillType The skill to check +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// * +// * @return the position on the leaderboard +// */ +// public static int getPlayerRankSkill(UUID uuid, String skillType) { +// return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(getNonChildSkillType(skillType)); +// } +// +// /** +// * Get the position on the power level leaderboard of a player. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The name of the player to check +// * +// * @throws InvalidPlayerException if the given player does not exist in the database +// * +// * @return the position on the power level leaderboard +// */ +// @Deprecated +// public static int getPlayerRankOverall(String playerName) { +// return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(playerName).getName()).get(null); +// } +// +// /** +// * Get the position on the power level leaderboard of a player. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The name of the player to check +// * +// * @throws InvalidPlayerException if the given player does not exist in the database +// * +// * @return the position on the power level leaderboard +// */ +// public static int getPlayerRankOverall(UUID uuid) { +// return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(null); +// } +// +// /** +// * Sets the level of a player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to set the level of +// * @param skillType The skill to set the level for +// * @param skillLevel The value to set the level to +// * +// * @throws InvalidSkillException if the given skill is not valid +// */ +// public static void setLevel(Player player, String skillType, int skillLevel) { +// getPlayer(player).modifySkill(getSkillType(skillType), skillLevel); +// } +// +// /** +// * Sets the level of an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to set the level of +// * @param skillType The skill to set the level for +// * @param skillLevel The value to set the level to +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// @Deprecated +// public static void setLevelOffline(String playerName, String skillType, int skillLevel) { +// getOfflineProfile(playerName).modifySkill(getSkillType(skillType), skillLevel); +// } +// +// /** +// * Sets the level of an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to set the level of +// * @param skillType The skill to set the level for +// * @param skillLevel The value to set the level to +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// */ +// public static void setLevelOffline(UUID uuid, String skillType, int skillLevel) { +// getOfflineProfile(uuid).modifySkill(getSkillType(skillType), skillLevel); +// } +// +// /** +// * Sets the XP of a player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to set the XP of +// * @param skillType The skill to set the XP for +// * @param newValue The value to set the XP to +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static void setXP(Player player, String skillType, int newValue) { +// getPlayer(player).setSkillXpLevel(getNonChildSkillType(skillType), newValue); +// } +// +// /** +// * Sets the XP of an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to set the XP of +// * @param skillType The skill to set the XP for +// * @param newValue The value to set the XP to +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static void setXPOffline(String playerName, String skillType, int newValue) { +// getOfflineProfile(playerName).setSkillXpLevel(getNonChildSkillType(skillType), newValue); +// } +// +// /** +// * Sets the XP of an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to set the XP of +// * @param skillType The skill to set the XP for +// * @param newValue The value to set the XP to +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static void setXPOffline(UUID uuid, String skillType, int newValue) { +// getOfflineProfile(uuid).setSkillXpLevel(getNonChildSkillType(skillType), newValue); +// } +// +// /** +// * Removes XP from a player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to change the XP of +// * @param skillType The skill to change the XP for +// * @param xp The amount of XP to remove +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static void removeXP(Player player, String skillType, int xp) { +// getPlayer(player).removeXp(getNonChildSkillType(skillType), xp); +// } +// +// /** +// * Removes XP from an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param playerName The player to change the XP of +// * @param skillType The skill to change the XP for +// * @param xp The amount of XP to remove +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// @Deprecated +// public static void removeXPOffline(String playerName, String skillType, int xp) { +// getOfflineProfile(playerName).removeXp(getNonChildSkillType(skillType), xp); +// } +// +// /** +// * Removes XP from an offline player in a specific skill type. +// *
+// * This function is designed for API usage. +// * +// * @param uuid The player to change the XP of +// * @param skillType The skill to change the XP for +// * @param xp The amount of XP to remove +// * +// * @throws InvalidSkillException if the given skill is not valid +// * @throws InvalidPlayerException if the given player does not exist in the database +// * @throws UnsupportedOperationException if the given skill is a child skill +// */ +// public static void removeXPOffline(UUID uuid, String skillType, int xp) { +// getOfflineProfile(uuid).removeXp(getNonChildSkillType(skillType), xp); +// } +// +// /** +// * Check how much XP is needed for a specific level with the selected level curve. +// *
+// * This function is designed for API usage. +// * +// * @param level The level to get the amount of XP for +// * +// * @throws InvalidFormulaTypeException if the given formulaType is not valid +// */ +// public static int getXpNeededToLevel(int level) { +// return mcMMO.getFormulaManager().getXPtoNextLevel(level, ExperienceConfig.getInstance().getFormulaType()); +// } +// +// /** +// * Check how much XP is needed for a specific level with the provided level curve. +// *
+// * This function is designed for API usage. +// * +// * @param level The level to get the amount of XP for +// * @param formulaType The formula type to get the amount of XP for +// * +// * @throws InvalidFormulaTypeException if the given formulaType is not valid +// */ +// public static int getXpNeededToLevel(int level, String formulaType) { +// return mcMMO.getFormulaManager().getXPtoNextLevel(level, getFormulaType(formulaType)); +// } +// +// /** +// * Will add the appropriate type of XP from the block to the player based on the material of the blocks given +// * @param blockStates the blocks to reward XP for +// * @param mcMMOPlayer the target player +// */ +// public static void addXpFromBlocks(ArrayList blockStates, McMMOPlayer mcMMOPlayer) +// { +// for(BlockState bs : blockStates) +// { +// for(PrimarySkillType skillType : PrimarySkillType.values()) +// { +// if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) +// { +// mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF); +// } +// } +// } +// } +// +// /** +// * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType +// * @param blockStates the blocks to reward XP for +// * @param mcMMOPlayer the target player +// * @param skillType target primary skill +// */ +// public static void addXpFromBlocksBySkill(ArrayList blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) +// { +// for(BlockState bs : blockStates) +// { +// if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) +// { +// mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF); +// } +// } +// } +// +// /** +// * Will add the appropriate type of XP from the block to the player based on the material of the blocks given +// * @param blockState The target blockstate +// * @param mcMMOPlayer The target player +// */ +// public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) +// { +// for(PrimarySkillType skillType : PrimarySkillType.values()) +// { +// if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) +// { +// mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF); +// } +// } +// } +// +// /** +// * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType +// * @param blockState The target blockstate +// * @param mcMMOPlayer The target player +// * @param skillType target primary skill +// */ +// public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) +// { +// if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) +// { +// mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF); +// } +// } +// +// // Utility methods follow. +// private static void addOfflineXP(UUID playerUniqueId, PrimarySkillType skill, int XP) { +// PlayerProfile profile = getOfflineProfile(playerUniqueId); +// +// profile.addXp(skill, XP); +// profile.save(true); +// } +// +// @Deprecated +// private static void addOfflineXP(String playerName, PrimarySkillType skill, int XP) { +// PlayerProfile profile = getOfflineProfile(playerName); +// +// profile.addXp(skill, XP); +// profile.scheduleAsyncSave(); +// } +// +// private static PlayerProfile getOfflineProfile(UUID uuid) throws InvalidPlayerException { +// OfflinePlayer offlinePlayer = Bukkit.getServer().getOfflinePlayer(uuid); +// String playerName = offlinePlayer.getName(); +// PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, playerName); +// +// if (!profile.isLoaded()) { +// throw new InvalidPlayerException(); +// } +// +// return profile; +// } +// +// @Deprecated +// private static PlayerProfile getOfflineProfile(String playerName) throws InvalidPlayerException { +// OfflinePlayer offlinePlayer = Bukkit.getServer().getOfflinePlayer(playerName); +// UUID uuid = offlinePlayer.getUniqueId(); +// PlayerProfile profile = mcMMO.getDatabaseManager().loadPlayerProfile(uuid, playerName); +// +// if (!profile.isLoaded()) { +// throw new InvalidPlayerException(); +// } +// +// return profile; +// } +// +// private static PrimarySkillType getSkillType(String skillType) throws InvalidSkillException { +// PrimarySkillType skill = PrimarySkillType.getSkill(skillType); +// +// if (skill == null) { +// throw new InvalidSkillException(); +// } +// +// return skill; +// } +// +// private static PrimarySkillType getNonChildSkillType(String skillType) throws InvalidSkillException, UnsupportedOperationException { +// PrimarySkillType skill = getSkillType(skillType); +// +// if (skill.isChildSkill()) { +// throw new UnsupportedOperationException("Child skills do not have XP"); +// } +// +// return skill; +// } +// +// private static XPGainReason getXPGainReason(String reason) throws InvalidXPGainReasonException { +// XPGainReason xpGainReason = XPGainReason.getXPGainReason(reason); +// +// if (xpGainReason == null) { +// throw new InvalidXPGainReasonException(); +// } +// +// return xpGainReason; +// } +// +// private static FormulaType getFormulaType(String formula) throws InvalidFormulaTypeException { +// FormulaType formulaType = FormulaType.getFormulaType(formula); +// +// if (formulaType == null) { +// throw new InvalidFormulaTypeException(); +// } +// +// return formulaType; +// } +// +// /** +// * @deprecated Use UserManager::getPlayer(Player player) instead +// * @param player target player +// * @return McMMOPlayer for that player if the profile is loaded, otherwise null +// * @throws McMMOPlayerNotFoundException +// */ +// @Deprecated +// private static McMMOPlayer getPlayer(Player player) throws McMMOPlayerNotFoundException { +// if (!UserManager.hasPlayerDataKey(player)) { +// throw new McMMOPlayerNotFoundException(player); +// } +// +// return UserManager.getPlayer(player); +// } +//} diff --git a/src/main/java/com/gmail/nossr50/api/ItemSpawnReason.java b/src/main/java/com/gmail/nossr50/api/ItemSpawnReason.java index 29fdc1d29..3374a1d98 100644 --- a/src/main/java/com/gmail/nossr50/api/ItemSpawnReason.java +++ b/src/main/java/com/gmail/nossr50/api/ItemSpawnReason.java @@ -1,17 +1,17 @@ -package com.gmail.nossr50.api; - -public enum ItemSpawnReason { - ARROW_RETRIEVAL_ACTIVATED, //Players sometimes can retrieve arrows instead of losing them when hitting a mob - EXCAVATION_TREASURE, //Any drops when excavation treasures activate fall under this - FISHING_EXTRA_FISH, //A config setting allows more fish to be found when fishing, the extra fish are part of this - FISHING_SHAKE_TREASURE, //When using a fishing rod on a mob and finding a treasure via Shake - HYLIAN_LUCK_TREASURE, //When finding a treasure in grass via hylian luck - BLAST_MINING_DEBRIS_NON_ORES, //The non-ore debris that are dropped from blast mining - BLAST_MINING_ORES, //The ore(s) which may include player placed ores being dropped from blast mining - BLAST_MINING_ORES_BONUS_DROP, //Any bonus ores that drop from a result of a players Mining skills - UNARMED_DISARMED_ITEM, //When you disarm an opponent and they drop their weapon - SALVAGE_ENCHANTMENT_BOOK, //When you salvage an enchanted item and get the enchantment back in book form - SALVAGE_MATERIALS, //When you salvage an item and get materials back - TREE_FELLER_DISPLACED_BLOCK, - BONUS_DROPS, //Can be from Mining, Woodcutting, Herbalism, etc -} +//package com.gmail.nossr50.api; +// +//public enum ItemSpawnReason { +// ARROW_RETRIEVAL_ACTIVATED, //Players sometimes can retrieve arrows instead of losing them when hitting a mob +// EXCAVATION_TREASURE, //Any drops when excavation treasures activate fall under this +// FISHING_EXTRA_FISH, //A config setting allows more fish to be found when fishing, the extra fish are part of this +// FISHING_SHAKE_TREASURE, //When using a fishing rod on a mob and finding a treasure via Shake +// HYLIAN_LUCK_TREASURE, //When finding a treasure in grass via hylian luck +// BLAST_MINING_DEBRIS_NON_ORES, //The non-ore debris that are dropped from blast mining +// BLAST_MINING_ORES, //The ore(s) which may include player placed ores being dropped from blast mining +// BLAST_MINING_ORES_BONUS_DROP, //Any bonus ores that drop from a result of a players Mining skills +// UNARMED_DISARMED_ITEM, //When you disarm an opponent and they drop their weapon +// SALVAGE_ENCHANTMENT_BOOK, //When you salvage an enchanted item and get the enchantment back in book form +// SALVAGE_MATERIALS, //When you salvage an item and get materials back +// TREE_FELLER_DISPLACED_BLOCK, +// BONUS_DROPS, //Can be from Mining, Woodcutting, Herbalism, etc +//} diff --git a/src/main/java/com/gmail/nossr50/api/PartyAPI.java b/src/main/java/com/gmail/nossr50/api/PartyAPI.java index 97a2bbe40..66aa4feb7 100644 --- a/src/main/java/com/gmail/nossr50/api/PartyAPI.java +++ b/src/main/java/com/gmail/nossr50/api/PartyAPI.java @@ -1,258 +1,258 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.config.Config; -import com.gmail.nossr50.datatypes.interactions.NotificationType; -import com.gmail.nossr50.datatypes.party.Party; -import com.gmail.nossr50.datatypes.party.PartyLeader; -import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.party.PartyManager; -import com.gmail.nossr50.util.player.NotificationManager; -import com.gmail.nossr50.util.player.UserManager; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -import java.util.*; - -public final class PartyAPI { - private PartyAPI() {} - - /** - * Get the name of the party a player is in. - *
- * This function is designed for API usage. - * - * @param player The player to check the party name of - * @return the name of the player's party, or null if not in a party - */ - public static String getPartyName(Player player) { - if (!inParty(player)) { - return null; - } - - return UserManager.getPlayer(player).getParty().getName(); - } - - /** - * Checks if a player is in a party. - *
- * This function is designed for API usage. - * - * @param player The player to check - * @return true if the player is in a party, false otherwise - */ - public static boolean inParty(Player player) { - if(UserManager.getPlayer(player) == null) - return false; - - return UserManager.getPlayer(player).inParty(); - } - - /** - * Check if two players are in the same party. - *
- * This function is designed for API usage. - * - * @param playera The first player to check - * @param playerb The second player to check - * @return true if the two players are in the same party, false otherwise - */ - public static boolean inSameParty(Player playera, Player playerb) { - return PartyManager.inSameParty(playera, playerb); - } - - /** - * Get a list of all current parties. - *
- * This function is designed for API usage. - * - * @return the list of parties. - */ - public static List getParties() { - return PartyManager.getParties(); - } - - /** - * Add a player to a party. - *
- * This function is designed for API usage. - * - * @param player The player to add to the party - * @param partyName The party to add the player to - * @deprecated parties can have limits, use the other method - */ - @Deprecated - public static void addToParty(Player player, String partyName) { - //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) - return; - - Party party = PartyManager.getParty(partyName); - - if (party == null) { - party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); - } else { - if(PartyManager.isPartyFull(player, party)) - { - NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString()); - return; - } - } - - PartyManager.addToParty(UserManager.getPlayer(player), party); - } - - /** - * The max party size of the server - * 0 or less for no size limit - * @return the max party size on this server - */ - public static int getMaxPartySize() - { - return Config.getInstance().getPartyMaxSize(); - } - - /** - * Add a player to a party. - *
- * This function is designed for API usage. - * - * @param player The player to add to the party - * @param partyName The party to add the player to - * @param bypassLimit if true bypasses party size limits - */ - //TODO: bypasslimit not used? - public static void addToParty(Player player, String partyName, boolean bypassLimit) { - //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) - return; - - Party party = PartyManager.getParty(partyName); - - if (party == null) { - party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); - } - - PartyManager.addToParty(UserManager.getPlayer(player), party); - } - - /** - * Remove a player from a party. - *
- * This function is designed for API usage. - * - * @param player The player to remove - */ - public static void removeFromParty(Player player) { - //Check if player profile is loaded - if(UserManager.getPlayer(player) == null) - return; - - PartyManager.removeFromParty(UserManager.getPlayer(player)); - } - - /** - * Get the leader of a party. - *
- * This function is designed for API usage. - * - * @param partyName The party name - * @return the leader of the party - */ - public static String getPartyLeader(String partyName) { - return PartyManager.getPartyLeaderName(partyName); - } - - /** - * Set the leader of a party. - *
- * This function is designed for API usage. - * - * @param partyName The name of the party to set the leader of - * @param playerName The playerName to set as leader - */ - @Deprecated - public static void setPartyLeader(String partyName, String playerName) { - PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName)); - } - - /** - * Get a list of all players in this player's party. - *
- * This function is designed for API usage. - * - * @param player The player to check - * @return all the players in the player's party - */ - @Deprecated - public static List getOnlineAndOfflineMembers(Player player) { - List members = new ArrayList<>(); - - for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) { - OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId); - members.add(member); - } - return members; - } - - /** - * Get a list of all player names in this player's party. - *
- * This function is designed for API usage. - * - * @param player The player to check - * @return all the player names in the player's party - */ - @Deprecated - public static LinkedHashSet getMembers(Player player) { - return (LinkedHashSet) PartyManager.getAllMembers(player).values(); - } - - /** - * Get a list of all player names and uuids in this player's party. - *
- * This function is designed for API usage. - * - * @param player The player to check - * @return all the player names and uuids in the player's party - */ - public static LinkedHashMap getMembersMap(Player player) { - return PartyManager.getAllMembers(player); - } - - /** - * Get a list of all online players in this party. - *
- * This function is designed for API usage. - * - * @param partyName The party to check - * @return all online players in this party - */ - public static List getOnlineMembers(String partyName) { - return PartyManager.getOnlineMembers(partyName); - } - - /** - * Get a list of all online players in this player's party. - *
- * This function is designed for API usage. - * - * @param player The player to check - * @return all online players in the player's party - */ - public static List getOnlineMembers(Player player) { - return PartyManager.getOnlineMembers(player); - } - - public static boolean hasAlly(String partyName) { - return getAllyName(partyName) != null; - } - - public static String getAllyName(String partyName) { - Party ally = PartyManager.getParty(partyName).getAlly(); - if (ally != null) { - return ally.getName(); - } - - return null; - } -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.config.Config; +//import com.gmail.nossr50.datatypes.interactions.NotificationType; +//import com.gmail.nossr50.datatypes.party.Party; +//import com.gmail.nossr50.datatypes.party.PartyLeader; +//import com.gmail.nossr50.mcMMO; +//import com.gmail.nossr50.party.PartyManager; +//import com.gmail.nossr50.util.player.NotificationManager; +//import com.gmail.nossr50.util.player.UserManager; +//import org.bukkit.OfflinePlayer; +//import org.bukkit.entity.Player; +// +//import java.util.*; +// +//public final class PartyAPI { +// private PartyAPI() {} +// +// /** +// * Get the name of the party a player is in. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check the party name of +// * @return the name of the player's party, or null if not in a party +// */ +// public static String getPartyName(Player player) { +// if (!inParty(player)) { +// return null; +// } +// +// return UserManager.getPlayer(player).getParty().getName(); +// } +// +// /** +// * Checks if a player is in a party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check +// * @return true if the player is in a party, false otherwise +// */ +// public static boolean inParty(Player player) { +// if(UserManager.getPlayer(player) == null) +// return false; +// +// return UserManager.getPlayer(player).inParty(); +// } +// +// /** +// * Check if two players are in the same party. +// *
+// * This function is designed for API usage. +// * +// * @param playera The first player to check +// * @param playerb The second player to check +// * @return true if the two players are in the same party, false otherwise +// */ +// public static boolean inSameParty(Player playera, Player playerb) { +// return PartyManager.inSameParty(playera, playerb); +// } +// +// /** +// * Get a list of all current parties. +// *
+// * This function is designed for API usage. +// * +// * @return the list of parties. +// */ +// public static List getParties() { +// return PartyManager.getParties(); +// } +// +// /** +// * Add a player to a party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add to the party +// * @param partyName The party to add the player to +// * @deprecated parties can have limits, use the other method +// */ +// @Deprecated +// public static void addToParty(Player player, String partyName) { +// //Check if player profile is loaded +// if(UserManager.getPlayer(player) == null) +// return; +// +// Party party = PartyManager.getParty(partyName); +// +// if (party == null) { +// party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); +// } else { +// if(PartyManager.isPartyFull(player, party)) +// { +// NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString()); +// return; +// } +// } +// +// PartyManager.addToParty(UserManager.getPlayer(player), party); +// } +// +// /** +// * The max party size of the server +// * 0 or less for no size limit +// * @return the max party size on this server +// */ +// public static int getMaxPartySize() +// { +// return Config.getInstance().getPartyMaxSize(); +// } +// +// /** +// * Add a player to a party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to add to the party +// * @param partyName The party to add the player to +// * @param bypassLimit if true bypasses party size limits +// */ +// //TODO: bypasslimit not used? +// public static void addToParty(Player player, String partyName, boolean bypassLimit) { +// //Check if player profile is loaded +// if(UserManager.getPlayer(player) == null) +// return; +// +// Party party = PartyManager.getParty(partyName); +// +// if (party == null) { +// party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName); +// } +// +// PartyManager.addToParty(UserManager.getPlayer(player), party); +// } +// +// /** +// * Remove a player from a party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to remove +// */ +// public static void removeFromParty(Player player) { +// //Check if player profile is loaded +// if(UserManager.getPlayer(player) == null) +// return; +// +// PartyManager.removeFromParty(UserManager.getPlayer(player)); +// } +// +// /** +// * Get the leader of a party. +// *
+// * This function is designed for API usage. +// * +// * @param partyName The party name +// * @return the leader of the party +// */ +// public static String getPartyLeader(String partyName) { +// return PartyManager.getPartyLeaderName(partyName); +// } +// +// /** +// * Set the leader of a party. +// *
+// * This function is designed for API usage. +// * +// * @param partyName The name of the party to set the leader of +// * @param playerName The playerName to set as leader +// */ +// @Deprecated +// public static void setPartyLeader(String partyName, String playerName) { +// PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName)); +// } +// +// /** +// * Get a list of all players in this player's party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check +// * @return all the players in the player's party +// */ +// @Deprecated +// public static List getOnlineAndOfflineMembers(Player player) { +// List members = new ArrayList<>(); +// +// for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) { +// OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId); +// members.add(member); +// } +// return members; +// } +// +// /** +// * Get a list of all player names in this player's party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check +// * @return all the player names in the player's party +// */ +// @Deprecated +// public static LinkedHashSet getMembers(Player player) { +// return (LinkedHashSet) PartyManager.getAllMembers(player).values(); +// } +// +// /** +// * Get a list of all player names and uuids in this player's party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check +// * @return all the player names and uuids in the player's party +// */ +// public static LinkedHashMap getMembersMap(Player player) { +// return PartyManager.getAllMembers(player); +// } +// +// /** +// * Get a list of all online players in this party. +// *
+// * This function is designed for API usage. +// * +// * @param partyName The party to check +// * @return all online players in this party +// */ +// public static List getOnlineMembers(String partyName) { +// return PartyManager.getOnlineMembers(partyName); +// } +// +// /** +// * Get a list of all online players in this player's party. +// *
+// * This function is designed for API usage. +// * +// * @param player The player to check +// * @return all online players in the player's party +// */ +// public static List getOnlineMembers(Player player) { +// return PartyManager.getOnlineMembers(player); +// } +// +// public static boolean hasAlly(String partyName) { +// return getAllyName(partyName) != null; +// } +// +// public static String getAllyName(String partyName) { +// Party ally = PartyManager.getParty(partyName).getAlly(); +// if (ally != null) { +// return ally.getName(); +// } +// +// return null; +// } +//} diff --git a/src/main/java/com/gmail/nossr50/api/SkillAPI.java b/src/main/java/com/gmail/nossr50/api/SkillAPI.java index cdb686af8..460a97c60 100644 --- a/src/main/java/com/gmail/nossr50/api/SkillAPI.java +++ b/src/main/java/com/gmail/nossr50/api/SkillAPI.java @@ -1,93 +1,93 @@ -package com.gmail.nossr50.api; - -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public final class SkillAPI { - private SkillAPI() {} - - /** - * Returns a list of strings with mcMMO's skills - * This includes parent and child skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getSkills() { - return getListFromEnum(Arrays.asList(PrimarySkillType.values())); - } - - /** - * Returns a list of strings with mcMMO's skills - * This only includes parent skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getNonChildSkills() { - return getListFromEnum(PrimarySkillType.NON_CHILD_SKILLS); - } - - /** - * Returns a list of strings with mcMMO's skills - * This only includes child skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getChildSkills() { - return getListFromEnum(PrimarySkillType.CHILD_SKILLS); - } - - /** - * Returns a list of strings with mcMMO's skills - * This only includes combat skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getCombatSkills() { - return getListFromEnum(PrimarySkillType.COMBAT_SKILLS); - } - - /** - * Returns a list of strings with mcMMO's skills - * This only includes gathering skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getGatheringSkills() { - return getListFromEnum(PrimarySkillType.GATHERING_SKILLS); - } - - /** - * Returns a list of strings with mcMMO's skills - * This only includes misc skills - *
- * This function is designed for API usage. - * - * @return a list of strings with valid skill names - */ - public static List getMiscSkills() { - return getListFromEnum(PrimarySkillType.MISC_SKILLS); - } - - private static List getListFromEnum(List skillsTypes) { - List skills = new ArrayList<>(); - - for (PrimarySkillType primarySkillType : skillsTypes) { - skills.add(primarySkillType.name()); - } - - return skills; - } -} +//package com.gmail.nossr50.api; +// +//import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +// +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.List; +// +//public final class SkillAPI { +// private SkillAPI() {} +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This includes parent and child skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getSkills() { +// return getListFromEnum(Arrays.asList(PrimarySkillType.values())); +// } +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This only includes parent skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getNonChildSkills() { +// return getListFromEnum(PrimarySkillType.NON_CHILD_SKILLS); +// } +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This only includes child skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getChildSkills() { +// return getListFromEnum(PrimarySkillType.CHILD_SKILLS); +// } +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This only includes combat skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getCombatSkills() { +// return getListFromEnum(PrimarySkillType.COMBAT_SKILLS); +// } +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This only includes gathering skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getGatheringSkills() { +// return getListFromEnum(PrimarySkillType.GATHERING_SKILLS); +// } +// +// /** +// * Returns a list of strings with mcMMO's skills +// * This only includes misc skills +// *
+// * This function is designed for API usage. +// * +// * @return a list of strings with valid skill names +// */ +// public static List getMiscSkills() { +// return getListFromEnum(PrimarySkillType.MISC_SKILLS); +// } +// +// private static List getListFromEnum(List skillsTypes) { +// List skills = new ArrayList<>(); +// +// for (PrimarySkillType primarySkillType : skillsTypes) { +// skills.add(primarySkillType.name()); +// } +// +// return skills; +// } +//}