From e95b7986e4fc30dfb13d2590852799aaec09e1bc Mon Sep 17 00:00:00 2001 From: Frank van der Heijden <22407829+FrankHeijden@users.noreply.github.com> Date: Sat, 9 Jan 2021 18:11:28 +0100 Subject: [PATCH] Add the involved entities in PreventPvPEvent (#1186) --- .../GriefPrevention/EntityEventHandler.java | 14 ++++++------ .../events/PreventPvPEvent.java | 22 ++++++++++++++++++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/EntityEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/EntityEventHandler.java index f6d0b64..9f51373 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/EntityEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/EntityEventHandler.java @@ -819,7 +819,7 @@ public class EntityEventHandler implements Listener damagedData.lastClaim = damagedClaim; if (GriefPrevention.instance.claimIsPvPSafeZone(damagedClaim)) { - PreventPvPEvent pvpEvent = new PreventPvPEvent(damagedClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(damagedClaim, attacker, damaged); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { @@ -887,7 +887,7 @@ public class EntityEventHandler implements Listener GriefPrevention.instance.claimIsPvPSafeZone(attackerClaim)) { attackerData.lastClaim = attackerClaim; - PreventPvPEvent pvpEvent = new PreventPvPEvent(attackerClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(attackerClaim, attacker, defender); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { @@ -904,7 +904,7 @@ public class EntityEventHandler implements Listener GriefPrevention.instance.claimIsPvPSafeZone(defenderClaim)) { defenderData.lastClaim = defenderClaim; - PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim, attacker, defender); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { @@ -947,7 +947,7 @@ public class EntityEventHandler implements Listener GriefPrevention.instance.claimIsPvPSafeZone(defenderClaim)) { defenderData.lastClaim = defenderClaim; - PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim, attacker, defender); Bukkit.getPluginManager().callEvent(pvpEvent); //if other plugins aren't making an exception to the rule @@ -1047,7 +1047,7 @@ public class EntityEventHandler implements Listener message += " " + GriefPrevention.instance.dataStore.getMessage(Messages.IgnoreClaimsAdvertisement); if (sendErrorMessagesToPlayers) GriefPrevention.sendMessage(attacker, TextMode.Err, message); - PreventPvPEvent pvpEvent = new PreventPvPEvent(new Claim(subEvent.getEntity().getLocation(), subEvent.getEntity().getLocation(), null, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), null)); + PreventPvPEvent pvpEvent = new PreventPvPEvent(new Claim(subEvent.getEntity().getLocation(), subEvent.getEntity().getLocation(), null, new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), new ArrayList<>(), null), attacker, tameable); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { @@ -1441,7 +1441,7 @@ public class EntityEventHandler implements Listener if (attackerClaim != null && GriefPrevention.instance.claimIsPvPSafeZone(attackerClaim)) { attackerData.lastClaim = attackerClaim; - PreventPvPEvent pvpEvent = new PreventPvPEvent(attackerClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(attackerClaim, thrower, effectedPlayer); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { @@ -1455,7 +1455,7 @@ public class EntityEventHandler implements Listener if (defenderClaim != null && GriefPrevention.instance.claimIsPvPSafeZone(defenderClaim)) { defenderData.lastClaim = defenderClaim; - PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim); + PreventPvPEvent pvpEvent = new PreventPvPEvent(defenderClaim, thrower, effectedPlayer); Bukkit.getPluginManager().callEvent(pvpEvent); if (!pvpEvent.isCancelled()) { diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/events/PreventPvPEvent.java b/src/main/java/me/ryanhamshire/GriefPrevention/events/PreventPvPEvent.java index a07d657..c408e3d 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/events/PreventPvPEvent.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/events/PreventPvPEvent.java @@ -1,6 +1,8 @@ package me.ryanhamshire.GriefPrevention.events; import me.ryanhamshire.GriefPrevention.Claim; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; @@ -17,10 +19,14 @@ public class PreventPvPEvent extends Event implements Cancellable } Claim claim; + Player attacker; + Entity defender; - public PreventPvPEvent(Claim claim) + public PreventPvPEvent(Claim claim, Player attacker, Entity defender) { this.claim = claim; + this.attacker = attacker; + this.defender = defender; } public Claim getClaim() @@ -28,6 +34,20 @@ public class PreventPvPEvent extends Event implements Cancellable return this.claim; } + public Player getAttacker() + { + return attacker; + } + + /** + * @return The defender -- almost in all cases a player, unless the attacker damages a Tamable (pet), + * in which case the pet is returned. + */ + public Entity getDefender() + { + return defender; + } + @Override public HandlerList getHandlers() {