package dmillerw.menu.data.click; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author dmillerw */ public enum ClickAction { COMMAND(false), KEYBIND(false), ITEM_USE(true), CATEGORY(false); private final boolean requiresServer; ClickAction(boolean requiresServer) { this.requiresServer = requiresServer; } private static ClickAction[] clientValues; private static ClickAction[] values; public static List<ClickAction> getClientValues() { if (clientValues == null) { List<ClickAction> temp = new ArrayList<ClickAction>(); for (ClickAction action : getValues()) { if (!action.requiresServer) { temp.add(action); } } clientValues = temp.toArray(new ClickAction[temp.size()]); } return Arrays.asList(clientValues); } public static List<ClickAction> getValues() { if (values == null) { values = values(); } return Arrays.asList(values); } public interface IClickAction { ClickAction getClickAction(); boolean onClicked(); void onRemoved(); } }