diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java index 6f6acee65..9cf24c7cb 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java @@ -76,8 +76,8 @@ public class AlchemyCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canCatalysis = canUseSubskill(player, SubSkillType.ALCHEMY_CATALYSIS); - canConcoctions = canUseSubskill(player, SubSkillType.ALCHEMY_CONCOCTIONS); + canCatalysis = canUseSubskill(mmoPlayer, SubSkillType.ALCHEMY_CATALYSIS); + canConcoctions = canUseSubskill(mmoPlayer, SubSkillType.ALCHEMY_CONCOCTIONS); } @Override @@ -104,7 +104,7 @@ public class AlchemyCommand extends SkillCommand { protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.ALCHEMY); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.ALCHEMY); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java index 86041f302..c449cb494 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.util.skills.CombatUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java index 2bd23ba9d..733e67943 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java @@ -11,7 +11,6 @@ import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/CrossbowsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/CrossbowsCommand.java index 070b72f7d..6fb2d6b44 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/CrossbowsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/CrossbowsCommand.java @@ -1,11 +1,12 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.skills.crossbows.CrossbowManager; -import com.gmail.nossr50.util.TextComponentFactory; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.entity.Player; +import com.gmail.nossr50.util.text.TextComponentFactory; +import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -29,9 +30,9 @@ public class CrossbowsCommand extends SkillCommand { protected @NotNull List statsDisplay(@NotNull McMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); - CrossbowManager crossbowManager = mcMMO.getUserManager().getPlayer(player).getCrossbowManager(); + CrossbowManager crossbowManager = mmoPlayer.getCrossbowManager(); - if(canUseSubskill(player, SubSkillType.CROSSBOWS_SUPER_SHOTGUN)) { + if(canUseSubskill(mmoPlayer, SubSkillType.CROSSBOWS_SUPER_SHOTGUN)) { String additionalArrowCount = String.valueOf(crossbowManager.getSuperShotgunAdditionalArrowCount()); messages.add(getStatMessage(SubSkillType.CROSSBOWS_SUPER_SHOTGUN, additionalArrowCount)); } @@ -40,10 +41,10 @@ public class CrossbowsCommand extends SkillCommand { } @Override - protected List getTextComponents(Player player) { - List textComponents = new ArrayList<>(); + protected List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { + List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.CROSSBOWS); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.CROSSBOWS); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java index 5fd24c03e..f4ca42cf5 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -30,7 +29,7 @@ public class ExcavationCommand extends SkillCommand { protected void dataCalculations(@NotNull McMMOPlayer mmoPlayer, float skillValue) { // GIGA DRILL BREAKER if (canGigaDrill) { - String[] gigaDrillStrings = calculateLengthDisplayValues(player, skillValue); + String[] gigaDrillStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); gigaDrillBreakerLength = gigaDrillStrings[0]; gigaDrillBreakerLengthEndurance = gigaDrillStrings[1]; } @@ -38,8 +37,8 @@ public class ExcavationCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canGigaDrill = Permissions.gigaDrillBreaker(player) && RankUtils.hasUnlockedSubskill(player, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER); - canTreasureHunt = canUseSubskill(player, SubSkillType.EXCAVATION_ARCHAEOLOGY); + canGigaDrill = Permissions.gigaDrillBreaker(mmoPlayer.getPlayer()) && RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.EXCAVATION_GIGA_DRILL_BREAKER); + canTreasureHunt = canUseSubskill(mmoPlayer, SubSkillType.EXCAVATION_ARCHAEOLOGY); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java index 52b72af39..037fce7a5 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java @@ -54,14 +54,14 @@ public class MiningCommand extends SkillCommand { // DOUBLE DROPS if (canDoubleDrop) { - String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.MINING_DOUBLE_DROPS); + String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.MINING_DOUBLE_DROPS); doubleDropChance = doubleDropStrings[0]; doubleDropChanceLucky = doubleDropStrings[1]; } // SUPER BREAKER if (canSuperBreaker) { - String[] superBreakerStrings = calculateLengthDisplayValues(player, skillValue); + String[] superBreakerStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); superBreakerLength = superBreakerStrings[0]; superBreakerLengthEndurance = superBreakerStrings[1]; } @@ -69,11 +69,11 @@ public class MiningCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canBiggerBombs = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BIGGER_BOMBS) && Permissions.biggerBombs(player); - canBlast = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(player); - canDemoExpert = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(player); + canBiggerBombs = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BIGGER_BOMBS) && Permissions.biggerBombs(mmoPlayer.getPlayer()); + canBlast = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_BLAST_MINING) && Permissions.remoteDetonation(mmoPlayer.getPlayer()); + canDemoExpert = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_DEMOLITIONS_EXPERTISE) && Permissions.demolitionsExpertise(mmoPlayer.getPlayer()); canDoubleDrop = canUseSubskill(mmoPlayer, SubSkillType.MINING_DOUBLE_DROPS); - canSuperBreaker = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(player); + canSuperBreaker = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.MINING_SUPER_BREAKER) && Permissions.superBreaker(mmoPlayer.getPlayer()); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java index e562e9429..aabdadc96 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java @@ -1,10 +1,12 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; import com.gmail.nossr50.listeners.InteractionManager; import com.gmail.nossr50.locale.LocaleLoader; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.text.TextComponentFactory; import com.google.common.collect.ImmutableList; @@ -34,6 +36,13 @@ public class MmoInfoCommand implements TabExecutor { return false; Player player = (Player) commandSender; + McMMOPlayer mmoPlayer = mcMMO.getUserManager().queryPlayer(player); + + if(mmoPlayer == null) { + player.sendMessage(LocaleLoader.getString("Commands.NotLoaded")); + return true; + } + if(Permissions.mmoinfo(player)) { if(args == null || args[0] == null) @@ -48,7 +57,7 @@ public class MmoInfoCommand implements TabExecutor { return true; } else if(InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0])) { - displayInfo(player, args[0]); + displayInfo(mmoPlayer, args[0]); return true; } @@ -69,23 +78,23 @@ public class MmoInfoCommand implements TabExecutor { return ImmutableList.of(); } - private void displayInfo(Player player, String subSkillName) + private void displayInfo(@NotNull McMMOPlayer mmoPlayer, String subSkillName) { //Check to see if the skill exists in the new system AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName); if(abstractSubSkill != null) { /* New System Skills are programmable */ - abstractSubSkill.printInfo(player); + abstractSubSkill.printInfo(mmoPlayer.getPlayer()); //TextComponentFactory.sendPlayerUrlHeader(player); } else { /* * Skill is only in the old system */ - player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header")); - player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillName)); - player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader")); - player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill")); + mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header")); + mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", subSkillName)); + mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader")); + mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill")); } for(SubSkillType subSkillType : SubSkillType.values()) @@ -95,6 +104,6 @@ public class MmoInfoCommand implements TabExecutor { } //Send Player Wiki Link - TextComponentFactory.sendPlayerSubSkillWikiLink(player, subSkillName); + TextComponentFactory.sendPlayerSubSkillWikiLink(mmoPlayer, subSkillName); } } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java index 9da34028b..5f7f508e7 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java @@ -16,7 +16,6 @@ import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; import org.bukkit.Material; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -69,7 +68,7 @@ public class RepairCommand extends SkillCommand { // SUPER REPAIR if (canSuperRepair) { - String[] superRepairStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.REPAIR_SUPER_REPAIR); + String[] superRepairStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.REPAIR_SUPER_REPAIR); superRepairChance = superRepairStrings[0]; superRepairChanceLucky = superRepairStrings[1]; } @@ -77,17 +76,17 @@ public class RepairCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canSuperRepair = canUseSubskill(player, SubSkillType.REPAIR_SUPER_REPAIR); - canMasterRepair = canUseSubskill(player, SubSkillType.REPAIR_REPAIR_MASTERY); - canArcaneForge = canUseSubskill(player, SubSkillType.REPAIR_ARCANE_FORGING); - canRepairDiamond = Permissions.repairMaterialType(player, MaterialType.DIAMOND); - canRepairGold = Permissions.repairMaterialType(player, MaterialType.GOLD); - canRepairIron = Permissions.repairMaterialType(player, MaterialType.IRON); - canRepairStone = Permissions.repairMaterialType(player, MaterialType.STONE); - canRepairString = Permissions.repairMaterialType(player, MaterialType.STRING); - canRepairLeather = Permissions.repairMaterialType(player, MaterialType.LEATHER); - canRepairWood = Permissions.repairMaterialType(player, MaterialType.WOOD); - arcaneBypass = (Permissions.arcaneBypass(player) || Permissions.hasRepairEnchantBypassPerk(player)); + canSuperRepair = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_SUPER_REPAIR); + canMasterRepair = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_REPAIR_MASTERY); + canArcaneForge = canUseSubskill(mmoPlayer, SubSkillType.REPAIR_ARCANE_FORGING); + canRepairDiamond = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.DIAMOND); + canRepairGold = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.GOLD); + canRepairIron = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.IRON); + canRepairStone = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.STONE); + canRepairString = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.STRING); + canRepairLeather = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.LEATHER); + canRepairWood = Permissions.repairMaterialType(mmoPlayer.getPlayer(), MaterialType.WOOD); + arcaneBypass = (Permissions.arcaneBypass(mmoPlayer.getPlayer()) || Permissions.hasRepairEnchantBypassPerk(mmoPlayer.getPlayer())); } @Override @@ -95,7 +94,7 @@ public class RepairCommand extends SkillCommand { List messages = new ArrayList<>(); if (canArcaneForge) { - RepairManager repairManager = mcMMO.getUserManager().queryMcMMOPlayer(player).getRepairManager(); + RepairManager repairManager = mmoPlayer.getRepairManager(); messages.add(getStatMessage(false, true, SubSkillType.REPAIR_ARCANE_FORGING, diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java index 6bdb161e2..aaff8c18d 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SalvageCommand.java @@ -9,7 +9,6 @@ import com.gmail.nossr50.skills.salvage.SalvageManager; import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java index bdecbb4cd..7a30afa23 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java @@ -46,7 +46,7 @@ public class SmeltingCommand extends SkillCommand { // SECOND SMELT if (canSecondSmelt) { - String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SMELTING_SECOND_SMELT); + String[] secondSmeltStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SMELTING_SECOND_SMELT); str_secondSmeltChance = secondSmeltStrings[0]; str_secondSmeltChanceLucky = secondSmeltStrings[1]; } @@ -57,7 +57,7 @@ public class SmeltingCommand extends SkillCommand { canFuelEfficiency = canUseSubskill(mmoPlayer, SubSkillType.SMELTING_FUEL_EFFICIENCY); canSecondSmelt = canUseSubskill(mmoPlayer, SubSkillType.SMELTING_SECOND_SMELT); //canFluxMine = canUseSubskill(player, SubSkillType.SMELTING_FLUX_MINING); - canUnderstandTheArt = Permissions.vanillaXpBoost(mmoPlayer.getPlayer(), skill) && RankUtils.hasUnlockedSubskill(player, SubSkillType.SMELTING_UNDERSTANDING_THE_ART); + canUnderstandTheArt = Permissions.vanillaXpBoost(mmoPlayer.getPlayer(), skill) && RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.SMELTING_UNDERSTANDING_THE_ART); } @Override diff --git a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java index 0b3e6771f..fa465fa4a 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java @@ -11,7 +11,6 @@ import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -38,7 +37,7 @@ public class SwordsCommand extends SkillCommand { protected void dataCalculations(@NotNull McMMOPlayer mmoPlayer, float skillValue) { // SWORDS_COUNTER_ATTACK if (canCounter) { - String[] counterStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_COUNTER_ATTACK); + String[] counterStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SWORDS_COUNTER_ATTACK); counterChance = counterStrings[0]; counterChanceLucky = counterStrings[1]; } @@ -47,14 +46,14 @@ public class SwordsCommand extends SkillCommand { if (canBleed) { bleedLength = mmoPlayer.getSwordsManager().getRuptureBleedTicks(); - String[] bleedStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.SWORDS_RUPTURE); + String[] bleedStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.SWORDS_RUPTURE); bleedChance = bleedStrings[0]; bleedChanceLucky = bleedStrings[1]; } // SERRATED STRIKES if (canSerratedStrike) { - String[] serratedStrikesStrings = calculateLengthDisplayValues(player, skillValue); + String[] serratedStrikesStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); serratedStrikesLength = serratedStrikesStrings[0]; serratedStrikesLengthEndurance = serratedStrikesStrings[1]; } @@ -64,11 +63,11 @@ public class SwordsCommand extends SkillCommand { protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { canBleed = canUseSubskill(mmoPlayer, SubSkillType.SWORDS_RUPTURE); canCounter = canUseSubskill(mmoPlayer, SubSkillType.SWORDS_COUNTER_ATTACK); - canSerratedStrike = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.SWORDS_SERRATED_STRIKES) && Permissions.serratedStrikes(player); + canSerratedStrike = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.SWORDS_SERRATED_STRIKES) && Permissions.serratedStrikes(mmoPlayer.getPlayer()); } @Override - protected List statsDisplay(@NotNull McMMOPlayer mmoPlayer, Player player, float skillValue, boolean hasEndurance, boolean isLucky) { + protected @NotNull List statsDisplay(@NotNull McMMOPlayer mmoPlayer, float skillValue, boolean hasEndurance, boolean isLucky) { List messages = new ArrayList<>(); int ruptureTicks = mmoPlayer.getSwordsManager().getRuptureBleedTicks(); @@ -104,7 +103,7 @@ public class SwordsCommand extends SkillCommand { if(canUseSubskill(mmoPlayer, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK, 1000)))); } return messages; @@ -114,7 +113,7 @@ public class SwordsCommand extends SkillCommand { protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.SWORDS); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.SWORDS); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java index b41371daa..e22401d3f 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java @@ -1,5 +1,6 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; @@ -9,7 +10,7 @@ import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -35,7 +36,7 @@ public class TamingCommand extends SkillCommand { @Override protected void dataCalculations(@NotNull McMMOPlayer mmoPlayer, float skillValue) { if (canGore) { - String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.TAMING_GORE); + String[] goreStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.TAMING_GORE); goreChance = goreStrings[0]; goreChanceLucky = goreStrings[1]; } @@ -43,15 +44,15 @@ public class TamingCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canBeastLore = canUseSubskill(player, SubSkillType.TAMING_BEAST_LORE); - canCallWild = Permissions.callOfTheWild(player, EntityType.HORSE) || Permissions.callOfTheWild(player, EntityType.WOLF) || Permissions.callOfTheWild(player, EntityType.OCELOT); - canEnvironmentallyAware = canUseSubskill(player, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE); - canFastFood = canUseSubskill(player, SubSkillType.TAMING_FAST_FOOD_SERVICE); - canGore = canUseSubskill(player, SubSkillType.TAMING_GORE); - canSharpenedClaws = canUseSubskill(player, SubSkillType.TAMING_SHARPENED_CLAWS); - canShockProof = canUseSubskill(player, SubSkillType.TAMING_SHOCK_PROOF); - canThickFur = canUseSubskill(player, SubSkillType.TAMING_THICK_FUR); - canHolyHound = canUseSubskill(player, SubSkillType.TAMING_HOLY_HOUND); + canBeastLore = canUseSubskill(mmoPlayer, SubSkillType.TAMING_BEAST_LORE); + canCallWild = Permissions.callOfTheWild(mmoPlayer.getPlayer(), EntityType.HORSE) || Permissions.callOfTheWild(mmoPlayer.getPlayer(), EntityType.WOLF) || Permissions.callOfTheWild(mmoPlayer.getPlayer(), EntityType.OCELOT); + canEnvironmentallyAware = canUseSubskill(mmoPlayer, SubSkillType.TAMING_ENVIRONMENTALLY_AWARE); + canFastFood = canUseSubskill(mmoPlayer, SubSkillType.TAMING_FAST_FOOD_SERVICE); + canGore = canUseSubskill(mmoPlayer, SubSkillType.TAMING_GORE); + canSharpenedClaws = canUseSubskill(mmoPlayer, SubSkillType.TAMING_SHARPENED_CLAWS); + canShockProof = canUseSubskill(mmoPlayer, SubSkillType.TAMING_SHOCK_PROOF); + canThickFur = canUseSubskill(mmoPlayer, SubSkillType.TAMING_THICK_FUR); + canHolyHound = canUseSubskill(mmoPlayer, SubSkillType.TAMING_HOLY_HOUND); } @Override @@ -95,7 +96,7 @@ public class TamingCommand extends SkillCommand { protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, this.skill); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, this.skill); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/TridentsCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/TridentsCommand.java index c9c2cef21..bdd00aa42 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/TridentsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/TridentsCommand.java @@ -1,9 +1,10 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; -import com.gmail.nossr50.util.TextComponentFactory; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.entity.Player; +import com.gmail.nossr50.util.text.TextComponentFactory; +import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -29,10 +30,10 @@ public class TridentsCommand extends SkillCommand { } @Override - protected List getTextComponents(Player player) { - List textComponents = new ArrayList<>(); + protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { + List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.TRIDENTS); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.TRIDENTS); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java index 9afc840d3..3bff9e38c 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java @@ -10,7 +10,6 @@ import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -41,7 +40,7 @@ public class UnarmedCommand extends SkillCommand { protected void dataCalculations(@NotNull McMMOPlayer mmoPlayer, float skillValue) { // UNARMED_ARROW_DEFLECT if (canDeflect) { - String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_ARROW_DEFLECT); + String[] deflectStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_ARROW_DEFLECT); deflectChance = deflectStrings[0]; deflectChanceLucky = deflectStrings[1]; } @@ -55,7 +54,7 @@ public class UnarmedCommand extends SkillCommand { // UNARMED_DISARM if (canDisarm) { - String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_DISARM); + String[] disarmStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_DISARM); disarmChance = disarmStrings[0]; disarmChanceLucky = disarmStrings[1]; } @@ -67,7 +66,7 @@ public class UnarmedCommand extends SkillCommand { // IRON GRIP if (canIronGrip) { - String[] ironGripStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.UNARMED_IRON_GRIP); + String[] ironGripStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.UNARMED_IRON_GRIP); ironGripChance = ironGripStrings[0]; ironGripChanceLucky = ironGripStrings[1]; } @@ -75,7 +74,7 @@ public class UnarmedCommand extends SkillCommand { @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canBerserk = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.UNARMED_BERSERK) && Permissions.berserk(player); + canBerserk = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.UNARMED_BERSERK) && Permissions.berserk(mmoPlayer.getPlayer()); canIronArm = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_STEEL_ARM_STYLE); canDeflect = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_ARROW_DEFLECT); canDisarm = canUseSubskill(mmoPlayer, SubSkillType.UNARMED_DISARM); @@ -115,9 +114,9 @@ public class UnarmedCommand extends SkillCommand { //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.IronGrip", ironGripChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", ironGripChanceLucky) : "")); } - if(canUseSubskill(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) { + if(canUseSubskill(mmoPlayer, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) { messages.add(getStatMessage(SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, - String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, 1000)))); + String.valueOf(CombatUtils.getLimitBreakDamageAgainstQuality(mmoPlayer, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK, 1000)))); } return messages; @@ -127,7 +126,7 @@ public class UnarmedCommand extends SkillCommand { protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.UNARMED); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.UNARMED); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java index 948928bff..34c43bc37 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java @@ -1,5 +1,6 @@ package com.gmail.nossr50.commands.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.locale.LocaleLoader; @@ -8,7 +9,7 @@ import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import com.gmail.nossr50.util.text.TextComponentFactory; import net.kyori.adventure.text.Component; -import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -35,29 +36,29 @@ public class WoodcuttingCommand extends SkillCommand { protected void dataCalculations(@NotNull McMMOPlayer mmoPlayer, float skillValue) { // DOUBLE DROPS if (canDoubleDrop) { - setDoubleDropClassicChanceStrings(player); + setDoubleDropClassicChanceStrings(mmoPlayer); } // TREE FELLER if (canTreeFell) { - String[] treeFellerStrings = calculateLengthDisplayValues(player, skillValue); + String[] treeFellerStrings = calculateLengthDisplayValues(mmoPlayer, skillValue); treeFellerLength = treeFellerStrings[0]; treeFellerLengthEndurance = treeFellerStrings[1]; } } - private void setDoubleDropClassicChanceStrings(Player player) { - String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, SubSkillType.WOODCUTTING_HARVEST_LUMBER); + private void setDoubleDropClassicChanceStrings(McMMOPlayer mmoPlayer) { + String[] doubleDropStrings = getAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER); doubleDropChance = doubleDropStrings[0]; doubleDropChanceLucky = doubleDropStrings[1]; } @Override protected void permissionsCheck(@NotNull McMMOPlayer mmoPlayer) { - canTreeFell = RankUtils.hasUnlockedSubskill(player, SubSkillType.WOODCUTTING_TREE_FELLER) && Permissions.treeFeller(player); - canDoubleDrop = canUseSubskill(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && !skill.getDoubleDropsDisabled() && RankUtils.getRank(player, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1; - canLeafBlow = canUseSubskill(player, SubSkillType.WOODCUTTING_LEAF_BLOWER); - canKnockOnWood = canTreeFell && canUseSubskill(player, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD); + canTreeFell = RankUtils.hasUnlockedSubskill(mmoPlayer, SubSkillType.WOODCUTTING_TREE_FELLER) && Permissions.treeFeller(mmoPlayer.getPlayer()); + canDoubleDrop = canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER) && !skill.getDoubleDropsDisabled() && RankUtils.getRank(mmoPlayer, SubSkillType.WOODCUTTING_HARVEST_LUMBER) >= 1; + canLeafBlow = canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_LEAF_BLOWER); + canKnockOnWood = canTreeFell && canUseSubskill(mmoPlayer, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD); /*canSplinter = canUseSubskill(player, SubSkillType.WOODCUTTING_SPLINTER); canBarkSurgeon = canUseSubskill(player, SubSkillType.WOODCUTTING_BARK_SURGEON); canNaturesBounty = canUseSubskill(player, SubSkillType.WOODCUTTING_NATURES_BOUNTY);*/ @@ -75,7 +76,7 @@ public class WoodcuttingCommand extends SkillCommand { if (canKnockOnWood) { String lootNote; - if(RankUtils.hasReachedRank(2, player, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)) { + if(RankUtils.hasReachedRank(2, mmoPlayer, SubSkillType.WOODCUTTING_KNOCK_ON_WOOD)) { lootNote = LocaleLoader.getString("Woodcutting.SubSkill.KnockOnWood.Loot.Rank2"); } else { lootNote = LocaleLoader.getString("Woodcutting.SubSkill.KnockOnWood.Loot.Normal"); @@ -100,7 +101,7 @@ public class WoodcuttingCommand extends SkillCommand { protected @NotNull List getTextComponents(@NotNull McMMOPlayer mmoPlayer) { List textComponents = new ArrayList<>(); - TextComponentFactory.getSubSkillTextComponents(player, textComponents, PrimarySkillType.WOODCUTTING); + TextComponentFactory.getSubSkillTextComponents(mmoPlayer, textComponents, PrimarySkillType.WOODCUTTING); return textComponents; } diff --git a/src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java b/src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java index 4125338aa..3457f8be4 100644 --- a/src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java +++ b/src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java @@ -495,7 +495,7 @@ public class TextComponentFactory { if(subSkillType == SubSkillType.FISHING_MASTER_ANGLER && mcMMO.getCompatibilityManager().getMasterAnglerCompatibilityLayer() == null) continue; - if(Permissions.isSubSkillEnabled(mmoPlayer, subSkillType)) + if(Permissions.isSubSkillEnabled(mmoPlayer.getPlayer(), subSkillType)) { if(!InteractionManager.hasSubSkill(subSkillType)) textComponents.add(TextComponentFactory.getSubSkillTextComponent(mmoPlayer, subSkillType)); @@ -508,7 +508,7 @@ public class TextComponentFactory { { if(abstractSubSkill.getPrimarySkill() == parentSkill) { - if(Permissions.isSubSkillEnabled(mmoPlayer, abstractSubSkill)) + if(Permissions.isSubSkillEnabled(mmoPlayer.getPlayer(), abstractSubSkill)) textComponents.add(TextComponentFactory.getSubSkillTextComponent(mmoPlayer, abstractSubSkill)); } }