From 77b252570709a7e4ff450478ae2ad96d6ff5ddd9 Mon Sep 17 00:00:00 2001 From: Andreas Troelsen Date: Sat, 12 Feb 2022 17:51:15 +0100 Subject: [PATCH] Cancel damage to players by pets. This is technically not necessary when pets are simple entities like wolves and zombies, because these types of pets will never target and thus attack other players in the arena. However, projectile entities such as Blazes and Ghasts may hit players in the line of fire, and so any such damage should be cancelled. Fixes #712 --- changelog.md | 1 + src/main/java/com/garbagemule/MobArena/ArenaListener.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 3808f23..29e28bc 100644 --- a/changelog.md +++ b/changelog.md @@ -36,6 +36,7 @@ These changes will (most likely) be included in the next version. - Block explosion events cancelled by other plugins now remain cancelled unless MobArena specifically uncancels them for an arena. - Flaming arrows now ignite TNT blocks in the arena. - Players no longer take fall damage when they leave (or get removed from) an arena while falling. +- Players no longer take damage from projectiles shot by pets of other players. ## [0.106] - 2021-05-09 ### Added diff --git a/src/main/java/com/garbagemule/MobArena/ArenaListener.java b/src/main/java/com/garbagemule/MobArena/ArenaListener.java index c0da4ad..bc70b9a 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaListener.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaListener.java @@ -731,6 +731,12 @@ public class ArenaListener } if (arena.inArena(player)) { + // Cancel damage from pets (and their projectiles) + if (monsters.hasPet(damager)) { + event.setCancelled(true); + return; + } + // Cancel PvP damage if disabled if (!pvpEnabled && damager instanceof Player && !damager.equals(player)) { event.setCancelled(true);