94 lines
2.3 KiB
Java
Raw Normal View History

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 {
// 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
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) {
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
* @return AbstractFlag
2014-09-25 16:39:13 +10:00
*/
2014-09-23 19:02:17 +02:00
public static AbstractFlag getFlag(String string) {
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) {
if ((getFlag(string) == null) && create) {
2014-09-23 19:02:17 +02:00
AbstractFlag flag = new AbstractFlag(string);
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<>();
for (Flag flag : plotFlags) {
flags.add(flag.getAbstractFlag());
}
2014-09-23 19:02:17 +02:00
return flags;
}
}