summaryrefslogtreecommitdiff
path: root/src/main/java/net/nemez/chatapi/click/ClickCallback.java
blob: f2e078e05ad4f1869930a9011714c77c4c60e065 (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
41
42
43
44
45
package net.nemez.chatapi.click;

import net.nemez.chatapi.ChatAPI;
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 final void execute(CommandSender sender) {
		if (!expired) {
			run(sender);
		} else {
			if (sender != null) {
				sender.sendMessage(ChatAPI.colorify(null, expiredMessage));
			}
		}
		if (!repeatable) {
			expired = true;
		}
	}

	public abstract void run(CommandSender sender);

	public boolean isRepeatable() {
		return repeatable;
	}

	public boolean isAsynchronous() {
		return async;
	}

	public String getExpiredMessage() {
		return expiredMessage;
	}
}