Search in sources :

Example 6 with InteractionInterface

use of au.com.mineauz.minigames.menu.InteractionInterface in project Minigames by AddstarMC.

the class Minigame method displayMenu.

public void displayMenu(MinigamePlayer player) {
    Menu main = new Menu(6, getName(false), player);
    Menu playerMenu = new Menu(6, getName(false), player);
    Menu loadouts = new Menu(6, getName(false), player);
    Menu flags = new Menu(6, getName(false), player);
    Menu lobby = new Menu(6, getName(false), player);
    List<MenuItem> itemsMain = new ArrayList<MenuItem>();
    itemsMain.add(enabled.getMenuItem("Enabled", Material.PAPER));
    itemsMain.add(usePermissions.getMenuItem("Use Permissions", Material.PAPER));
    List<String> mgTypes = new ArrayList<String>();
    for (MinigameType val : MinigameType.values()) {
        mgTypes.add(MinigameUtils.capitalize(val.toString().replace("_", " ")));
    }
    itemsMain.add(new MenuItemList("Game Type", Material.PAPER, getTypeCallback(), mgTypes));
    List<String> scoreTypes = new ArrayList<String>();
    for (GameMechanicBase val : GameMechanics.getGameMechanics()) {
        scoreTypes.add(MinigameUtils.capitalize(val.getMechanic()));
    }
    itemsMain.add(new MenuItemList("Game Mechanic", MinigameUtils.stringToList("Multiplayer Only"), Material.ROTTEN_FLESH, new Callback<String>() {

        @Override
        public void setValue(String value) {
            mechanic.setFlag(value.toLowerCase());
        }

        @Override
        public String getValue() {
            return MinigameUtils.capitalize(mechanic.getFlag());
        }
    }, scoreTypes));
    final MenuItemCustom mechSettings = new MenuItemCustom("Game Mechanic Settings", Material.PAPER);
    final Minigame mgm = this;
    final Menu fmain = main;
    mechSettings.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            if (getMechanic().displaySettings(mgm) != null && getMechanic().displaySettings(mgm).displayMechanicSettings(fmain))
                return null;
            return mechSettings.getItem();
        }
    });
    itemsMain.add(mechSettings);
    MenuItemString obj = (MenuItemString) objective.getMenuItem("Objective Description", Material.DIAMOND);
    obj.setAllowNull(true);
    itemsMain.add(obj);
    obj = (MenuItemString) gametypeName.getMenuItem("Gametype Description", Material.SIGN);
    obj.setAllowNull(true);
    itemsMain.add(obj);
    obj = (MenuItemString) displayName.getMenuItem("Display Name", Material.SIGN);
    obj.setAllowNull(true);
    itemsMain.add(obj);
    itemsMain.add(new MenuItemNewLine());
    itemsMain.add(minScore.getMenuItem("Min. Score", Material.STEP, MinigameUtils.stringToList("Multiplayer Only")));
    itemsMain.add(maxScore.getMenuItem("Max. Score", Material.STONE, MinigameUtils.stringToList("Multiplayer Only")));
    itemsMain.add(minPlayers.getMenuItem("Min. Players", Material.STEP, MinigameUtils.stringToList("Multiplayer Only")));
    itemsMain.add(maxPlayers.getMenuItem("Max. Players", Material.STONE, MinigameUtils.stringToList("Multiplayer Only")));
    itemsMain.add(spMaxPlayers.getMenuItem("Enable Singleplayer Max Players", Material.IRON_FENCE));
    itemsMain.add(displayScoreboard.getMenuItem("Display Scoreboard", Material.SIGN));
    itemsMain.add(new MenuItemPage("Lobby Settings", MinigameUtils.stringToList("Multiplayer Only"), Material.WOOD_DOOR, lobby));
    itemsMain.add(new MenuItemNewLine());
    itemsMain.add(new MenuItemTime("Time Length", MinigameUtils.stringToList("Multiplayer Only"), Material.WATCH, new Callback<Integer>() {

        @Override
        public void setValue(Integer value) {
            timer.setFlag(value);
        }

        @Override
        public Integer getValue() {
            return timer.getFlag();
        }
    }, 0, null));
    itemsMain.add(useXPBarTimer.getMenuItem("Use XP bar as Timer", Material.ENDER_PEARL));
    itemsMain.add(new MenuItemTime("Start Wait Time", MinigameUtils.stringToList("Multiplayer Only"), Material.WATCH, new Callback<Integer>() {

        @Override
        public void setValue(Integer value) {
            startWaitTime.setFlag(value);
        }

        @Override
        public Integer getValue() {
            return startWaitTime.getFlag();
        }
    }, 3, null));
    itemsMain.add(lateJoin.getMenuItem("Allow Late Join", Material.DEAD_BUSH, MinigameUtils.stringToList("Multiplayer Only")));
    itemsMain.add(new MenuItemDisplayWhitelist("Block Whitelist/Blacklist", MinigameUtils.stringToList("Blocks that can/can't;be broken"), Material.CHEST, getBlockRecorder().getWBBlocks(), getBlockRecorder().getWhitelistModeCallback()));
    itemsMain.add(new MenuItemNewLine());
    List<String> floorDegenDes = new ArrayList<String>();
    floorDegenDes.add("Mainly used to prevent");
    floorDegenDes.add("islanding in spleef Minigames.");
    List<String> floorDegenOpt = new ArrayList<String>();
    floorDegenOpt.add("Inward");
    floorDegenOpt.add("Circle");
    floorDegenOpt.add("Random");
    itemsMain.add(new MenuItemList("Floor Degenerator Type", floorDegenDes, Material.SNOW_BLOCK, new Callback<String>() {

        @Override
        public void setValue(String value) {
            degenType.setFlag(value.toLowerCase());
        }

        @Override
        public String getValue() {
            return MinigameUtils.capitalize(degenType.getFlag());
        }
    }, floorDegenOpt));
    List<String> degenRandDes = new ArrayList<String>();
    degenRandDes.add("Chance of block being");
    degenRandDes.add("removed on random");
    degenRandDes.add("degeneration.");
    itemsMain.add(degenRandomChance.getMenuItem("Random Floor Degen Chance", Material.SNOW, degenRandDes, 1, 100));
    itemsMain.add(floorDegenTime.getMenuItem("Floor Degenerator Delay", Material.WATCH, 1, null));
    itemsMain.add(new MenuItemTime("Regeneration Delay", MinigameUtils.stringToList("Time in seconds before;Minigame regeneration starts"), Material.WATCH, new Callback<Integer>() {

        @Override
        public void setValue(Integer value) {
            regenDelay.setFlag(value);
        }

        @Override
        public Integer getValue() {
            return regenDelay.getFlag();
        }
    }, 0, null));
    itemsMain.add(new MenuItemNewLine());
    itemsMain.add(new MenuItemPage("Player Settings", Material.SKULL_ITEM, playerMenu));
    List<String> thDes = new ArrayList<String>();
    thDes.add("Treasure hunt related");
    thDes.add("settings.");
    //		itemsMain.add(new MenuItemPage("Treasure Hunt Settings", thDes, Material.CHEST, treasureHunt));
    //		MenuItemDisplayLoadout defLoad = new MenuItemDisplayLoadout("Default Loadout", Material.DIAMOND_SWORD, LoadoutModule.getMinigameModule(this).getDefaultPlayerLoadout(), this);
    //		defLoad.setAllowDelete(false);
    //		itemsMain.add(defLoad);
    itemsMain.add(new MenuItemPage("Loadouts", Material.CHEST, loadouts));
    itemsMain.add(canSpectateFly.getMenuItem("Allow Spectator Fly", Material.FEATHER));
    List<String> rndChstDes = new ArrayList<String>();
    rndChstDes.add("Randomize items in");
    rndChstDes.add("chest upon first opening");
    itemsMain.add(randomizeChests.getMenuItem("Randomize Chests", Material.CHEST, rndChstDes));
    rndChstDes.clear();
    rndChstDes.add("Min. item randomization");
    itemsMain.add(minChestRandom.getMenuItem("Min. Chest Random", Material.STEP, rndChstDes, 0, null));
    rndChstDes.clear();
    rndChstDes.add("Max. item randomization");
    itemsMain.add(maxChestRandom.getMenuItem("Max. Chest Random", Material.STONE, rndChstDes, 0, null));
    itemsMain.add(new MenuItemStatisticsSettings(this, "Stat Settings", Material.BOOK_AND_QUILL));
    itemsMain.add(new MenuItemNewLine());
    //--------------//
    //Loadout Settings
    //--------------//
    List<MenuItem> mi = new ArrayList<MenuItem>();
    List<String> des = new ArrayList<String>();
    des.add("Shift + Right Click to Delete");
    for (String ld : LoadoutModule.getMinigameModule(this).getLoadouts()) {
        Material item = Material.THIN_GLASS;
        if (LoadoutModule.getMinigameModule(this).getLoadout(ld).getItems().size() != 0) {
            item = LoadoutModule.getMinigameModule(this).getLoadout(ld).getItem((Integer) LoadoutModule.getMinigameModule(this).getLoadout(ld).getItems().toArray()[0]).getType();
        }
        if (LoadoutModule.getMinigameModule(this).getLoadout(ld).isDeleteable())
            mi.add(new MenuItemDisplayLoadout(ld, des, item, LoadoutModule.getMinigameModule(this).getLoadout(ld), this));
        else
            mi.add(new MenuItemDisplayLoadout(ld, item, LoadoutModule.getMinigameModule(this).getLoadout(ld), this));
    }
    loadouts.addItem(new MenuItemLoadoutAdd("Add Loadout", Material.ITEM_FRAME, LoadoutModule.getMinigameModule(this).getLoadoutMap(), this), 53);
    loadouts.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, main), loadouts.getSize() - 9);
    loadouts.addItems(mi);
    main.addItems(itemsMain);
    main.addItem(new MenuItemSaveMinigame("Save " + getName(false), Material.REDSTONE_TORCH_ON, this), main.getSize() - 1);
    //----------------------//
    //Minigame Player Settings
    //----------------------//
    List<MenuItem> itemsPlayer = new ArrayList<MenuItem>(14);
    List<String> gmopts = new ArrayList<String>();
    for (GameMode gm : GameMode.values()) {
        gmopts.add(MinigameUtils.capitalize(gm.toString()));
    }
    itemsPlayer.add(new MenuItemList("Players Gamemode", Material.WORKBENCH, getDefaultGamemodeCallback(), gmopts));
    itemsPlayer.add(allowEnderpearls.getMenuItem("Allow Enderpearls", Material.ENDER_PEARL));
    itemsPlayer.add(itemDrops.getMenuItem("Allow Item Drops", Material.DIAMOND_SWORD));
    itemsPlayer.add(deathDrops.getMenuItem("Allow Death Drops", Material.SKULL_ITEM));
    itemsPlayer.add(itemPickup.getMenuItem("Allow Item Pickup", Material.DIAMOND));
    itemsPlayer.add(blockBreak.getMenuItem("Allow Block Break", Material.DIAMOND_PICKAXE));
    itemsPlayer.add(blockPlace.getMenuItem("Allow Block Place", Material.STONE));
    itemsPlayer.add(blocksdrop.getMenuItem("Allow Block Drops", Material.COBBLESTONE));
    itemsPlayer.add(lives.getMenuItem("Lives", Material.APPLE, 0, null));
    itemsPlayer.add(paintBallMode.getMenuItem("Paintball Mode", Material.SNOW_BALL));
    itemsPlayer.add(paintBallDamage.getMenuItem("Paintball Damage", Material.ARROW, 1, null));
    itemsPlayer.add(unlimitedAmmo.getMenuItem("Unlimited Ammo", Material.SNOW_BLOCK));
    itemsPlayer.add(allowMPCheckpoints.getMenuItem("Enable Multiplayer Checkpoints", Material.SIGN));
    itemsPlayer.add(saveCheckpoints.getMenuItem("Save Checkpoints", Material.SIGN, MinigameUtils.stringToList("Singleplayer Only")));
    itemsPlayer.add(new MenuItemPage("Flags", MinigameUtils.stringToList("Singleplayer flags"), Material.SIGN, flags));
    itemsPlayer.add(allowFlight.getMenuItem("Allow Flight", Material.FEATHER, MinigameUtils.stringToList("Allow flight to;be toggled")));
    itemsPlayer.add(enableFlight.getMenuItem("Enable Flight", Material.FEATHER, MinigameUtils.stringToList("Start players;in flight;(Must have Allow;Flight)")));
    itemsPlayer.add(allowDragonEggTeleport.getMenuItem("Allow Dragon Egg Teleport", Material.DRAGON_EGG));
    playerMenu.addItems(itemsPlayer);
    playerMenu.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, main), main.getSize() - 9);
    //--------------//
    //Minigame Flags//
    //--------------//
    List<MenuItem> itemsFlags = new ArrayList<MenuItem>(getFlags().size());
    for (String flag : getFlags()) {
        itemsFlags.add(new MenuItemFlag(Material.SIGN, flag, getFlags()));
    }
    flags.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, playerMenu), flags.getSize() - 9);
    flags.addItem(new MenuItemAddFlag("Add Flag", Material.ITEM_FRAME, this), flags.getSize() - 1);
    flags.addItems(itemsFlags);
    //--------------//
    //Lobby Settings//
    //--------------//
    List<MenuItem> itemsLobby = new ArrayList<MenuItem>(4);
    itemsLobby.add(new MenuItemBoolean("Can Interact on Player Wait", Material.STONE_BUTTON, LobbySettingsModule.getMinigameModule(this).getCanInteractPlayerWaitCallback()));
    itemsLobby.add(new MenuItemBoolean("Can Interact on Start Wait", Material.STONE_BUTTON, LobbySettingsModule.getMinigameModule(this).getCanInteractStartWaitCallback()));
    itemsLobby.add(new MenuItemBoolean("Can Move on Player Wait", Material.ICE, LobbySettingsModule.getMinigameModule(this).getCanMovePlayerWaitCallback()));
    itemsLobby.add(new MenuItemBoolean("Can Move on Start Wait", Material.ICE, LobbySettingsModule.getMinigameModule(this).getCanMoveStartWaitCallback()));
    itemsLobby.add(new MenuItemBoolean("Teleport After Player Wait", MinigameUtils.stringToList("Should players be teleported;after player wait time?"), Material.ENDER_PEARL, LobbySettingsModule.getMinigameModule(this).getTeleportOnPlayerWaitCallback()));
    itemsLobby.add(new MenuItemBoolean("Teleport on Start", MinigameUtils.stringToList("Should players teleport;to the start position;after lobby?"), Material.ENDER_PEARL, LobbySettingsModule.getMinigameModule(this).getTeleportOnStartCallback()));
    itemsLobby.add(new MenuItemInteger("Waiting for Players Time", MinigameUtils.stringToList("The time in seconds;the game will wait for;more players to join.;A value of 0 will use;the config setting"), Material.WATCH, LobbySettingsModule.getMinigameModule(this).getPlayerWaitTimeCallback(), 0, Integer.MAX_VALUE));
    lobby.addItems(itemsLobby);
    lobby.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, main), lobby.getSize() - 9);
    for (MinigameModule mod : getModules()) {
        mod.addEditMenuOptions(main);
    }
    main.displayMenu(player);
}
Also used : MinigameModule(au.com.mineauz.minigames.minigame.modules.MinigameModule) ArrayList(java.util.ArrayList) MenuItemStatisticsSettings(au.com.mineauz.minigames.menu.MenuItemStatisticsSettings) MenuItemString(au.com.mineauz.minigames.menu.MenuItemString) MenuItemAddFlag(au.com.mineauz.minigames.menu.MenuItemAddFlag) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom) MenuItemSaveMinigame(au.com.mineauz.minigames.menu.MenuItemSaveMinigame) MenuItemLoadoutAdd(au.com.mineauz.minigames.menu.MenuItemLoadoutAdd) InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) MenuItemTime(au.com.mineauz.minigames.menu.MenuItemTime) Menu(au.com.mineauz.minigames.menu.Menu) MenuItemInteger(au.com.mineauz.minigames.menu.MenuItemInteger) MenuItemPage(au.com.mineauz.minigames.menu.MenuItemPage) MenuItemNewLine(au.com.mineauz.minigames.menu.MenuItemNewLine) MenuItem(au.com.mineauz.minigames.menu.MenuItem) MinigameType(au.com.mineauz.minigames.gametypes.MinigameType) Material(org.bukkit.Material) MenuItemString(au.com.mineauz.minigames.menu.MenuItemString) MenuItemInteger(au.com.mineauz.minigames.menu.MenuItemInteger) MenuItemDisplayLoadout(au.com.mineauz.minigames.menu.MenuItemDisplayLoadout) GameMode(org.bukkit.GameMode) GameMechanicBase(au.com.mineauz.minigames.mechanics.GameMechanicBase) Callback(au.com.mineauz.minigames.menu.Callback) FutureCallback(com.google.common.util.concurrent.FutureCallback) MenuItemDisplayWhitelist(au.com.mineauz.minigames.menu.MenuItemDisplayWhitelist) MenuItemList(au.com.mineauz.minigames.menu.MenuItemList) MenuItemBoolean(au.com.mineauz.minigames.menu.MenuItemBoolean) ScriptObject(au.com.mineauz.minigames.script.ScriptObject) MenuItemSaveMinigame(au.com.mineauz.minigames.menu.MenuItemSaveMinigame) MenuItemFlag(au.com.mineauz.minigames.menu.MenuItemFlag)

Example 7 with InteractionInterface

use of au.com.mineauz.minigames.menu.InteractionInterface in project Minigames by AddstarMC.

the class LoadoutModule method displaySelectionMenu.

public void displaySelectionMenu(MinigamePlayer player, final boolean equip) {
    Menu m = new Menu(6, "Select Loadout", player);
    final MinigamePlayer fply = player;
    for (PlayerLoadout loadout : extraLoadouts.values()) {
        if (loadout.isDisplayedInMenu()) {
            if (!loadout.getUsePermissions() || player.getPlayer().hasPermission("minigame.loadout." + loadout.getName(false).toLowerCase())) {
                if (!player.getMinigame().isTeamGame() || loadout.getTeamColor() == null || player.getTeam().getColor() == loadout.getTeamColor()) {
                    MenuItemCustom c = new MenuItemCustom(loadout.getName(true), Material.GLASS);
                    if (!loadout.getItems().isEmpty()) {
                        ItemStack item = loadout.getItem(new ArrayList<Integer>(loadout.getItems()).get(0));
                        c.setItem(item);
                    }
                    final PlayerLoadout floadout2 = loadout;
                    c.setClick(new InteractionInterface() {

                        public Object interact(Object object) {
                            fply.setLoadout(floadout2);
                            fply.getPlayer().closeInventory();
                            if (!equip)
                                fply.sendMessage(MinigameUtils.getLang("player.loadout.nextSpawn"), null);
                            else {
                                fply.sendMessage(MinigameUtils.formStr("player.loadout.equipped", floadout2.getName(true)), null);
                                floadout2.equiptLoadout(fply);
                            }
                            return null;
                        }
                    });
                    m.addItem(c);
                }
            }
        }
    }
    m.displayMenu(player);
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) PlayerLoadout(au.com.mineauz.minigames.PlayerLoadout) ArrayList(java.util.ArrayList) Menu(au.com.mineauz.minigames.menu.Menu) ItemStack(org.bukkit.inventory.ItemStack) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom)

Example 8 with InteractionInterface

use of au.com.mineauz.minigames.menu.InteractionInterface in project Minigames by AddstarMC.

the class MenuItemActionAdd method onClick.

@Override
public ItemStack onClick() {
    Menu m = new Menu(6, "Actions", getContainer().getViewer());
    m.setPreviousPage(getContainer());
    Map<String, Menu> cats = new HashMap<>();
    List<String> acts = new ArrayList<>(Actions.getAllActionNames());
    Collections.sort(acts);
    for (String act : acts) {
        if ((Actions.getActionByName(act).useInNodes() && exec != null) || (Actions.getActionByName(act).useInRegions() && exec != null)) {
            String catname = Actions.getActionByName(act).getCategory();
            if (catname == null)
                catname = "misc actions";
            catname = catname.toLowerCase();
            Menu cat;
            if (!cats.containsKey(catname)) {
                cat = new Menu(6, MinigameUtils.capitalize(catname), getContainer().getViewer());
                cats.put(catname, cat);
                m.addItem(new MenuItemPage(MinigameUtils.capitalize(catname), Material.CHEST, cat));
                cat.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, m), cat.getSize() - 9);
            } else
                cat = cats.get(catname);
            MenuItemCustom c = new MenuItemCustom(MinigameUtils.capitalize(act), Material.PAPER);
            final String fact = act;
            c.setClick(new InteractionInterface() {

                @Override
                public Object interact(Object object) {
                    ActionInterface action = Actions.getActionByName(fact);
                    if (exec == null) {
                        exec.addAction(action);
                        getContainer().addItem(new MenuItemAction(MinigameUtils.capitalize(fact), Material.PAPER, exec, action));
                        getContainer().displayMenu(getContainer().getViewer());
                    } else {
                        exec.addAction(action);
                        getContainer().addItem(new MenuItemAction(MinigameUtils.capitalize(fact), Material.PAPER, exec, action));
                        getContainer().displayMenu(getContainer().getViewer());
                    }
                    return null;
                }
            });
            cat.addItem(c);
        }
    }
    m.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, getContainer()), m.getSize() - 9);
    m.displayMenu(getContainer().getViewer());
    return null;
}
Also used : HashMap(java.util.HashMap) MenuItemPage(au.com.mineauz.minigames.menu.MenuItemPage) ArrayList(java.util.ArrayList) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom) InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) ActionInterface(au.com.mineauz.minigamesregions.actions.ActionInterface) Menu(au.com.mineauz.minigames.menu.Menu)

Example 9 with InteractionInterface

use of au.com.mineauz.minigames.menu.InteractionInterface in project Minigames by AddstarMC.

the class ScoreboardDisplay method displayMenu.

public void displayMenu(MinigamePlayer player) {
    final Menu setupMenu = new Menu(3, "Setup Scoreboard", player);
    StatSettings settings = minigame.getSettings(stat);
    final MenuItemCustom statisticChoice = new MenuItemCustom("Statistic", Material.BOOK_AND_QUILL);
    statisticChoice.setDescription(Arrays.asList(ChatColor.GREEN + settings.getDisplayName()));
    final MenuItemCustom fieldChoice = new MenuItemCustom("Statistic Field", Material.PAPER);
    fieldChoice.setDescription(Arrays.asList(ChatColor.GREEN + field.getTitle()));
    statisticChoice.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            Menu childMenu = MinigameStats.createStatSelectMenu(setupMenu, new Callback<MinigameStat>() {

                @Override
                public MinigameStat getValue() {
                    throw new UnsupportedOperationException();
                }

                @Override
                public void setValue(MinigameStat value) {
                    stat = value;
                    StatSettings settings = minigame.getSettings(stat);
                    statisticChoice.setDescription(Arrays.asList(ChatColor.GREEN + settings.getDisplayName()));
                    // Check that the field is valid
                    StatValueField first = null;
                    boolean valid = false;
                    for (StatValueField sfield : settings.getFormat().getFields()) {
                        if (first == null) {
                            first = sfield;
                        }
                        if (sfield == field) {
                            valid = true;
                            break;
                        }
                    }
                    // Update the field
                    if (!valid) {
                        field = first;
                        fieldChoice.setDescription(Arrays.asList(ChatColor.GREEN + value.toString()));
                    }
                }
            });
            childMenu.displayMenu(setupMenu.getViewer());
            return null;
        }
    });
    fieldChoice.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            StatSettings settings = minigame.getSettings(stat);
            Menu childMenu = MinigameStats.createStatFieldSelectMenu(setupMenu, settings.getFormat(), new Callback<StatValueField>() {

                @Override
                public StatValueField getValue() {
                    throw new UnsupportedOperationException();
                }

                @Override
                public void setValue(StatValueField value) {
                    field = value;
                    fieldChoice.setDescription(Arrays.asList(ChatColor.GREEN + value.getTitle()));
                }
            });
            childMenu.displayMenu(setupMenu.getViewer());
            return null;
        }
    });
    setupMenu.addItem(statisticChoice);
    setupMenu.addItem(fieldChoice);
    List<String> sbotypes = new ArrayList<String>();
    for (ScoreboardOrder o : ScoreboardOrder.values()) {
        sbotypes.add(o.toString().toLowerCase());
    }
    setupMenu.addItem(new MenuItemList("Scoreboard Order", Material.ENDER_PEARL, new Callback<String>() {

        @Override
        public void setValue(String value) {
            order = ScoreboardOrder.valueOf(value.toUpperCase());
        }

        @Override
        public String getValue() {
            return order.toString().toLowerCase();
        }
    }, sbotypes));
    setupMenu.addItem(new MenuItemScoreboardSave("Create Scoreboard", Material.REDSTONE_TORCH_ON, this), setupMenu.getSize() - 1);
    setupMenu.displayMenu(player);
}
Also used : ArrayList(java.util.ArrayList) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom) MenuItemScoreboardSave(au.com.mineauz.minigames.menu.MenuItemScoreboardSave) StatValueField(au.com.mineauz.minigames.stats.StatValueField) FutureCallback(com.google.common.util.concurrent.FutureCallback) Callback(au.com.mineauz.minigames.menu.Callback) InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) MenuItemList(au.com.mineauz.minigames.menu.MenuItemList) MinigameStat(au.com.mineauz.minigames.stats.MinigameStat) Menu(au.com.mineauz.minigames.menu.Menu) StatSettings(au.com.mineauz.minigames.stats.StatSettings)

Example 10 with InteractionInterface

use of au.com.mineauz.minigames.menu.InteractionInterface in project Minigames by AddstarMC.

the class RewardsModule method addEditMenuOptions.

@Override
public void addEditMenuOptions(final Menu menu) {
    MenuItemCustom launcher = new MenuItemCustom("Reward Settings", Material.DIAMOND);
    launcher.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            Menu submenu = createSubMenu(menu);
            submenu.displayMenu(menu.getViewer());
            return null;
        }
    });
    menu.addItem(launcher);
}
Also used : InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) Menu(au.com.mineauz.minigames.menu.Menu) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom)

Aggregations

InteractionInterface (au.com.mineauz.minigames.menu.InteractionInterface)18 MenuItemCustom (au.com.mineauz.minigames.menu.MenuItemCustom)18 Menu (au.com.mineauz.minigames.menu.Menu)17 ArrayList (java.util.ArrayList)10 MenuItemPage (au.com.mineauz.minigames.menu.MenuItemPage)9 MinigamePlayer (au.com.mineauz.minigames.MinigamePlayer)6 Callback (au.com.mineauz.minigames.menu.Callback)6 MenuItemNewLine (au.com.mineauz.minigames.menu.MenuItemNewLine)5 MenuItemString (au.com.mineauz.minigames.menu.MenuItemString)5 MenuItem (au.com.mineauz.minigames.menu.MenuItem)4 MenuItemBoolean (au.com.mineauz.minigames.menu.MenuItemBoolean)4 MenuItemInteger (au.com.mineauz.minigames.menu.MenuItemInteger)4 MenuItemList (au.com.mineauz.minigames.menu.MenuItemList)4 MenuItemBack (au.com.mineauz.minigames.menu.MenuItemBack)2 MinigameTool (au.com.mineauz.minigames.tool.MinigameTool)2 FutureCallback (com.google.common.util.concurrent.FutureCallback)2 PlayerLoadout (au.com.mineauz.minigames.PlayerLoadout)1 MinigameType (au.com.mineauz.minigames.gametypes.MinigameType)1 GameMechanicBase (au.com.mineauz.minigames.mechanics.GameMechanicBase)1 MenuItemAddFlag (au.com.mineauz.minigames.menu.MenuItemAddFlag)1