From fb53c1811e38bdc4245e260595b815548cb09495 Mon Sep 17 00:00:00 2001 From: Frank van der Heijden <22407829+FrankHeijden@users.noreply.github.com> Date: Fri, 7 Aug 2020 18:50:07 +0200 Subject: [PATCH] Add the Visualization instance to VisualizationEvent (#945) --- .../GriefPrevention/PlayerEventHandler.java | 29 ++++++++++--------- .../VisualizationReversionTask.java | 2 +- .../events/VisualizationEvent.java | 24 +++++++++++---- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java index 6a2b86e..dc6bec1 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java @@ -1962,11 +1962,12 @@ class PlayerEventHandler implements Listener Bukkit.getPluginManager().callEvent(inspectionEvent); if (inspectionEvent.isCancelled()) return; - // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, claims, true)); - //visualize boundaries Visualization visualization = Visualization.fromClaims(claims, player.getEyeLocation().getBlockY(), VisualizationType.Claim, player.getLocation()); + + // alert plugins of a visualization + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, claims, true)); + Visualization.Apply(player, visualization); instance.sendMessage(player, TextMode.Info, Messages.ShowNearbyClaims, String.valueOf(claims.size())); @@ -1994,7 +1995,7 @@ class PlayerEventHandler implements Listener instance.sendMessage(player, TextMode.Err, Messages.TooFarAway); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, Collections.emptySet())); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, null, Collections.emptySet())); Visualization.Revert(player); return; @@ -2014,7 +2015,7 @@ class PlayerEventHandler implements Listener instance.sendMessage(player, TextMode.Info, Messages.BlockNotClaimed); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, Collections.emptySet())); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, null, Collections.emptySet())); Visualization.Revert(player); } @@ -2034,7 +2035,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(claim, player.getEyeLocation().getBlockY(), VisualizationType.Claim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, claim)); Visualization.Apply(player, visualization); @@ -2113,7 +2114,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(claim, clickedBlock.getY(), VisualizationType.ErrorClaim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, claim)); Visualization.Apply(player, visualization); @@ -2394,7 +2395,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(result.claim, clickedBlock.getY(), VisualizationType.ErrorClaim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, result.claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, result.claim)); Visualization.Apply(player, visualization); @@ -2408,7 +2409,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(result.claim, clickedBlock.getY(), VisualizationType.Claim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, result.claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, result.claim)); Visualization.Apply(player, visualization); playerData.lastShovelLocation = null; @@ -2425,7 +2426,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(claim, clickedBlock.getY(), VisualizationType.Claim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, claim)); Visualization.Apply(player, visualization); } @@ -2438,7 +2439,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(claim, clickedBlock.getY(), VisualizationType.ErrorClaim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, claim)); Visualization.Apply(player, visualization); } @@ -2477,7 +2478,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(newClaim, clickedBlock.getY(), VisualizationType.RestoreNature, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, newClaim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, newClaim)); Visualization.Apply(player, visualization); } @@ -2565,7 +2566,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(result.claim, clickedBlock.getY(), VisualizationType.ErrorClaim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, result.claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, result.claim)); Visualization.Apply(player, visualization); } @@ -2584,7 +2585,7 @@ class PlayerEventHandler implements Listener Visualization visualization = Visualization.FromClaim(result.claim, clickedBlock.getY(), VisualizationType.Claim, player.getLocation()); // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, result.claim)); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, visualization, result.claim)); Visualization.Apply(player, visualization); playerData.lastShovelLocation = null; diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/VisualizationReversionTask.java b/src/main/java/me/ryanhamshire/GriefPrevention/VisualizationReversionTask.java index 6820c36..d38cdb4 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/VisualizationReversionTask.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/VisualizationReversionTask.java @@ -45,7 +45,7 @@ class VisualizationReversionTask implements Runnable if (playerData.currentVisualization != visualization) return; // alert plugins of a visualization - Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, Collections.emptySet())); + Bukkit.getPluginManager().callEvent(new VisualizationEvent(player, null, Collections.emptySet())); Visualization.Revert(player); } diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/events/VisualizationEvent.java b/src/main/java/me/ryanhamshire/GriefPrevention/events/VisualizationEvent.java index d4156c8..c50c31c 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/events/VisualizationEvent.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/events/VisualizationEvent.java @@ -1,6 +1,7 @@ package me.ryanhamshire.GriefPrevention.events; import me.ryanhamshire.GriefPrevention.Claim; +import me.ryanhamshire.GriefPrevention.Visualization; import org.bukkit.entity.Player; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerEvent; @@ -14,6 +15,7 @@ import java.util.Collections; public class VisualizationEvent extends PlayerEvent { private static final HandlerList handlers = new HandlerList(); + private final Visualization visualization; private final Collection claims; private final boolean showSubdivides; private final boolean visualizingNearbyClaims; @@ -24,9 +26,10 @@ public class VisualizationEvent extends PlayerEvent * @param player Player receiving visuals * @param claim The claim being visualized (with subdivides), or null if visuals being removed */ - public VisualizationEvent(Player player, Claim claim) + public VisualizationEvent(Player player, Visualization visualization, Claim claim) { super(player); + this.visualization = visualization; this.claims = Collections.singleton(claim); this.showSubdivides = true; this.visualizingNearbyClaims = false; @@ -38,9 +41,9 @@ public class VisualizationEvent extends PlayerEvent * @param player Player receiving visuals * @param claims Claims being visualized (without subdivides) */ - public VisualizationEvent(Player player, Collection claims) + public VisualizationEvent(Player player, Visualization visualization, Collection claims) { - this(player, claims, false); + this(player, visualization, claims, false); } /** @@ -50,16 +53,27 @@ public class VisualizationEvent extends PlayerEvent * @param claims Claims being visualized (without subdivides) * @param visualizingNearbyClaims If the event is called on nearby claims (shift inspecting) */ - public VisualizationEvent(Player player, Collection claims, boolean visualizingNearbyClaims) + public VisualizationEvent(Player player, Visualization visualization, Collection claims, boolean visualizingNearbyClaims) { super(player); + this.visualization = visualization; this.claims = claims; this.showSubdivides = false; this.visualizingNearbyClaims = visualizingNearbyClaims; } /** - * Get the claims being visualized, or null if visualization being removed + * Get the visualization, or null if visualization being removed + * + * @return The visualization object + */ + public Visualization getVisualization() + { + return visualization; + } + + /** + * Get the claims being visualized, or an empty list if visualization being removed * * @return Claims being visualized */