Search in sources :

Example 36 with MinigamePlayer

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

the class FinishSign method signUse.

@Override
public boolean signUse(Sign sign, MinigamePlayer player) {
    if (player.isInMinigame() && player.getPlayer().getInventory().getItemInMainHand().getType() == Material.AIR) {
        Minigame minigame = player.getMinigame();
        if (minigame.isSpectator(player) || minigame.getState() == MinigameState.ENDED) {
            return false;
        }
        if (!minigame.getFlags().isEmpty()) {
            if (player.getPlayer().isOnGround()) {
                if (plugin.pdata.checkRequiredFlags(player, minigame.getName(false)).isEmpty()) {
                    if (sign.getLine(2).isEmpty() || sign.getLine(2).equals(player.getMinigame().getName(false))) {
                        if (player.getMinigame().isTeamGame()) {
                            List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(player.getTeam().getPlayers());
                            List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size() - player.getTeam().getPlayers().size());
                            for (Team t : TeamsModule.getMinigameModule(minigame).getTeams()) {
                                if (t != player.getTeam())
                                    l.addAll(t.getPlayers());
                            }
                            plugin.pdata.endMinigame(minigame, w, l);
                        } else {
                            if (minigame.getType() == MinigameType.MULTIPLAYER) {
                                List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(1);
                                w.add(player);
                                List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size());
                                l.addAll(minigame.getPlayers());
                                l.remove(player);
                                plugin.pdata.endMinigame(minigame, w, l);
                            } else
                                plugin.pdata.endMinigame(player);
                        }
                        plugin.pdata.partyMode(player, 3, 10L);
                    }
                } else {
                    List<String> requiredFlags = plugin.pdata.checkRequiredFlags(player, minigame.getName(false));
                    String flags = "";
                    int num = requiredFlags.size();
                    for (int i = 0; i < num; i++) {
                        flags += requiredFlags.get(i);
                        if (i != num - 1) {
                            flags += ", ";
                        }
                    }
                    player.sendMessage(ChatColor.AQUA + "[Minigames] " + ChatColor.WHITE + MinigameUtils.getLang("sign.finish.requireFlags"));
                    player.sendMessage(ChatColor.GRAY + flags);
                }
            }
            return true;
        } else {
            if (player.getPlayer().isOnGround()) {
                if (player.getMinigame().isTeamGame()) {
                    List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(player.getTeam().getPlayers());
                    List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size() - player.getTeam().getPlayers().size());
                    for (Team t : TeamsModule.getMinigameModule(minigame).getTeams()) {
                        if (t != player.getTeam())
                            l.addAll(t.getPlayers());
                    }
                    plugin.pdata.endMinigame(minigame, w, l);
                } else {
                    if (minigame.getType() == MinigameType.MULTIPLAYER) {
                        List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(1);
                        w.add(player);
                        List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(minigame.getPlayers().size());
                        l.addAll(minigame.getPlayers());
                        l.remove(player);
                        plugin.pdata.endMinigame(minigame, w, l);
                    } else
                        plugin.pdata.endMinigame(player);
                }
                plugin.pdata.partyMode(player);
                return true;
            }
        }
    } else if (player.getPlayer().getInventory().getItemInMainHand().getType() != Material.AIR) {
        player.sendMessage(ChatColor.RED + "[Minigames] " + ChatColor.WHITE + MinigameUtils.getLang("sign.emptyHand"));
    }
    return false;
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList) Team(au.com.mineauz.minigames.minigame.Team) Minigame(au.com.mineauz.minigames.minigame.Minigame)

Example 37 with MinigamePlayer

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

the class MinigameTool method openMenu.

public void openMenu(MinigamePlayer player) {
    Menu men = new Menu(2, "Set Tool Mode", player);
    final MenuItemCustom miselect = new MenuItemCustom("Select", MinigameUtils.stringToList("Selects and area;or points visually"), Material.DIAMOND_BLOCK);
    final MenuItemCustom mideselect = new MenuItemCustom("Deselect", MinigameUtils.stringToList("Deselects an;area or points"), Material.GLASS);
    final MinigamePlayer fply = player;
    miselect.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            if (mode != null) {
                mode.select(fply, minigame, TeamsModule.getMinigameModule(minigame).getTeam(team));
            }
            return miselect.getItem();
        }
    });
    mideselect.setClick(new InteractionInterface() {

        @Override
        public Object interact(Object object) {
            if (mode != null) {
                mode.deselect(fply, minigame, TeamsModule.getMinigameModule(minigame).getTeam(team));
            }
            return mideselect.getItem();
        }
    });
    men.addItem(mideselect, men.getSize() - 1);
    men.addItem(miselect, men.getSize() - 2);
    List<String> teams = new ArrayList<String>(TeamColor.values().length + 1);
    for (TeamColor col : TeamColor.values()) teams.add(MinigameUtils.capitalize(col.toString().replace("_", " ")));
    teams.add("None");
    men.addItem(new MenuItemToolTeam("Team", Material.PAPER, new Callback<String>() {

        @Override
        public void setValue(String value) {
            setTeam(TeamColor.matchColor(value.replace(" ", "_")));
        }

        @Override
        public String getValue() {
            if (getTeam() != null)
                return MinigameUtils.capitalize(getTeam().toString().replace("_", " "));
            return "None";
        }
    }, teams), men.getSize() - 3);
    for (ToolMode m : ToolModes.getToolModes()) {
        men.addItem(new MenuItemToolMode(m.getDisplayName(), MinigameUtils.stringToList(m.getDescription()), m.getIcon(), m));
    }
    men.displayMenu(player);
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList) TeamColor(au.com.mineauz.minigames.minigame.TeamColor) MenuItemCustom(au.com.mineauz.minigames.menu.MenuItemCustom) MenuItemToolMode(au.com.mineauz.minigames.menu.MenuItemToolMode) MenuItemToolMode(au.com.mineauz.minigames.menu.MenuItemToolMode) Callback(au.com.mineauz.minigames.menu.Callback) InteractionInterface(au.com.mineauz.minigames.menu.InteractionInterface) MenuItemToolTeam(au.com.mineauz.minigames.menu.MenuItemToolTeam) Menu(au.com.mineauz.minigames.menu.Menu)

Example 38 with MinigamePlayer

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

the class RegionDisplayManager method update.

public void update(Region region) {
    Set<MinigamePlayer> watchers = Sets.newHashSet(activeWatchers.get(region));
    ArmorStand stand = nameDisplay.remove(region);
    if (stand != null)
        stand.remove();
    for (MinigamePlayer player : watchers) {
        hide(region, player);
        show(region, player);
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArmorStand(org.bukkit.entity.ArmorStand)

Example 39 with MinigamePlayer

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

the class RegionDisplayManager method hideAll.

public void hideAll(Player player) {
    MinigamePlayer mplayer = Minigames.plugin.pdata.getMinigamePlayer(player);
    Map<Region, IDisplayObject> regions = regionDisplays.remove(player);
    if (regions != null) {
        for (IDisplayObject display : regions.values()) {
            display.remove();
        }
        for (Region region : regions.keySet()) {
            hideInfo(region, mplayer);
        }
    }
    Map<Node, IDisplayObject> nodes = nodeDisplays.remove(player);
    if (nodes != null) {
        for (IDisplayObject display : nodes.values()) {
            display.remove();
        }
        for (Node node : nodes.keySet()) {
            hideInfo(node, mplayer);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) IDisplayObject(au.com.mineauz.minigames.display.IDisplayObject)

Example 40 with MinigamePlayer

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

the class RegionDisplayManager method update.

public void update(Node node) {
    Set<MinigamePlayer> watchers = Sets.newHashSet(activeWatchers.get(node));
    ArmorStand stand = nameDisplay.remove(node);
    if (stand != null)
        stand.remove();
    for (MinigamePlayer player : watchers) {
        hide(node, player);
        show(node, player);
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArmorStand(org.bukkit.entity.ArmorStand)

Aggregations

MinigamePlayer (au.com.mineauz.minigames.MinigamePlayer)96 Minigame (au.com.mineauz.minigames.minigame.Minigame)32 EventHandler (org.bukkit.event.EventHandler)30 Team (au.com.mineauz.minigames.minigame.Team)22 ArrayList (java.util.ArrayList)22 Menu (au.com.mineauz.minigames.menu.Menu)11 Player (org.bukkit.entity.Player)11 Location (org.bukkit.Location)9 MenuItemPage (au.com.mineauz.minigames.menu.MenuItemPage)7 InteractionInterface (au.com.mineauz.minigames.menu.InteractionInterface)6 MenuItemCustom (au.com.mineauz.minigames.menu.MenuItemCustom)6 MenuItemString (au.com.mineauz.minigames.menu.MenuItemString)6 List (java.util.List)6 Callback (au.com.mineauz.minigames.menu.Callback)5 MenuItemNewLine (au.com.mineauz.minigames.menu.MenuItemNewLine)5 TeamColor (au.com.mineauz.minigames.minigame.TeamColor)5 MinigameTool (au.com.mineauz.minigames.tool.MinigameTool)4 MenuItemBoolean (au.com.mineauz.minigames.menu.MenuItemBoolean)3 MenuItemInteger (au.com.mineauz.minigames.menu.MenuItemInteger)3 CTFFlag (au.com.mineauz.minigames.CTFFlag)2