summaryrefslogtreecommitdiff
path: root/net/nemez/chatapi/click/ClickCallback.java
blob: c2d2a87561e3ac1b5d6234179499c4f01d612cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
	}
}