2014-09-23 19:02:17 +02:00
|
|
|
package com.intellectualcrafters.plot;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
public class FlagManager {
|
2014-09-27 10:52:12 +10:00
|
|
|
|
|
|
|
// TODO add some flags
|
|
|
|
// - Plot clear interval
|
|
|
|
// - Mob cap
|
|
|
|
// - customized plot composition
|
|
|
|
// - greeting / leaving message
|
|
|
|
// OR in the flag command, allow users to set worldguard flags.
|
2014-09-23 19:02:17 +02:00
|
|
|
|
2014-10-02 09:36:00 +10:00
|
|
|
private static ArrayList<AbstractFlag> flags = new ArrayList<AbstractFlag>();
|
2014-09-23 19:02:17 +02:00
|
|
|
|
2014-09-25 16:39:13 +10:00
|
|
|
/**
|
|
|
|
* Register an AbstractFlag with PlotSquared
|
|
|
|
* @param flag
|
|
|
|
* @return
|
|
|
|
*/
|
2014-09-23 19:02:17 +02:00
|
|
|
public static boolean addFlag(AbstractFlag flag) {
|
2014-09-24 22:21:43 +10:00
|
|
|
if (getFlag(flag.getKey()) != null) {
|
2014-09-23 19:02:17 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return flags.add(flag);
|
|
|
|
}
|
|
|
|
|
2014-09-25 16:39:13 +10:00
|
|
|
/**
|
|
|
|
* Get a list of registered AbstractFlag objects
|
|
|
|
* @return List (AbstractFlag)
|
|
|
|
*/
|
2014-09-23 19:02:17 +02:00
|
|
|
public static List<AbstractFlag> getFlags() {
|
|
|
|
return flags;
|
|
|
|
}
|
|
|
|
|
2014-09-25 16:39:13 +10:00
|
|
|
/**
|
|
|
|
* Get an AbstractFlag by a string
|
|
|
|
* Returns null if flag does not exist
|
|
|
|
* @param string
|
2014-09-26 22:53:42 +02:00
|
|
|
* @return AbstractFlag
|
2014-09-25 16:39:13 +10:00
|
|
|
*/
|
2014-09-23 19:02:17 +02:00
|
|
|
public static AbstractFlag getFlag(String string) {
|
2014-09-24 22:21:43 +10:00
|
|
|
for (AbstractFlag flag : flags) {
|
|
|
|
if (flag.getKey().equalsIgnoreCase(string)) {
|
2014-09-23 19:02:17 +02:00
|
|
|
return flag;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2014-09-25 16:39:13 +10:00
|
|
|
/**
|
|
|
|
* Get an AbstractFlag by a string
|
|
|
|
*
|
|
|
|
* @param string
|
|
|
|
* @param create
|
|
|
|
* If to create the flag if it does not exist
|
|
|
|
* @return AbstractFlag
|
|
|
|
*/
|
2014-09-23 19:02:17 +02:00
|
|
|
public static AbstractFlag getFlag(String string, boolean create) {
|
2014-09-24 22:21:43 +10:00
|
|
|
if ((getFlag(string) == null) && create) {
|
2014-09-23 19:02:17 +02:00
|
|
|
AbstractFlag flag = new AbstractFlag(string);
|
2014-09-26 22:53:42 +02:00
|
|
|
addFlag(flag);
|
2014-09-23 19:02:17 +02:00
|
|
|
return flag;
|
|
|
|
}
|
|
|
|
return getFlag(string);
|
|
|
|
}
|
2014-09-25 16:39:13 +10:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Remove a registered AbstractFlag
|
|
|
|
* @param flag
|
|
|
|
* @return boolean
|
|
|
|
* Result of operation
|
|
|
|
*/
|
|
|
|
public static boolean removeFlag(AbstractFlag flag) {
|
|
|
|
return flags.remove(flag);
|
|
|
|
}
|
2014-09-23 19:02:17 +02:00
|
|
|
|
2014-09-25 16:39:13 +10:00
|
|
|
/**
|
|
|
|
* Get the flags for a plot
|
|
|
|
* @param plot
|
|
|
|
* @return List (AbstractFlag)
|
|
|
|
*/
|
2014-09-23 19:02:17 +02:00
|
|
|
public static List<AbstractFlag> getPlotFlags(Plot plot) {
|
|
|
|
Set<Flag> plotFlags = plot.settings.getFlags();
|
|
|
|
List<AbstractFlag> flags = new ArrayList<>();
|
2014-09-24 22:21:43 +10:00
|
|
|
for (Flag flag : plotFlags) {
|
|
|
|
flags.add(flag.getAbstractFlag());
|
|
|
|
}
|
2014-09-23 19:02:17 +02:00
|
|
|
return flags;
|
|
|
|
}
|
|
|
|
}
|