Search in sources :

Example 76 with MinigamePlayer

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

the class ToolCommand method onCommand.

@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
    MinigamePlayer player = Minigames.plugin.pdata.getMinigamePlayer((Player) sender);
    if (args == null) {
        MinigameUtils.giveMinigameTool(player);
    } else if (MinigameUtils.hasMinigameTool(player)) {
        if (args[0].equalsIgnoreCase("minigame") && args.length == 2) {
            if (Minigames.plugin.mdata.hasMinigame(args[1])) {
                MinigameTool tool;
                Minigame mg = Minigames.plugin.mdata.getMinigame(args[1]);
                if (!MinigameUtils.hasMinigameTool(player))
                    tool = MinigameUtils.giveMinigameTool(player);
                else
                    tool = MinigameUtils.getMinigameTool(player);
                tool.setMinigame(mg);
            } else {
                sender.sendMessage(ChatColor.RED + "No Minigame found by the name \"" + args[1] + "\"");
            }
        } else if (args[0].equalsIgnoreCase("select")) {
            MinigameTool tool;
            if (!MinigameUtils.hasMinigameTool(player))
                tool = MinigameUtils.giveMinigameTool(player);
            else
                tool = MinigameUtils.getMinigameTool(player);
            if (tool.getMinigame() != null && tool.getMode() != null) {
                tool.getMode().select(player, tool.getMinigame(), TeamsModule.getMinigameModule(tool.getMinigame()).getTeam(tool.getTeam()));
            } else if (tool.getMode() == null)
                sender.sendMessage(ChatColor.RED + "You must have a mode selected to select anything!");
            else
                sender.sendMessage(ChatColor.RED + "You must have a valid Minigame selected to use this tool!");
        } else if (args[0].equalsIgnoreCase("deselect")) {
            MinigameTool tool;
            if (!MinigameUtils.hasMinigameTool(player))
                tool = MinigameUtils.giveMinigameTool(player);
            else
                tool = MinigameUtils.getMinigameTool(player);
            if (tool.getMinigame() != null && tool.getMode() != null) {
                tool.getMode().deselect(player, tool.getMinigame(), TeamsModule.getMinigameModule(tool.getMinigame()).getTeam(tool.getTeam()));
            } else if (tool.getMode() == null)
                sender.sendMessage(ChatColor.RED + "You must have a mode selected to deselect anything!");
            else
                sender.sendMessage(ChatColor.RED + "You must have a valid Minigame selected to use this tool!");
        } else if (args[0].equalsIgnoreCase("team") && args.length == 2) {
            if (TeamColor.matchColor(args[1]) != null || args[1].equalsIgnoreCase("none")) {
                MinigameTool tool;
                if (!MinigameUtils.hasMinigameTool(player))
                    tool = MinigameUtils.giveMinigameTool(player);
                else
                    tool = MinigameUtils.getMinigameTool(player);
                if (args[1].equalsIgnoreCase("none"))
                    tool.setTeam(null);
                else
                    tool.setTeam(TeamColor.matchColor(args[1]));
                sender.sendMessage(ChatColor.GRAY + "Set the tools team to " + args[1]);
            } else {
                sender.sendMessage(ChatColor.RED + args[1] + " is not a valid team color!");
            }
        } else if (ToolModes.getToolMode(args[0]) != null) {
            MinigameTool tool;
            if (!MinigameUtils.hasMinigameTool(player))
                tool = MinigameUtils.giveMinigameTool(player);
            else
                tool = MinigameUtils.getMinigameTool(player);
            tool.setMode(ToolModes.getToolMode(args[0]));
            sender.sendMessage(ChatColor.GRAY + "Set the tools mode to '" + tool.getMode().getName().toLowerCase().replace("_", " ") + "'");
        } else {
            return false;
        }
    } else {
        sender.sendMessage(ChatColor.RED + "You must have a Minigame Tool! Type \"/minigame tool\" to recieve one.");
    }
    return true;
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) MinigameTool(au.com.mineauz.minigames.tool.MinigameTool) Minigame(au.com.mineauz.minigames.minigame.Minigame)

Example 77 with MinigamePlayer

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

the class PlayerCommand method onCommand.

@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
    if (args != null) {
        if (args[0].equalsIgnoreCase("list")) {
            List<MinigamePlayer> pls = new ArrayList<MinigamePlayer>();
            for (MinigamePlayer pl : Minigames.plugin.getPlayerData().getAllMinigamePlayers()) {
                if (pl.isInMinigame()) {
                    pls.add(pl);
                }
            }
            sender.sendMessage(ChatColor.AQUA + "-----------List of Players Playing Minigames-----------");
            if (!pls.isEmpty()) {
                for (MinigamePlayer pl : pls) {
                    sender.sendMessage(ChatColor.GREEN + pl.getName() + ChatColor.GRAY + " (Playing \"" + pl.getMinigame().getName(false) + "\")");
                }
            } else {
                sender.sendMessage(ChatColor.RED + "None");
            }
        } else {
            List<Player> plmatch = Minigames.plugin.getServer().matchPlayer(args[0]);
            if (!plmatch.isEmpty()) {
                MinigamePlayer pl = Minigames.plugin.getPlayerData().getMinigamePlayer(plmatch.get(0));
                sender.sendMessage(ChatColor.AQUA + "--------Player info on " + pl.getName() + "--------");
                if (pl.isInMinigame()) {
                    sender.sendMessage(ChatColor.GREEN + "Minigame: " + ChatColor.GRAY + pl.getMinigame().getName(false));
                    sender.sendMessage(ChatColor.GREEN + "Score: " + ChatColor.GRAY + pl.getScore());
                    sender.sendMessage(ChatColor.GREEN + "Kills: " + ChatColor.GRAY + pl.getKills());
                    sender.sendMessage(ChatColor.GREEN + "Deaths: " + ChatColor.GRAY + pl.getDeaths());
                    sender.sendMessage(ChatColor.GREEN + "Reverts: " + ChatColor.GRAY + pl.getReverts());
                    sender.sendMessage(ChatColor.GREEN + "Play Time: " + ChatColor.GRAY + MinigameUtils.convertTime((int) ((Calendar.getInstance().getTimeInMillis() - pl.getStartTime() + pl.getStoredTime()) / 1000)));
                } else {
                    sender.sendMessage(ChatColor.GREEN + "Minigame: " + ChatColor.RED + "Not in Minigame");
                }
            } else {
                sender.sendMessage(ChatColor.RED + "Could not find a player by the name \"" + args[0] + "\"");
            }
        }
        return true;
    }
    return false;
}
Also used : Player(org.bukkit.entity.Player) MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList)

Example 78 with MinigamePlayer

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

the class PlayerKillsMechanic method playerAttackPlayer.

@EventHandler
private void playerAttackPlayer(PlayerDeathEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
    if (ply == null)
        return;
    Minigame mgm = ply.getMinigame();
    if (ply.isInMinigame() && mgm.getMechanicName().equals("kills")) {
        MinigamePlayer attacker = null;
        if (ply.getPlayer().getKiller() != null) {
            attacker = pdata.getMinigamePlayer(ply.getPlayer().getKiller());
            if (attacker == ply) {
                return;
            }
        } else {
            return;
        }
        if (!mgm.equals(attacker.getMinigame())) {
            return;
        }
        if (ply.getTeam() == null) {
            attacker.addScore();
            mgm.setScore(attacker, attacker.getScore());
            if (mgm.getMaxScore() != 0 && attacker.getScore() >= mgm.getMaxScorePerPlayer()) {
                List<MinigamePlayer> losers = new ArrayList<MinigamePlayer>(mgm.getPlayers().size() - 1);
                List<MinigamePlayer> winner = new ArrayList<MinigamePlayer>(1);
                winner.add(attacker);
                for (MinigamePlayer player : mgm.getPlayers()) {
                    if (player != attacker)
                        losers.add(player);
                }
                pdata.endMinigame(mgm, winner, losers);
            }
        } else {
            Team team = ply.getTeam();
            Team ateam = attacker.getTeam();
            if (team != ateam) {
                attacker.addScore();
                mgm.setScore(attacker, attacker.getScore());
                ateam.addScore();
                if (mgm.getMaxScore() != 0 && mgm.getMaxScorePerPlayer() <= ateam.getScore()) {
                    mdata.sendMinigameMessage(mgm, MinigameUtils.formStr("player.kills.finalKill", attacker.getName(), ply.getName()), null, null);
                    List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(ateam.getPlayers());
                    List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(mgm.getPlayers().size() - ateam.getPlayers().size());
                    for (Team t : TeamsModule.getMinigameModule(mgm).getTeams()) {
                        if (t != ateam)
                            l.addAll(t.getPlayers());
                    }
                    plugin.pdata.endMinigame(mgm, w, l);
                }
            }
        }
    }
}
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) EventHandler(org.bukkit.event.EventHandler)

Example 79 with MinigamePlayer

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

the class PlayerKillsMechanic method playerSuicide.

@EventHandler
private void playerSuicide(PlayerDeathEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
    if (ply == null)
        return;
    if (ply.isInMinigame() && (ply.getPlayer().getKiller() == null || ply.getPlayer().getKiller() == ply.getPlayer()) && ply.getMinigame().hasStarted()) {
        Minigame mgm = ply.getMinigame();
        if (mgm.getMechanicName().equals("kills")) {
            ply.takeScore();
            mgm.setScore(ply, ply.getScore());
            if (mgm.isTeamGame())
                ply.getTeam().setScore(ply.getTeam().getScore() - 1);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Minigame(au.com.mineauz.minigames.minigame.Minigame) EventHandler(org.bukkit.event.EventHandler)

Example 80 with MinigamePlayer

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

the class MenuItemLoadoutAdd method onClick.

@Override
public ItemStack onClick() {
    MinigamePlayer ply = getContainer().getViewer();
    ply.setNoClose(true);
    ply.getPlayer().closeInventory();
    ply.sendMessage("Enter a name for the new Loadout, the menu will automatically reopen in 10s if nothing is entered.", null);
    ply.setManualEntry(this);
    getContainer().startReopenTimer(30);
    return null;
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer)

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