From b038a7b4444d4ee705e2062fc0abbe9201bb2c6d Mon Sep 17 00:00:00 2001 From: Gabriele C Date: Sun, 4 Nov 2018 12:32:33 +0100 Subject: [PATCH] Add DisallowedPVPEvent --- .../event/DisallowedPVPEvent.java | 27 +++++++++++++++++++ .../implementation/v7/EventListener.java | 18 ++++++++++++- pom.xml | 6 ++--- 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java diff --git a/api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java b/api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java new file mode 100644 index 0000000..3a150fd --- /dev/null +++ b/api/src/main/java/org/codemc/worldguardwrapper/event/DisallowedPVPEvent.java @@ -0,0 +1,27 @@ +package org.codemc.worldguardwrapper.event; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +@RequiredArgsConstructor +@Getter +public class DisallowedPVPEvent extends AbstractWrappedEvent { + + private static final HandlerList handlers = new HandlerList(); + + private final Player attacker; + private final Player defender; + private final Event cause; + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java index 5343efa..6c1fda4 100644 --- a/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java +++ b/implementation/v7/src/main/java/org/codemc/worldguardwrapper/implementation/v7/EventListener.java @@ -3,12 +3,13 @@ package org.codemc.worldguardwrapper.implementation.v7; import com.sk89q.worldguard.bukkit.event.block.UseBlockEvent; import com.sk89q.worldguard.bukkit.event.entity.DamageEntityEvent; import com.sk89q.worldguard.bukkit.event.entity.UseEntityEvent; +import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent; import lombok.NoArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.bukkit.event.Event.Result; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.Event.Result; import org.codemc.worldguardwrapper.event.AbstractWrappedEvent; @NoArgsConstructor @@ -80,4 +81,19 @@ public class EventListener implements Listener { } } + @EventHandler + public void onDisallowedPVP(DisallowedPVPEvent worldGuardEvent) { + AbstractWrappedEvent event = new org.codemc.worldguardwrapper.event.DisallowedPVPEvent( + worldGuardEvent.getAttacker(), + worldGuardEvent.getDefender(), + worldGuardEvent.getCause()); + Bukkit.getServer().getPluginManager().callEvent(event); + + if (event.getResult() != Result.DEFAULT) { + // DEFAULT = Result probably has not been touched by the handler, + // so don't touch the original result either. + worldGuardEvent.setCancelled(event.getResult() == Result.DENY); + } + } + } diff --git a/pom.xml b/pom.xml index 8bd3db7..f37c2c1 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ UTF-8 UTF-8 1.8 - 1.13-R0.1-SNAPSHOT + 1.13.2-R0.1-SNAPSHOT @@ -89,7 +89,7 @@ org.projectlombok lombok - 1.18.0 + 1.18.2 provided @@ -149,7 +149,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.1.1 + 3.2.0 false