package me.fromgate.reactions.util.playerselector; import me.fromgate.reactions.util.Param; import me.fromgate.reactions.util.Util; import org.bukkit.entity.Player; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class PlayerSelectors { private static List<PlayerSelector> selectors; public static void init() { selectors = new ArrayList<>(); addSelector(new Players()); addSelector(new WorldsPlayers()); addSelector(new LocSelector()); addSelector(new GroupPlayers()); addSelector(new PermPlayers()); addSelector(new RegionsPlayers()); addSelector(new FactionsPlayers()); } public static void addSelector(PlayerSelector selector) { if (selector == null) return; if (selector.getKey() == null) return; selectors.add(selector); } public static Set<Player> getPlayerList(Param param) { Set<Player> players = new HashSet<>(); for (PlayerSelector selector : selectors) { String selectorParam = param.getParam(selector.getKey()); if (selector.getKey().equalsIgnoreCase("loc") && param.isParamsExists("radius")) selectorParam = Util.join("loc:", selectorParam, " ", "radius:", param.getParam("radius", "1")); players.addAll(selector.selectPlayers(selectorParam)); } return players; } public static String[] getAllKeys() { String[] keys = new String[selectors.size()]; int i = 0; for (PlayerSelector s : selectors) { keys[i] = s.getKey(); i++; } return keys; } }