diff options
Diffstat (limited to 'src/main/java/net/nemez/chatapi/click/ClickCallback.java')
-rw-r--r-- | src/main/java/net/nemez/chatapi/click/ClickCallback.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/net/nemez/chatapi/click/ClickCallback.java b/src/main/java/net/nemez/chatapi/click/ClickCallback.java new file mode 100644 index 0000000..10e8f00 --- /dev/null +++ b/src/main/java/net/nemez/chatapi/click/ClickCallback.java @@ -0,0 +1,46 @@ +package net.nemez.chatapi.click; + +import org.bukkit.command.CommandSender; + +import net.nemez.chatapi.ChatAPI; + +public abstract class ClickCallback { + + private boolean repeatable, async; + private String expiredMessage; + private boolean expired; + + public ClickCallback(boolean repeatable, boolean async, String expiredMessage) { + this.repeatable = repeatable; + this.async = async; + this.expiredMessage = expiredMessage; + this.expired = false; + } + + public abstract void run(CommandSender sender); + + public final void execute(CommandSender sender) { + if (!expired) { + run(sender); + }else{ + if (sender != null) { + sender.sendMessage(ChatAPI.colorify(null, expiredMessage)); + } + } + if (!repeatable) { + expired = true; + } + } + + public boolean isRepeatable() { + return repeatable; + } + + public boolean isAsynchronous() { + return async; + } + + public String getExpiredMessage() { + return expiredMessage; + } +} |