summaryrefslogtreecommitdiff
path: root/net/nemez/chatapi/click/ClickCallback.java
diff options
context:
space:
mode:
Diffstat (limited to 'net/nemez/chatapi/click/ClickCallback.java')
-rw-r--r--net/nemez/chatapi/click/ClickCallback.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/net/nemez/chatapi/click/ClickCallback.java b/net/nemez/chatapi/click/ClickCallback.java
new file mode 100644
index 0000000..c2d2a87
--- /dev/null
+++ b/net/nemez/chatapi/click/ClickCallback.java
@@ -0,0 +1,40 @@
+package net.nemez.chatapi.click;
+
+import org.bukkit.command.CommandSender;
+
+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);
+ }
+ if (!repeatable) {
+ expired = true;
+ }
+ }
+
+ public boolean isRepeatable() {
+ return repeatable;
+ }
+
+ public boolean isAsynchronous() {
+ return async;
+ }
+
+ public String getExpiredMessage() {
+ return expiredMessage;
+ }
+}