|
@@ -21,9 +21,7 @@ import org.bukkit.inventory.ItemStack;
|
|
|
import com.gmail.nossr50.mcMMO;
|
|
|
import com.gmail.nossr50.config.Config;
|
|
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
|
|
-import com.gmail.nossr50.datatypes.skills.AbilityType;
|
|
|
import com.gmail.nossr50.datatypes.skills.SkillType;
|
|
|
-import com.gmail.nossr50.datatypes.skills.ToolType;
|
|
|
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
|
|
|
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
|
|
|
import com.gmail.nossr50.locale.LocaleLoader;
|
|
@@ -84,23 +82,21 @@ public final class CombatUtils {
|
|
|
}
|
|
|
|
|
|
if (Permissions.skillEnabled(player, SkillType.SWORDS)) {
|
|
|
- boolean canSerratedStrike = Permissions.serratedStrikes(player); // So we don't have to check the same permission twice
|
|
|
+ SwordsManager swordsManager = mcMMOPlayer.getSwordsManager();
|
|
|
|
|
|
- if (mcMMOPlayer.getToolPreparationMode(ToolType.SWORD) && canSerratedStrike) {
|
|
|
+ if (swordsManager.canActivateAbility()) {
|
|
|
SkillUtils.abilityCheck(mcMMOPlayer, SkillType.SWORDS);
|
|
|
}
|
|
|
|
|
|
- SwordsManager swordsManager = mcMMOPlayer.getSwordsManager();
|
|
|
-
|
|
|
- if (Permissions.bleed(player)) {
|
|
|
+ if (swordsManager.canUseBleed()) {
|
|
|
swordsManager.bleedCheck(target);
|
|
|
}
|
|
|
|
|
|
- if (mcMMOPlayer.getAbilityMode(AbilityType.SERRATED_STRIKES) && canSerratedStrike) {
|
|
|
+ if (swordsManager.canUseSerratedStrike()) {
|
|
|
swordsManager.serratedStrikes(target, event.getDamage());
|
|
|
}
|
|
|
|
|
|
- startGainXp(mcMMOPlayer, target, SkillType.SWORDS);
|
|
|
+ startGainXp(swordsManager.getMcMMOPlayer(), target, SkillType.SWORDS);
|
|
|
}
|
|
|
}
|
|
|
else if (ItemUtils.isAxe(heldItem)) {
|
|
@@ -138,41 +134,37 @@ public final class CombatUtils {
|
|
|
}
|
|
|
}
|
|
|
else if (heldItem.getType() == Material.AIR) {
|
|
|
- if (targetIsPlayer || targetIsTamedPet) {
|
|
|
- if (!SkillType.UNARMED.getPVPEnabled()) {
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (!SkillType.UNARMED.getPVEEnabled()) {
|
|
|
+ if (((targetIsPlayer || targetIsTamedPet) && !SkillType.UNARMED.getPVPEnabled()) || (!targetIsPlayer && !targetIsTamedPet && !SkillType.UNARMED.getPVEEnabled())) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (Permissions.skillEnabled(player, SkillType.UNARMED)) {
|
|
|
- boolean canBerserk = Permissions.berserk(player); // So we don't have to check the same permission twice
|
|
|
+ UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
|
|
|
|
|
- if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && canBerserk) {
|
|
|
+ if (unarmedManager.canActivateAbility()) {
|
|
|
SkillUtils.abilityCheck(mcMMOPlayer, SkillType.UNARMED);
|
|
|
}
|
|
|
|
|
|
- UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
|
|
-
|
|
|
- if (Permissions.bonusDamage(player, SkillType.UNARMED)) {
|
|
|
+ if (unarmedManager.canUseIronArm()) {
|
|
|
event.setDamage(unarmedManager.ironArmCheck(event.getDamage()));
|
|
|
}
|
|
|
|
|
|
- if (mcMMOPlayer.getAbilityMode(AbilityType.BERSERK) && canBerserk) {
|
|
|
+ if (unarmedManager.canUseBerserk()) {
|
|
|
event.setDamage(unarmedManager.berserkDamage(event.getDamage()));
|
|
|
}
|
|
|
|
|
|
- if (target instanceof Player && Permissions.disarm(player)) {
|
|
|
- Player defender = (Player) target;
|
|
|
-
|
|
|
- if (defender.getItemInHand().getType() != Material.AIR) {
|
|
|
- unarmedManager.disarmCheck((Player) target);
|
|
|
- }
|
|
|
+ if (unarmedManager.canDisarm(target)) {
|
|
|
+ unarmedManager.disarmCheck((Player) target);
|
|
|
}
|
|
|
|
|
|
- startGainXp(mcMMOPlayer, target, SkillType.UNARMED);
|
|
|
+ startGainXp(unarmedManager.getMcMMOPlayer(), target, SkillType.UNARMED);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (heldItem.getType() == Material.BONE) {
|
|
|
+ TamingManager tamingManager = mcMMOPlayer.getTamingManager();
|
|
|
+
|
|
|
+ if (tamingManager.canUseBeastLore(target)) {
|
|
|
+ tamingManager.beastLore(target);
|
|
|
}
|
|
|
}
|
|
|
}
|