package de.tobiyas.racesandclasses.addins.placeholderapisupport; import java.text.DecimalFormat; import org.bukkit.entity.Player; import de.tobiyas.racesandclasses.RacesAndClasses; import de.tobiyas.racesandclasses.APIs.ClassAPI; import de.tobiyas.racesandclasses.APIs.LevelAPI; import de.tobiyas.racesandclasses.APIs.ManaAPI; import de.tobiyas.racesandclasses.APIs.RaceAPI; import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderHook; public class ClipRaCPlaceholderReplacer extends PlaceholderHook { /** * the plugin to use. */ private final RacesAndClasses plugin; /** * A small formatter. */ private final DecimalFormat format = new DecimalFormat("0.0"); public ClipRaCPlaceholderReplacer(RacesAndClasses plugin) { this.plugin = plugin; } /** * Registers the Placeholder. */ public void register(){ PlaceholderAPI.registerPlaceholderHook(plugin, this); } /** * Unregisters the Placeholder. */ public void unregister(){ PlaceholderAPI.unregisterPlaceholderHook(plugin); } @Override public String onPlaceholderRequest(Player player, String identifier) { if(identifier.equalsIgnoreCase("race")) return RaceAPI.getRaceNameOfPlayer(player); if(identifier.equalsIgnoreCase("class")) return ClassAPI.getClassNameOfPlayer(player); if(identifier.equalsIgnoreCase("mana")) return format.format(ManaAPI.getCurrentMana(player)); if(identifier.equalsIgnoreCase("maxmana")) return format.format(ManaAPI.getMaxMana(player)); if(identifier.equalsIgnoreCase("level")) return String.valueOf(LevelAPI.getCurrentLevel(player)); if(identifier.equalsIgnoreCase("exp")) return format.format(LevelAPI.getCurrentExpOfLevel(player)); if(identifier.equalsIgnoreCase("maxexp")) return format.format(LevelAPI.getMaxEXPToNextLevel(player)); return null; } /** * Replaces the Holders in the Key. * @param toReplace the text to replace. * @return the text that is replaced. */ public static String replace(Player player, String toReplace){ return PlaceholderAPI.setPlaceholders(player, toReplace); } }