public ConfigurationSection getConfigSection(String path) { return getPlaceholderAPI().getConfig() .getConfigurationSection("expansions." + getIdentifier() + "." + path); }
/** * The name of the plugin that this expansion hooks into. by default will return the deprecated * {@link #getPlugin()} method * * @return plugin name that this expansion requires to function */ public String getRequiredPlugin() { return getPlugin(); }
/** * If any requirements need to be checked before this expansion should register, you can check * them here * * @return true if this hook meets all the requirements to register */ public boolean canRegister() { return getRequiredPlugin() == null || Bukkit.getPluginManager().getPlugin(getRequiredPlugin()) != null; }
public boolean registerExpansion(PlaceholderExpansion expansion) { if (expansion == null || expansion.getIdentifier() == null) { return false; String pre = "expansions." + expansion.getIdentifier() + "."; FileConfiguration cfg = plugin.getConfig(); boolean save = false; plugin.getLogger() .info( "Your server version is not compatible with expansion: " + expansion.getIdentifier() + " version: " + expansion.getVersion()); return false; if (!expansion.canRegister()) { if (expansion.getRequiredPlugin() != null) { cache.put(expansion.getRequiredPlugin().toLowerCase(), expansion); if (!expansion.register()) { return false; plugin.getLogger().info("Successfully registered expansion: " + expansion.getIdentifier()); if (expansion instanceof Taskable) { ((Taskable) expansion).start(); CloudExpansion ce = plugin.getExpansionCloud().getCloudExpansion(expansion.getIdentifier()); if (ce != null) { ce.setHasExpansion(true); if (!ce.getLatestVersion().equals(expansion.getVersion())) { ce.setShouldUpdate(true);
return true; Msg.msg(s, "&7Placeholder expansion info for: &f" + ex.getName()); Msg.msg(s, "&7Status: " + (ex.isRegistered() ? "&aRegistered" : "&cNot registered")); if (ex.getAuthor() != null) { Msg.msg(s, "&7Created by: &f" + ex.getAuthor()); if (ex.getVersion() != null) { Msg.msg(s, "&7Version: &f" + ex.getVersion()); if (ex.getRequiredPlugin() != null) { Msg.msg(s, "&7Requires plugin: &f" + ex.getRequiredPlugin()); if (ex.getPlaceholders() != null) { Msg.msg(s, "&8&m-- &r&7Placeholders &8&m--"); for (String placeholder : ex.getPlaceholders()) { Msg.msg(s, placeholder); Msg.msg(s, "&aSuccessfully registered expansion: &f" + ex.getName()); } else if (args.length > 1 && args[0].equalsIgnoreCase("unregister")) { Msg.msg(s, "&aSuccessfully unregistered expansion: &f" + ex.getName()); } else { Msg.msg(s, "&cFailed to unregister expansion: &f" + ex.getName());
/** * The name of this expansion * * @return {@link #getIdentifier()} by default, name of this expansion if specified */ public String getName() { return getIdentifier(); }
private void setupMetrics() { Metrics m = new Metrics(this); m.addCustomChart(new Metrics.SimplePie("using_expansion_cloud", () -> getExpansionCloud() != null ? "yes" : "no")); m.addCustomChart( new Metrics.SimplePie("using_spigot", () -> getServerVersion().isSpigot() ? "yes" : "no")); m.addCustomChart(new Metrics.AdvancedPie("expansions_used", () -> { Map<String, Integer> map = new HashMap<>(); Map<String, PlaceholderHook> p = PlaceholderAPI.getPlaceholders(); if (!p.isEmpty()) { for (PlaceholderHook hook : p.values()) { if (hook instanceof PlaceholderExpansion) { PlaceholderExpansion ex = (PlaceholderExpansion) hook; map.put(ex.getRequiredPlugin() == null ? ex.getIdentifier() : ex.getRequiredPlugin(), 1); } } } return map; })); }
@EventHandler public void onEnable(PluginEnableEvent event) { ExpansionManager m = plugin.getExpansionManager(); PlaceholderExpansion e = m.getCachedExpansion(event.getPlugin().getName().toLowerCase()); if (e != null && e.canRegister()) { if (e.isRegistered() || m.registerExpansion(e)) { m.removeCachedExpansion(e.getRequiredPlugin()); } } }
if (loaded != null && loaded.isRegistered()) { PlaceholderAPI.unregisterPlaceholderHook(loaded.getIdentifier());
if (ex != null && ex.isRegistered()) { cexp.setHasExpansion(true); if (!ex.getVersion().equals(cexp.getLatestVersion())) { cexp.setShouldUpdate(true);
/** * Check if this placeholder identfier has already been registered * * @return true if the identifier for this expansion is already registered */ public boolean isRegistered() { Validate.notNull(getIdentifier(), "Placeholder identifier can not be null!"); return PlaceholderAPI.getRegisteredIdentifiers().contains(getIdentifier()); }
if (ex.getRequiredPlugin() == null) { continue; if (ex.getRequiredPlugin().equalsIgnoreCase(n)) { if (PlaceholderAPI.unregisterExpansion(ex)) { plugin.getLogger().info("Unregistered placeholder expansion: " + ex.getIdentifier());
@EventHandler public void onExpansionUnregister(ExpansionUnregisterEvent event) { if (event.getExpansion() instanceof Listener) { HandlerList.unregisterAll((Listener) event.getExpansion()); } if (event.getExpansion() instanceof Taskable) { ((Taskable) event.getExpansion()).stop(); } if (event.getExpansion() instanceof Cacheable) { ((Cacheable) event.getExpansion()).clear(); } if (plugin.getExpansionCloud() != null) { CloudExpansion ex = plugin.getExpansionCloud() .getCloudExpansion(event.getExpansion().getName()); if (ex != null) { ex.setHasExpansion(false); ex.setShouldUpdate(false); } } }
public String getString(String path, String def) { return getPlaceholderAPI().getConfig() .getString("expansions." + getIdentifier() + "." + path, def); }
/** * Attempt to register this PlaceholderExpansion * * @return true if this expansion is now registered with PlaceholderAPI */ public boolean register() { Validate.notNull(getIdentifier(), "Placeholder identifier can not be null!"); return PlaceholderAPI.registerExpansion(this); }
public long getLong(String path, long def) { return getPlaceholderAPI().getConfig() .getLong("expansions." + getIdentifier() + "." + path, def); }
@Override public void register() { Set<String> variables = Sets.newHashSet(); Collection<PlaceholderHook> hooks = PlaceholderAPI.getPlaceholders().values(); for (PlaceholderHook hook : hooks) { String variablePrefix = null; if (hook instanceof EZPlaceholderHook) { variablePrefix = ((EZPlaceholderHook) hook).getPlaceholderName(); } else if (hook instanceof PlaceholderExpansion) { variablePrefix = ((PlaceholderExpansion) hook).getIdentifier(); } if (variablePrefix != null) { variables.add(variablePrefix + "_*"); } } for (String variable : variables) { register(variable).supply(player -> PlaceholderAPI.setPlaceholders(player, '%' + variable + '%')); } } }
public Object get(String path, Object def) { return getPlaceholderAPI().getConfig().get("expansions." + getIdentifier() + "." + path, def); }
public static boolean unregisterExpansion(PlaceholderExpansion ex) { if (unregisterPlaceholderHook(ex.getIdentifier())) { Bukkit.getPluginManager().callEvent(new ExpansionUnregisterEvent(ex)); return true; } return false; }