package com.comphenix.xp.expressions; import java.util.Collection; import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.comphenix.xp.Action; public class ParameterProviderSet { private ParameterProvider<Player> playerParameters; private ParameterProvider<Entity> entityParameters; private ParameterProvider<Block> blockParameters; private ParameterProvider<ItemStack> itemParameters; public ParameterProviderSet() { playerParameters = new ParameterProvider<Player>(""); entityParameters = new ParameterProvider<Entity>(""); blockParameters = new ParameterProvider<Block>(""); itemParameters = new ParameterProvider<ItemStack>(""); } /** * Retrieves every registered parameter for a player. * @param action - the triggering action. * @param player - player that is the target if this action (like being killed). * @return Every registered named parameter. */ public Collection<NamedParameter> getParameters(Action action, Player player) { return playerParameters.getParameters(action, player); } /** * Retrieves every registered parameter for an entity. * @param action - the triggering action. * @param entity - entity that is the target if this action (like being killed). * @return Every registered named parameter. */ public Collection<NamedParameter> getParameters(Action action, Entity entity) { return entityParameters.getParameters(action, entity); } /** * Retrieves every registered parameter for a block. * @param action - the triggering action. * @param block - block that is the target if this action (like being destroyed). * @return Every registered named parameter. */ public Collection<NamedParameter> getParameters(Action action, Block block) { return blockParameters.getParameters(action, block); } /** * Retrieves every registered parameter for an item. * @param action - the triggering action. * @param item - the item that is the target if this action (like being crafted). * @return Every registered named parameter. */ public Collection<NamedParameter> getParameters(Action action, ItemStack item) { return itemParameters.getParameters(action, item); } /** * Registers a player parameter service. * @param service - the service to register. */ public void registerPlayer(ParameterService<Player> service) { playerParameters.register(service); } /** * Registers an entity parameter service. * @param service - the service to register. */ public void registerEntity(ParameterService<Entity> service) { entityParameters.register(service); } /** * Registers a block parameter service. * @param service - the service to register. */ public void registerBlock(ParameterService<Block> service) { blockParameters.register(service); } /** * Registers an item parameter service. * @param service - the service to register. */ public void registerItem(ParameterService<ItemStack> service) { itemParameters.register(service); } /** * Sets whether or not a service is enabled. * @param name - name of the service. * @param value - TRUE to enable the service, FALSE otherwise. */ public void setEnabled(String name, Boolean value) { playerParameters.setEnabled(name, value); entityParameters.setEnabled(name, value); blockParameters.setEnabled(name, value); itemParameters.setEnabled(name, value); } /** * Enable all services. */ public void enableAll() { playerParameters.enableAll(); entityParameters.enableAll(); blockParameters.enableAll(); itemParameters.enableAll(); } /** * Get the player parameter provider. * @return Player parameter provider. */ public ParameterProvider<Player> getPlayerParameters() { return playerParameters; } /** * Get the entity parameter provider. * @return Entity parameter provider. */ public ParameterProvider<Entity> getEntityParameters() { return entityParameters; } /** * Get the block parameter provider. * @return Block parameter provider. */ public ParameterProvider<Block> getBlockParameters() { return blockParameters; } /** * Get the item parameter provider. * @return Item parameter provider. */ public ParameterProvider<ItemStack> getItemParameters() { return itemParameters; } }