|
@@ -38,10 +38,10 @@ import com.gmail.nossr50.skills.swords.Swords;
|
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
|
import com.gmail.nossr50.skills.swords.SwordsManager;
|
|
import com.gmail.nossr50.skills.taming.Taming;
|
|
import com.gmail.nossr50.skills.taming.Taming;
|
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
|
import com.gmail.nossr50.skills.taming.TamingManager;
|
|
|
|
+import com.gmail.nossr50.skills.unarmed.Unarmed;
|
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
|
import com.gmail.nossr50.skills.unarmed.UnarmedManager;
|
|
import com.gmail.nossr50.util.ItemChecks;
|
|
import com.gmail.nossr50.util.ItemChecks;
|
|
import com.gmail.nossr50.util.Misc;
|
|
import com.gmail.nossr50.util.Misc;
|
|
-import com.gmail.nossr50.util.Permissions;
|
|
|
|
import com.gmail.nossr50.util.Users;
|
|
import com.gmail.nossr50.util.Users;
|
|
|
|
|
|
public class Combat {
|
|
public class Combat {
|
|
@@ -58,7 +58,7 @@ public class Combat {
|
|
|
|
|
|
switch (damager.getType()) {
|
|
switch (damager.getType()) {
|
|
case PLAYER:
|
|
case PLAYER:
|
|
- Player attacker = (Player) event.getDamager();
|
|
|
|
|
|
+ Player attacker = (Player) damager;
|
|
|
|
|
|
if (Misc.isNPCPlayer(attacker)) {
|
|
if (Misc.isNPCPlayer(attacker)) {
|
|
return;
|
|
return;
|
|
@@ -184,29 +184,33 @@ public class Combat {
|
|
if (targetIsPlayer) {
|
|
if (targetIsPlayer) {
|
|
Player player = (Player) target;
|
|
Player player = (Player) target;
|
|
|
|
|
|
- AcrobaticsManager acrobaticsManager = new AcrobaticsManager(player);
|
|
|
|
- SwordsManager swordsManager = new SwordsManager(player);
|
|
|
|
-
|
|
|
|
if (damager instanceof Player) {
|
|
if (damager instanceof Player) {
|
|
if (Swords.pvpEnabled) {
|
|
if (Swords.pvpEnabled) {
|
|
|
|
+ SwordsManager swordsManager = new SwordsManager(player);
|
|
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
|
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
|
}
|
|
}
|
|
|
|
|
|
if (Acrobatics.pvpEnabled) {
|
|
if (Acrobatics.pvpEnabled) {
|
|
|
|
+ AcrobaticsManager acrobaticsManager = new AcrobaticsManager(player);
|
|
acrobaticsManager.dodgeCheck(event);
|
|
acrobaticsManager.dodgeCheck(event);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (Unarmed.pvpEnabled && player.getItemInHand().getType() == Material.AIR) {
|
|
|
|
+ UnarmedManager unarmedManager = new UnarmedManager(player);
|
|
|
|
+ unarmedManager.deflectCheck(event);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
if (Swords.pveEnabled && damager instanceof LivingEntity) {
|
|
if (Swords.pveEnabled && damager instanceof LivingEntity) {
|
|
|
|
+ SwordsManager swordsManager = new SwordsManager(player);
|
|
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
|
swordsManager.counterAttackChecks((LivingEntity) damager, event.getDamage());
|
|
}
|
|
}
|
|
|
|
|
|
if (Acrobatics.pveEnabled) {
|
|
if (Acrobatics.pveEnabled) {
|
|
- if (damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) {
|
|
|
|
- return;
|
|
|
|
|
|
+ if (!(damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled)) {
|
|
|
|
+ AcrobaticsManager acrobaticsManager = new AcrobaticsManager(player);
|
|
|
|
+ acrobaticsManager.dodgeCheck(event);
|
|
}
|
|
}
|
|
-
|
|
|
|
- acrobaticsManager.dodgeCheck(event);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -220,19 +224,11 @@ public class Combat {
|
|
* @param event The event to run the archery checks on.
|
|
* @param event The event to run the archery checks on.
|
|
*/
|
|
*/
|
|
public static void archeryCheck(Player shooter, LivingEntity target, EntityDamageByEntityEvent event) {
|
|
public static void archeryCheck(Player shooter, LivingEntity target, EntityDamageByEntityEvent event) {
|
|
- if (target instanceof Player) {
|
|
|
|
- Player defender = (Player) target;
|
|
|
|
-
|
|
|
|
- if (defender.getItemInHand().getType().equals(Material.AIR)) {
|
|
|
|
- if (configInstance.getUnarmedPVP()) {
|
|
|
|
- UnarmedManager unarmedManager = new UnarmedManager(defender);
|
|
|
|
- unarmedManager.deflectCheck(event);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ if (Misc.isNPCPlayer(shooter)) {
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
ArcheryManager archeryManager = new ArcheryManager(shooter);
|
|
ArcheryManager archeryManager = new ArcheryManager(shooter);
|
|
-
|
|
|
|
archeryManager.skillShot(event);
|
|
archeryManager.skillShot(event);
|
|
|
|
|
|
if (target instanceof Player) {
|
|
if (target instanceof Player) {
|
|
@@ -244,8 +240,7 @@ public class Combat {
|
|
}
|
|
}
|
|
|
|
|
|
if (target != shooter) {
|
|
if (target != shooter) {
|
|
- PlayerProfile profile = Users.getProfile(shooter);
|
|
|
|
- startGainXp(shooter, profile, target, SkillType.ARCHERY);
|
|
|
|
|
|
+ startGainXp(shooter, archeryManager.getProfile(), target, SkillType.ARCHERY);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -322,13 +317,7 @@ public class Combat {
|
|
}
|
|
}
|
|
|
|
|
|
for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) {
|
|
for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) {
|
|
- if (entity instanceof Player) {
|
|
|
|
- if (Misc.isNPCPlayer((Player) entity)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (!(entity instanceof LivingEntity)) {
|
|
|
|
|
|
+ if ((entity instanceof Player && Misc.isNPCPlayer((Player) entity)) || !(entity instanceof LivingEntity) || !shouldBeAffected(attacker, entity)) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -336,10 +325,6 @@ public class Combat {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- if (!shouldBeAffected(attacker, entity)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
PlayerAnimationEvent armswing = new PlayerAnimationEvent(attacker);
|
|
PlayerAnimationEvent armswing = new PlayerAnimationEvent(attacker);
|
|
mcMMO.p.getServer().getPluginManager().callEvent(armswing);
|
|
mcMMO.p.getServer().getPluginManager().callEvent(armswing);
|
|
|
|
|
|
@@ -503,19 +488,7 @@ public class Combat {
|
|
if (entity instanceof Player) {
|
|
if (entity instanceof Player) {
|
|
Player defender = (Player) entity;
|
|
Player defender = (Player) entity;
|
|
|
|
|
|
- if (!defender.getWorld().getPVP()) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (defender == player) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (PartyManager.getInstance().inSameParty(player, defender)) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (Users.getProfile(defender).getGodMode()) {
|
|
|
|
|
|
+ if (!defender.getWorld().getPVP() || defender == player || PartyManager.getInstance().inSameParty(player, defender) || Users.getProfile(defender).getGodMode()) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -528,9 +501,7 @@ public class Combat {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (entity instanceof Tameable) {
|
|
else if (entity instanceof Tameable) {
|
|
- Tameable pet = (Tameable) entity;
|
|
|
|
-
|
|
|
|
- if (Misc.isFriendlyPet(player, pet)) {
|
|
|
|
|
|
+ if (Misc.isFriendlyPet(player, (Tameable) entity)) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|