use of au.com.mineauz.minigames.menu.MenuItemString in project Minigames by AddstarMC.
the class NodeToolMode method onSetMode.
@Override
public void onSetMode(final MinigamePlayer player, MinigameTool tool) {
tool.addSetting("Node", "None");
final Menu m = new Menu(2, "Node Selection", player);
if (player.isInMenu()) {
m.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, player.getMenu()), m.getSize() - 9);
}
final MinigameTool ftool = tool;
m.addItem(new MenuItemString("Node Name", Material.PAPER, new Callback<String>() {
@Override
public void setValue(String value) {
ftool.changeSetting("Node", value);
}
@Override
public String getValue() {
return ftool.getSetting("Node");
}
}));
if (tool.getMinigame() != null) {
// Node selection menu
RegionModule module = RegionModule.getMinigameModule(tool.getMinigame());
Menu nodeMenu = new Menu(6, "Nodes", player);
List<MenuItem> items = new ArrayList<MenuItem>();
for (final Node node : module.getNodes()) {
MenuItemCustom item = new MenuItemCustom(node.getName(), Material.STONE_BUTTON);
// Set the node and go back to the main menu
item.setClick(new InteractionInterface() {
@Override
public Object interact(Object object) {
ftool.changeSetting("Node", node.getName());
m.displayMenu(player);
return object;
}
});
items.add(item);
}
nodeMenu.addItems(items);
nodeMenu.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, m), nodeMenu.getSize() - 9);
m.addItem(new MenuItemPage("Edit Node", Material.STONE_BUTTON, nodeMenu));
}
m.displayMenu(player);
}
use of au.com.mineauz.minigames.menu.MenuItemString 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);
}
use of au.com.mineauz.minigames.menu.MenuItemString in project Minigames by AddstarMC.
the class PlayerHasItemCondition method displayMenu.
@Override
public boolean displayMenu(MinigamePlayer player, Menu prev) {
Menu m = new Menu(3, "Player Has Item", player);
m.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, prev), m.getSize() - 9);
final MinigamePlayer fply = player;
m.addItem(new MenuItemString("Item", Material.STONE, new Callback<String>() {
@Override
public void setValue(String value) {
if (Material.getMaterial(value.toUpperCase()) != null)
type.setFlag(value.toUpperCase());
else
fply.sendMessage("Invalid Item!", "error");
}
@Override
public String getValue() {
return type.getFlag();
}
}));
m.addItem(useData.getMenuItem("Match Item Data", Material.ENDER_PEARL));
m.addItem(data.getMenuItem("Data Value", Material.EYE_OF_ENDER, 0, null));
m.addItem(new MenuItemList("Search Where", Material.COMPASS, new Callback<String>() {
@Override
public void setValue(String value) {
where.setFlag(value.toUpperCase());
}
@Override
public String getValue() {
return WordUtils.capitalizeFully(where.getFlag());
}
}, Arrays.asList("Anywhere", "Hotbar", "Main", "Armor", "Slot")));
m.addItem(slot.getMenuItem("Slot", Material.DIAMOND, 0, 35));
m.addItem(new MenuItemNewLine());
m.addItem(matchName.getMenuItem("Match Display Name", Material.NAME_TAG));
MenuItemString menuItem = (MenuItemString) name.getMenuItem("Display Name", Material.NAME_TAG, MinigameUtils.stringToList("The name to match.;Use % to do a wildcard match"));
menuItem.setAllowNull(true);
m.addItem(menuItem);
m.addItem(matchLore.getMenuItem("Match Lore", Material.BOOK));
menuItem = (MenuItemString) lore.getMenuItem("Lore", Material.BOOK, MinigameUtils.stringToList("The lore to match. Separate;with semi-colons;for new lines.;Use % to do a wildcard match"));
menuItem.setAllowNull(true);
m.addItem(menuItem);
addInvertMenuItem(m);
m.displayMenu(player);
return true;
}
use of au.com.mineauz.minigames.menu.MenuItemString in project Minigames by AddstarMC.
the class MatchBlockCondition method displayMenu.
@Override
public boolean displayMenu(MinigamePlayer player, Menu prev) {
Menu m = new Menu(3, "Match Block", player);
m.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, prev), m.getSize() - 9);
final MenuItemCustom c = new MenuItemCustom("Auto Set Block", MinigameUtils.stringToList("Click here with a;block you wish to;match to."), Material.ITEM_FRAME);
m.addItem(c, m.getSize() - 1);
final MinigamePlayer ply = m.getViewer();
final MenuItemString btype = new MenuItemString("Block Type", Material.STONE, new Callback<String>() {
@Override
public void setValue(String value) {
if (Material.matchMaterial(value.toUpperCase()) != null)
type.setFlag(value.toUpperCase());
else
ply.sendMessage("No block found by that name!", "error");
}
@Override
public String getValue() {
return type.getFlag();
}
});
m.addItem(btype);
final MenuItemBoolean busedur = (MenuItemBoolean) useDur.getMenuItem("Use Data Values", Material.ENDER_PEARL);
m.addItem(busedur);
final MenuItemInteger bdur = (MenuItemInteger) dur.getMenuItem("Data Value", Material.PAPER, 0, 16);
m.addItem(bdur);
c.setClickItem(new InteractionInterface() {
@Override
public Object interact(Object object) {
ItemStack i = (ItemStack) object;
type.setFlag(i.getType().toString());
useDur.setFlag(true);
dur.setFlag(((Short) i.getDurability()).intValue());
bdur.updateDescription();
busedur.updateDescription();
btype.updateDescription();
return c.getItem();
}
});
addInvertMenuItem(m);
m.displayMenu(player);
return true;
}
use of au.com.mineauz.minigames.menu.MenuItemString in project Minigames by AddstarMC.
the class ContainsEntityCondition method displayMenu.
@Override
public boolean displayMenu(MinigamePlayer player, Menu prev) {
Menu menu = new Menu(3, "Contians Entity", player);
menu.addItem(new MenuItemEnum<EntityType>("Entity Type", Material.MONSTER_EGGS, entityType.getCallback(), EntityType.class));
menu.addItem(new MenuItemNewLine());
menu.addItem(matchName.getMenuItem("Match Display Name", Material.NAME_TAG));
MenuItemString menuItem = (MenuItemString) customName.getMenuItem("Display Name", Material.NAME_TAG, MinigameUtils.stringToList("The name to match.;Use % to do a wildcard match"));
menuItem.setAllowNull(true);
menu.addItem(menuItem);
menu.addItem(new MenuItemPage("Back", Material.REDSTONE_TORCH_ON, prev), menu.getSize() - 9);
menu.displayMenu(player);
return true;
}
Aggregations