public static boolean addFlag(final AbstractFlag af, final boolean reserved) { PS.debug(C.PREFIX + "&8 - Adding flag: &7" + af); PS.get() .foreachPlotArea( new RunnableVal<PlotArea>() { @Override public void run(PlotArea value) { final Flag flag = value.DEFAULT_FLAGS.get(af.getKey()); if (flag != null) { flag.setKey(af); } } }); PS.get() .foreachPlotRaw( new RunnableVal<Plot>() { @Override public void run(Plot value) { final Flag flag = value.getFlags().get(af.getKey()); if (flag != null) { flag.setKey(af); } } }); if (flags.remove(af)) { PS.debug("(Replaced existing flag)"); } flags.add(af); if (reserved) { reserveFlag(af.getKey()); } return false; }
/** * Get an AbstractFlag by a string Returns null if flag does not exist * * @param string Flag Key * @return AbstractFlag */ public static AbstractFlag getFlag(final String string) { for (final AbstractFlag flag : flags) { if (flag.getKey().equalsIgnoreCase(string)) { return flag; } } return null; }
/** * Get a list of registered AbstractFlag objects based on player permissions * * @param player with permissions * @return List (AbstractFlag) */ public static List<AbstractFlag> getFlags(final PlotPlayer player) { final List<AbstractFlag> returnFlags = new ArrayList<>(); for (final AbstractFlag flag : flags) { if (Permissions.hasPermission(player, "plots.set.flag." + flag.getKey().toLowerCase())) { returnFlags.add(flag); } } return returnFlags; }