package me.neznamy.tab.platforms.bukkit.features; import org.bukkit.entity.Player; import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.neznamy.tab.api.EnumProperty; import me.neznamy.tab.platforms.bukkit.Main; import me.neznamy.tab.shared.ITabPlayer; import me.neznamy.tab.shared.Shared; import me.neznamy.tab.shared.features.interfaces.Loadable; public class TabExpansion extends PlaceholderExpansion implements Loadable{ @Override public void load() { register(); } @Override public void unload() { try { PlaceholderAPI.unregisterExpansion(this); } catch (Exception ExpansionUnregisterEventMayOnlyBeTriggeredSynchronously) { // java.lang.IllegalStateException: ExpansionUnregisterEvent may only be triggered synchronously. } } @Override public boolean persist(){ return true; } @Override public boolean canRegister(){ return true; } @Override public String getAuthor(){ return Main.instance.getDescription().getAuthors().toString(); } @Override public String getIdentifier(){ return "tab"; } @Override public String getVersion(){ return Main.instance.getDescription().getVersion(); } @Override public String onPlaceholderRequest(Player player, String identifier){ if (player == null) return ""; ITabPlayer p = Shared.getPlayer(player.getUniqueId()); if (p == null) return ""; for (EnumProperty property : EnumProperty.values()) { if (identifier.equals(property.toString())) { return p.properties.get(property.toString()).lastReplacedValue; } if (identifier.equals(property.toString() + "_raw")) { return p.properties.get(property.toString()).getCurrentRawValue(); } } return null; } }