diff --git a/Changelog.txt b/Changelog.txt index 16f628509..ec1a37b93 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -120,6 +120,7 @@ Version 2.1.0 ! (Skills) Arrow Retrieval now uses a rank system ! (Skills) Axes' Critical Strikes now uses a rank system ! (Skills) Axes' Greater Impact now uses a rank system + ! (Skills) Taming's Beast Lore now uses a rank system ! (Kraken) Removed everything involving the kraken = (Skills) Shake now sends custom damage types for better nocheat compat ! (Config) Unarmed.IronArm in advanced.yml is now Unarmed.IronArmStyle diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java index 8eec15ea5..333acb543 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java @@ -74,7 +74,7 @@ public enum SubSkillType { SWORDS_SERRATED_STRIKES(1), /* Taming */ - TAMING_BEAST_LORE, + TAMING_BEAST_LORE(1), TAMING_CALL_OF_THE_WILD, TAMING_ENVIRONMENTALLY_AWARE(1), TAMING_FAST_FOOD_SERVICE(1), diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java index a0168f8e7..4bdb9f4c1 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java @@ -40,6 +40,9 @@ public class HerbalismManager extends SkillManager { } public boolean canGreenThumbBlock(BlockState blockState) { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.HERBALISM_GREEN_THUMB)) + return false; + Player player = getPlayer(); ItemStack item = player.getInventory().getItemInMainHand(); @@ -47,6 +50,9 @@ public class HerbalismManager extends SkillManager { } public boolean canUseShroomThumb(BlockState blockState) { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.HERBALISM_SHROOM_THUMB)) + return false; + Player player = getPlayer(); PlayerInventory inventory = player.getInventory(); Material itemType = inventory.getItemInMainHand().getType(); @@ -55,6 +61,9 @@ public class HerbalismManager extends SkillManager { } public boolean canUseHylianLuck() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.HERBALISM_HYLIAN_LUCK)) + return false; + return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.HERBALISM_HYLIAN_LUCK); } diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java index cfabc82b3..288923412 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -37,6 +37,9 @@ public class MiningManager extends SkillManager { } public boolean canUseDemolitionsExpertise() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.MINING_DEMOLITIONS_EXPERTISE)) + return false; + return getSkillLevel() >= BlastMining.getDemolitionExpertUnlockLevel() && Permissions.demolitionsExpertise(getPlayer()); } @@ -52,6 +55,9 @@ public class MiningManager extends SkillManager { } public boolean canUseBiggerBombs() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.MINING_BIGGER_BOMBS)) + return false; + return getSkillLevel() >= BlastMining.getBiggerBombsUnlockLevel() && Permissions.biggerBombs(getPlayer()); } diff --git a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java index 313336a96..35d10b28b 100644 --- a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java @@ -36,10 +36,16 @@ public class SwordsManager extends SkillManager { } public boolean canUseCounterAttack(Entity target) { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.SWORDS_COUNTER_ATTACK)) + return false; + return target instanceof LivingEntity && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SWORDS_COUNTER_ATTACK); } public boolean canUseSerratedStrike() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.SWORDS_SERRATED_STRIKES)) + return false; + return mcMMOPlayer.getAbilityMode(SuperAbilityType.SERRATED_STRIKES) && Permissions.serratedStrikes(getPlayer()); } diff --git a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java index 927398f13..543d929cc 100644 --- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java @@ -21,6 +21,7 @@ import com.gmail.nossr50.util.player.NotificationManager; import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.random.RandomChanceUtil; import com.gmail.nossr50.util.skills.ParticleEffectUtils; +import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import org.bukkit.Location; import org.bukkit.Sound; @@ -67,6 +68,9 @@ public class TamingManager extends SkillManager { } public boolean canUseBeastLore() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.TAMING_BEAST_LORE)) + return false; + return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.TAMING_BEAST_LORE); } diff --git a/src/main/resources/skillranks.yml b/src/main/resources/skillranks.yml index b32469e3a..1582ec1de 100644 --- a/src/main/resources/skillranks.yml +++ b/src/main/resources/skillranks.yml @@ -156,6 +156,11 @@ Axes: Rank_3: 150 Rank_4: 200 Taming: + BeastLore: + Standard: + Rank_1: 2 + RetroMode: + Rank_1: 20 FastFoodService: Standard: Rank_1: 5