Search in sources :

Example 61 with MinigamePlayer

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

the class InfectionMechanic method playerDeath.

@EventHandler(ignoreCancelled = true)
private void playerDeath(PlayerDeathEvent event) {
    MinigamePlayer player = pdata.getMinigamePlayer(event.getEntity());
    if (player == null)
        return;
    if (player.isInMinigame()) {
        Minigame mgm = player.getMinigame();
        if (mgm.isTeamGame() && mgm.getMechanicName().equals("infection")) {
            Team blue = TeamsModule.getMinigameModule(mgm).getTeam(TeamColor.BLUE);
            Team red = TeamsModule.getMinigameModule(mgm).getTeam(TeamColor.RED);
            if (blue.getPlayers().contains(player)) {
                if (!red.isFull()) {
                    MultiplayerType.switchTeam(mgm, player, red);
                    InfectionModule.getMinigameModule(mgm).addInfectedPlayer(player);
                    if (event.getEntity().getKiller() != null) {
                        MinigamePlayer killer = pdata.getMinigamePlayer(event.getEntity().getKiller());
                        killer.addScore();
                        mgm.setScore(killer, killer.getScore());
                    }
                    player.resetScore();
                    mgm.setScore(player, player.getScore());
                    if (mgm.getLives() != player.getDeaths()) {
                        mdata.sendMinigameMessage(mgm, String.format(red.getGameAssignMessage(), player.getName(), red.getChatColor() + red.getDisplayName()), "error", null);
                    }
                    if (blue.getPlayers().isEmpty()) {
                        List<MinigamePlayer> w;
                        List<MinigamePlayer> l;
                        w = new ArrayList<MinigamePlayer>(red.getPlayers());
                        l = new ArrayList<MinigamePlayer>();
                        pdata.endMinigame(mgm, w, l);
                    }
                } else {
                    pdata.quitMinigame(player, false);
                }
            } else {
                if (event.getEntity().getKiller() != null) {
                    MinigamePlayer killer = pdata.getMinigamePlayer(event.getEntity().getKiller());
                    killer.addScore();
                    mgm.setScore(killer, killer.getScore());
                }
            }
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Team(au.com.mineauz.minigames.minigame.Team) Minigame(au.com.mineauz.minigames.minigame.Minigame) EventHandler(org.bukkit.event.EventHandler)

Example 62 with MinigamePlayer

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

the class InfectionMechanic method balanceTeam.

@Override
public void balanceTeam(List<MinigamePlayer> players, Minigame minigame) {
    for (int i = 0; i < players.size(); i++) {
        MinigamePlayer ply = players.get(i);
        Team red = TeamsModule.getMinigameModule(minigame).getTeam(TeamColor.RED);
        Team blue = TeamsModule.getMinigameModule(minigame).getTeam(TeamColor.BLUE);
        Team team = ply.getTeam();
        if (team == blue) {
            if (red.getPlayers().size() < Math.ceil(players.size() * (((Integer) InfectionModule.getMinigameModule(minigame).getInfectedPercent()).doubleValue() / 100d)) && !red.isFull()) {
                MultiplayerType.switchTeam(minigame, ply, red);
                players.get(i).sendMessage(String.format(red.getAssignMessage(), red.getChatColor() + red.getDisplayName()), null);
                mdata.sendMinigameMessage(minigame, String.format(red.getGameAssignMessage(), players.get(i).getName(), red.getChatColor() + red.getDisplayName()), null, players.get(i));
            }
        } else if (team == null) {
            if (red.getPlayers().size() < Math.ceil(players.size() * 0.18) && !red.isFull()) {
                red.addPlayer(ply);
                players.get(i).sendMessage(String.format(red.getAssignMessage(), red.getChatColor() + red.getDisplayName()), null);
                mdata.sendMinigameMessage(minigame, String.format(red.getGameAssignMessage(), players.get(i).getName(), red.getChatColor() + red.getDisplayName()), null, players.get(i));
            } else if (!blue.isFull()) {
                blue.addPlayer(ply);
                ply.sendMessage(String.format(blue.getAssignMessage(), blue.getChatColor() + blue.getDisplayName()), null);
                mdata.sendMinigameMessage(minigame, String.format(blue.getGameAssignMessage(), players.get(i).getName(), blue.getChatColor() + blue.getDisplayName()), null, players.get(i));
            } else {
                pdata.quitMinigame(ply, false);
                ply.sendMessage(MinigameUtils.getLang("minigame.full"), "error");
            }
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Team(au.com.mineauz.minigames.minigame.Team)

Example 63 with MinigamePlayer

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

the class InfectionMechanic method endMinigame.

@Override
public void endMinigame(Minigame minigame, List<MinigamePlayer> winners, List<MinigamePlayer> losers) {
    List<MinigamePlayer> wins = new ArrayList<MinigamePlayer>(winners);
    for (MinigamePlayer ply : wins) {
        if (InfectionModule.getMinigameModule(minigame).isInfectedPlayer(ply)) {
            winners.remove(ply);
            losers.add(ply);
            InfectionModule.getMinigameModule(minigame).removeInfectedPlayer(ply);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList)

Example 64 with MinigamePlayer

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

the class SetLoadoutCommand method onCommand.

@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
    MinigamePlayer player = Minigames.plugin.pdata.getMinigamePlayer((Player) sender);
    Menu loadouts = new Menu(6, getName(), player);
    List<MenuItem> mi = new ArrayList<MenuItem>();
    LoadoutModule mod = LoadoutModule.getMinigameModule(minigame);
    List<String> des = new ArrayList<String>();
    des.add("Shift + Right Click to Delete");
    Material item = Material.THIN_GLASS;
    for (String ld : mod.getLoadouts()) {
        item = Material.THIN_GLASS;
        if (mod.getLoadout(ld).getItems().size() != 0) {
            item = mod.getLoadout(ld).getItem((Integer) mod.getLoadout(ld).getItems().toArray()[0]).getType();
        }
        MenuItemDisplayLoadout mil = new MenuItemDisplayLoadout(ld, des, item, mod.getLoadout(ld), minigame);
        mil.setAllowDelete(mod.getLoadout(ld).isDeleteable());
        mi.add(mil);
    }
    loadouts.addItem(new MenuItemLoadoutAdd("Add Loadout", Material.ITEM_FRAME, mod.getLoadoutMap(), minigame), 53);
    loadouts.addItems(mi);
    loadouts.displayMenu(player);
    return true;
}
Also used : MenuItemDisplayLoadout(au.com.mineauz.minigames.menu.MenuItemDisplayLoadout) MenuItemLoadoutAdd(au.com.mineauz.minigames.menu.MenuItemLoadoutAdd) MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList) LoadoutModule(au.com.mineauz.minigames.minigame.modules.LoadoutModule) MenuItem(au.com.mineauz.minigames.menu.MenuItem) Material(org.bukkit.Material) Menu(au.com.mineauz.minigames.menu.Menu)

Example 65 with MinigamePlayer

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

the class JuggernautMechanic method playerDeath.

@EventHandler
private void playerDeath(PlayerDeathEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
    if (ply == null)
        return;
    if (ply.getMinigame() != null && ply.getMinigame().getMechanic() == this) {
        JuggernautModule jm = JuggernautModule.getMinigameModule(ply.getMinigame());
        if (jm.getJuggernaut() == ply) {
            if (event.getEntity().getKiller() != null) {
                MinigamePlayer pk = pdata.getMinigamePlayer(event.getEntity().getKiller());
                if (pk != null) {
                    jm.setJuggernaut(pk);
                    pk.addScore();
                    pk.getMinigame().setScore(pk, pk.getScore());
                    checkScore(pk);
                } else {
                    jm.setJuggernaut(assignNewJuggernaut(ply.getMinigame().getPlayers(), ply));
                }
            } else {
                jm.setJuggernaut(assignNewJuggernaut(ply.getMinigame().getPlayers(), ply));
            }
        } else {
            if (event.getEntity().getKiller() != null) {
                MinigamePlayer pk = pdata.getMinigamePlayer(event.getEntity().getKiller());
                if (pk != null && jm.getJuggernaut() == pk) {
                    pk.addScore();
                    pk.getMinigame().setScore(pk, pk.getScore());
                    checkScore(pk);
                }
            }
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) JuggernautModule(au.com.mineauz.minigames.minigame.modules.JuggernautModule) EventHandler(org.bukkit.event.EventHandler)

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