From 0d26d6c65bf38de567cd4eca75f7feba136b0417 Mon Sep 17 00:00:00 2001 From: RoboMWM Date: Wed, 4 Jan 2017 13:17:59 -0800 Subject: [PATCH] Implement DeniedMessageEvent Partially addresses #57 --- pom.xml | 2 +- .../GriefPrevention/DataStore.java | 8 ++- .../events/DeniedMessageEvent.java | 55 +++++++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 src/me/ryanhamshire/GriefPrevention/events/DeniedMessageEvent.java diff --git a/pom.xml b/pom.xml index 6f54b55..0d03c4c 100644 --- a/pom.xml +++ b/pom.xml @@ -58,7 +58,7 @@ org.bukkit bukkit - 1.11-R0.1-SNAPSHOT + 1.11.2-R0.1-SNAPSHOT provided diff --git a/src/me/ryanhamshire/GriefPrevention/DataStore.java b/src/me/ryanhamshire/GriefPrevention/DataStore.java index 215b6ed..1fff612 100644 --- a/src/me/ryanhamshire/GriefPrevention/DataStore.java +++ b/src/me/ryanhamshire/GriefPrevention/DataStore.java @@ -26,6 +26,7 @@ import java.util.regex.Pattern; import me.ryanhamshire.GriefPrevention.events.ClaimDeletedEvent; +import me.ryanhamshire.GriefPrevention.events.DeniedMessageEvent; import org.bukkit.*; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -41,6 +42,8 @@ import com.google.common.io.Files; //singleton class which manages all GriefPrevention data (except for config options) public abstract class DataStore { + private GriefPrevention instance; + //in-memory cache for player data protected ConcurrentHashMap playerNameToPlayerDataMap = new ConcurrentHashMap(); @@ -1682,8 +1685,11 @@ public abstract class DataStore String param = args[i]; message = message.replace("{" + i + "}", param); } + + DeniedMessageEvent event = new DeniedMessageEvent(messageID, message); + Bukkit.getPluginManager().callEvent(event); - return message; + return event.getMessage(); } //used in updating the data schema from 0 to 1. diff --git a/src/me/ryanhamshire/GriefPrevention/events/DeniedMessageEvent.java b/src/me/ryanhamshire/GriefPrevention/events/DeniedMessageEvent.java new file mode 100644 index 0000000..305e37f --- /dev/null +++ b/src/me/ryanhamshire/GriefPrevention/events/DeniedMessageEvent.java @@ -0,0 +1,55 @@ +package me.ryanhamshire.GriefPrevention.events; + +import me.ryanhamshire.GriefPrevention.Messages; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import javax.annotation.Nonnull; + +/** + * Called when GP is retrieving the denial message to send to the player when canceling an action + * + * @author RoboMWM + * Created 1/4/2017. + */ +public class DeniedMessageEvent extends Event +{ + // Custom Event Requirements + private static final HandlerList handlers = new HandlerList(); + public static HandlerList getHandlerList() { + return handlers; + } + @Override + public HandlerList getHandlers() { + return handlers; + } + + private String message; + private Messages messageID; + + public DeniedMessageEvent(Messages messageID, String message) + { + this.message = message; + this.messageID = messageID; + } + + public Messages getMessageID() + { + return this.messageID; + } + + public String getMessage() + { + return this.message; + } + + /** + * Sets the message to print to the player. + * @param message Cannot be null. Set to an empty string if you wish for no message to be printed. + */ + public void setMessage(@Nonnull String message) + { + this.message = message; + } + +}