|
@@ -362,40 +362,30 @@ public class EntityListener implements Listener {
|
|
|
|
|
|
//Friendly fire checks
|
|
|
if (defender instanceof Player defendingPlayer) {
|
|
|
- Player attackingPlayer;
|
|
|
-
|
|
|
//If the attacker is a Player or a projectile belonging to a player
|
|
|
- if(attacker instanceof Projectile || attacker instanceof Player) {
|
|
|
- if(attacker instanceof Projectile projectile) {
|
|
|
- if(((Projectile) attacker).getShooter() instanceof Player) {
|
|
|
- attackingPlayer = (Player) projectile.getShooter();
|
|
|
-
|
|
|
- //Check for party friendly fire and cancel the event
|
|
|
- if (checkParties(event, defendingPlayer, attackingPlayer))
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
+ if(attacker instanceof Projectile projectile) {
|
|
|
+ if(projectile.getShooter() instanceof Player attackingPlayer && !attackingPlayer.equals(defendingPlayer)) {
|
|
|
+ //Check for party friendly fire and cancel the event
|
|
|
+ if (checkParties(event, defendingPlayer, attackingPlayer)) {
|
|
|
+ return;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- //Deflect checks
|
|
|
- final McMMOPlayer mcMMOPlayer = UserManager.getPlayer(defendingPlayer);
|
|
|
- if (mcMMOPlayer != null) {
|
|
|
- UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
|
|
+ //Deflect checks
|
|
|
+ final McMMOPlayer mcMMOPlayer = UserManager.getPlayer(defendingPlayer);
|
|
|
+ if (mcMMOPlayer != null) {
|
|
|
+ UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
|
|
|
|
|
|
- if (unarmedManager.canDeflect()) {
|
|
|
- if (projectile instanceof Arrow && unarmedManager.deflectCheck()) {
|
|
|
- event.setCancelled(true);
|
|
|
- return;
|
|
|
- }
|
|
|
+ if (unarmedManager.canDeflect()) {
|
|
|
+ if (projectile instanceof Arrow && unarmedManager.deflectCheck()) {
|
|
|
+ event.setCancelled(true);
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- attackingPlayer = (Player) attacker;
|
|
|
- //Check for party friendly fire and cancel the event
|
|
|
- if (checkParties(event, defendingPlayer, attackingPlayer))
|
|
|
- return;
|
|
|
}
|
|
|
+ } else if (attacker instanceof Player attackingPlayer){
|
|
|
+ if (checkParties(event, defendingPlayer, attackingPlayer))
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
|