package me.fromgate.reactions.placeholders;
import org.bukkit.entity.Player;
public abstract class Placeholder {
private String id = "UNKNOWN";
private boolean needPlayer = false;
private String[] keys = {};
public Placeholder() {
if (this.getClass().isAnnotationPresent(PlaceholderDefine.class)) {
PlaceholderDefine pd = this.getClass().getAnnotation(PlaceholderDefine.class);
this.id = pd.id();
this.needPlayer = pd.needPlayer();
this.keys = pd.keys();
}
}
public String getId() {
return id;
}
public boolean playerRequired() {
return this.needPlayer;
}
public String[] getKeys() {
return keys;
}
protected boolean equalsIgnoreCase(String key, String... values) {
for (String s : values)
if (key.equalsIgnoreCase(s)) return true;
return false;
}
public boolean checkKey(String key) {
for (String k : this.getKeys()) {
if (k.equalsIgnoreCase(key)) return true;
}
return false;
}
/**
* Замена ключеового слова
*
* @param player - игрок, если он есть
* @param key - Ключевое слово, без параметра и символа "%" в начале
* @param param - Параметр (без завершающего символа "%")
* @return - возврат подстановки.
*/
public abstract String processPlaceholder(Player player, String key, String param);
}