|
@@ -18,6 +18,8 @@ import com.gmail.nossr50.util.compat.layers.persistentdata.AbstractPersistentDat
|
|
|
import com.gmail.nossr50.util.experience.MMOExperienceBarManager;
|
|
|
import com.gmail.nossr50.util.player.NotificationManager;
|
|
|
import com.gmail.nossr50.util.text.StringUtils;
|
|
|
+import com.neetgames.mcmmo.exceptions.UnexpectedValueException;
|
|
|
+import com.neetgames.mcmmo.skill.SkillBossBarState;
|
|
|
import org.bukkit.Bukkit;
|
|
|
import org.bukkit.Location;
|
|
|
import org.bukkit.Material;
|
|
@@ -42,30 +44,30 @@ public final class SkillUtils {
|
|
|
*/
|
|
|
private SkillUtils() {}
|
|
|
|
|
|
- public static void applyXpGain(McMMOPlayer mmoPlayer, PrimarySkillType primarySkillType, float xp, XPGainReason xpGainReason) {
|
|
|
+ public static void applyXpGain(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType primarySkillType, float xp, @NotNull XPGainReason xpGainReason) {
|
|
|
mmoPlayer.getExperienceManager().beginXpGain(mmoPlayer.getPlayer(), primarySkillType, xp, xpGainReason, XPGainSource.SELF);
|
|
|
}
|
|
|
|
|
|
- public static void applyXpGain(McMMOPlayer mmoPlayer, PrimarySkillType primarySkillType, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
|
|
+ public static void applyXpGain(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType primarySkillType, float xp, @NotNull XPGainReason xpGainReason, @NotNull XPGainSource xpGainSource) {
|
|
|
mmoPlayer.getExperienceManager().beginXpGain(mmoPlayer.getPlayer(), primarySkillType, xp, xpGainReason, xpGainSource);
|
|
|
}
|
|
|
|
|
|
- public static MMOExperienceBarManager.BarState asBarState(String str) {
|
|
|
- for(MMOExperienceBarManager.BarState barState : MMOExperienceBarManager.BarState.values()) {
|
|
|
+ public static @NotNull SkillBossBarState asBarState(String str) {
|
|
|
+ for(SkillBossBarState barState : SkillBossBarState.values()) {
|
|
|
if(barState.toString().equalsIgnoreCase(str)) {
|
|
|
return barState;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
mcMMO.p.getLogger().severe("Unable to read bar state for value " + str + " setting to default instead.");
|
|
|
- return MMOExperienceBarManager.BarState.NORMAL;
|
|
|
+ return SkillBossBarState.NORMAL;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* Skill Stat Calculations
|
|
|
*/
|
|
|
|
|
|
- public static String[] calculateLengthDisplayValues(Player player, float skillValue, PrimarySkillType skill) {
|
|
|
+ public static @NotNull String[] calculateLengthDisplayValues(@NotNull McMMOPlayer mmoPlayer, float skillValue, @NotNull PrimarySkillType skill) {
|
|
|
int maxLength = skill.getSuperAbilityType().getMaxLength();
|
|
|
int abilityLengthVar = AdvancedConfig.getInstance().getAbilityLength();
|
|
|
int abilityLengthCap = AdvancedConfig.getInstance().getAbilityLengthCap();
|
|
@@ -79,7 +81,7 @@ public final class SkillUtils {
|
|
|
length = 2 + (int) (skillValue / abilityLengthVar);
|
|
|
}
|
|
|
|
|
|
- int enduranceLength = PerksUtils.handleActivationPerks(player, length, maxLength);
|
|
|
+ int enduranceLength = PerksUtils.handleActivationPerks(mmoPlayer.getPlayer(), length, maxLength);
|
|
|
|
|
|
if (maxLength != 0) {
|
|
|
length = Math.min(length, maxLength);
|
|
@@ -92,10 +94,10 @@ public final class SkillUtils {
|
|
|
* Others
|
|
|
*/
|
|
|
|
|
|
- public static int handleFoodSkills(Player player, int eventFoodLevel, SubSkillType subSkillType) {
|
|
|
- int curRank = RankUtils.getRank(player, subSkillType);
|
|
|
+ public static int handleFoodSkills(@NotNull McMMOPlayer mmoPlayer, int eventFoodLevel, @NotNull SubSkillType subSkillType) {
|
|
|
+ int curRank = RankUtils.getRank(mmoPlayer, subSkillType);
|
|
|
|
|
|
- int currentFoodLevel = player.getFoodLevel();
|
|
|
+ int currentFoodLevel = mmoPlayer.getPlayer().getFoodLevel();
|
|
|
int foodChange = eventFoodLevel - currentFoodLevel;
|
|
|
|
|
|
foodChange+=curRank;
|
|
@@ -108,12 +110,12 @@ public final class SkillUtils {
|
|
|
*
|
|
|
* @param deactivatedTimeStamp Time of deactivation
|
|
|
* @param cooldown The length of the cooldown
|
|
|
- * @param player The Player to check for cooldown perks
|
|
|
+ * @param mmoPlayer The Player to check for cooldown perks
|
|
|
*
|
|
|
* @return the number of seconds remaining before the cooldown expires
|
|
|
*/
|
|
|
- public static int calculateTimeLeft(long deactivatedTimeStamp, int cooldown, Player player) {
|
|
|
- return (int) (((deactivatedTimeStamp + (PerksUtils.handleCooldownPerks(player, cooldown) * Misc.TIME_CONVERSION_FACTOR)) - System.currentTimeMillis()) / Misc.TIME_CONVERSION_FACTOR);
|
|
|
+ public static int calculateTimeLeft(long deactivatedTimeStamp, int cooldown, @NotNull McMMOPlayer mmoPlayer) {
|
|
|
+ return (int) (((deactivatedTimeStamp + (PerksUtils.handleCooldownPerks(mmoPlayer.getPlayer(), cooldown) * Misc.TIME_CONVERSION_FACTOR)) - System.currentTimeMillis()) / Misc.TIME_CONVERSION_FACTOR);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -135,11 +137,11 @@ public final class SkillUtils {
|
|
|
* @param skillName The name of the skill to check
|
|
|
* @return true if this is a valid skill, false otherwise
|
|
|
*/
|
|
|
- public static boolean isSkill(String skillName) {
|
|
|
+ public static boolean isSkill(@NotNull String skillName) {
|
|
|
return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? PrimarySkillType.getSkill(skillName) != null : isLocalizedSkill(skillName);
|
|
|
}
|
|
|
|
|
|
- public static void sendSkillMessage(Player player, NotificationType notificationType, String key) {
|
|
|
+ public static void sendSkillMessage(@NotNull Player player, @NotNull NotificationType notificationType, @NotNull String key) {
|
|
|
Location location = player.getLocation();
|
|
|
|
|
|
for (Player otherPlayer : player.getWorld().getPlayers()) {
|
|
@@ -149,7 +151,7 @@ public final class SkillUtils {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void handleAbilitySpeedIncrease(Player player) {
|
|
|
+ public static void handleAbilitySpeedIncrease(@NotNull Player player) {
|
|
|
if (HiddenConfig.getInstance().useEnchantmentBuffs()) {
|
|
|
ItemStack heldItem = player.getInventory().getItemInMainHand();
|
|
|
|
|
@@ -245,7 +247,7 @@ public final class SkillUtils {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void handleDurabilityChange(ItemStack itemStack, int durabilityModifier) {
|
|
|
+ public static void handleDurabilityChange(@NotNull ItemStack itemStack, int durabilityModifier) {
|
|
|
handleDurabilityChange(itemStack, durabilityModifier, 1.0);
|
|
|
}
|
|
|
|
|
@@ -256,7 +258,7 @@ public final class SkillUtils {
|
|
|
* @param durabilityModifier the amount to modify the durability by
|
|
|
* @param maxDamageModifier the amount to adjust the max damage by
|
|
|
*/
|
|
|
- public static void handleDurabilityChange(ItemStack itemStack, double durabilityModifier, double maxDamageModifier) {
|
|
|
+ public static void handleDurabilityChange(@NotNull ItemStack itemStack, double durabilityModifier, double maxDamageModifier) {
|
|
|
if(itemStack.getItemMeta() != null && itemStack.getItemMeta().isUnbreakable()) {
|
|
|
return;
|
|
|
}
|
|
@@ -278,8 +280,7 @@ public final class SkillUtils {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- @Nullable
|
|
|
- public static Material getRepairAndSalvageItem(@NotNull ItemStack inHand) {
|
|
|
+ public static @Nullable Material getRepairAndSalvageItem(@NotNull ItemStack inHand) {
|
|
|
if (ItemUtils.isDiamondTool(inHand) || ItemUtils.isDiamondArmor(inHand)) {
|
|
|
return Material.DIAMOND;
|
|
|
}
|
|
@@ -306,11 +307,16 @@ public final class SkillUtils {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static int getRepairAndSalvageQuantities(ItemStack item) {
|
|
|
+ public static int getRepairAndSalvageQuantities(@NotNull ItemStack item) {
|
|
|
+ if(getRepairAndSalvageItem(item) == null) {
|
|
|
+ mcMMO.p.getLogger().severe("No value defined for item "+item.toString()+" in getRepairAndSalvageItem()");
|
|
|
+ throw new UnexpectedValueException();
|
|
|
+ }
|
|
|
+
|
|
|
return getRepairAndSalvageQuantities(item.getType(), getRepairAndSalvageItem(item));
|
|
|
}
|
|
|
|
|
|
- public static int getRepairAndSalvageQuantities(Material itemMaterial, Material recipeMaterial) {
|
|
|
+ public static int getRepairAndSalvageQuantities(@NotNull Material itemMaterial, @NotNull Material recipeMaterial) {
|
|
|
int quantity = 0;
|
|
|
|
|
|
if(mcMMO.getMaterialMapStore().isNetheriteTool(itemMaterial) || mcMMO.getMaterialMapStore().isNetheriteArmor(itemMaterial)) {
|