Search in sources :

Example 31 with MinigamePlayer

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

the class RegionEvents method playerQuit.

@EventHandler(ignoreCancelled = true)
private void playerQuit(QuitMinigameEvent event) {
    MinigamePlayer ply = event.getMinigamePlayer();
    if (ply == null)
        return;
    Minigame mg = ply.getMinigame();
    for (Region r : RegionModule.getMinigameModule(mg).getRegions()) {
        if (r.hasPlayer(ply))
            r.removePlayer(ply);
    }
    for (Node node : RegionModule.getMinigameModule(event.getMinigame()).getNodes()) {
        node.execute(Triggers.getTrigger("GAME_QUIT"), event.getMinigamePlayer());
        if (event.getMinigame().getPlayers().size() > 1) {
            for (NodeExecutor exec : node.getExecutors()) exec.removeTrigger(event.getMinigamePlayer());
        } else {
            for (NodeExecutor exec : node.getExecutors()) exec.clearTriggers();
            node.setEnabled(true);
        }
    }
    for (Region region : RegionModule.getMinigameModule(event.getMinigame()).getRegions()) {
        if (region.playerInRegion(ply))
            region.execute(Triggers.getTrigger("GAME_QUIT"), event.getMinigamePlayer());
        if (event.getMinigame().getPlayers().size() > 1) {
            for (RegionExecutor exec : region.getExecutors()) exec.removeTrigger(event.getMinigamePlayer());
        } else {
            for (RegionExecutor exec : region.getExecutors()) {
                exec.clearTriggers();
            }
            region.removeTickTask();
            region.setEnabled(true);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) RegionExecutor(au.com.mineauz.minigamesregions.executors.RegionExecutor) Minigame(au.com.mineauz.minigames.minigame.Minigame) NodeExecutor(au.com.mineauz.minigamesregions.executors.NodeExecutor) EventHandler(org.bukkit.event.EventHandler)

Example 32 with MinigamePlayer

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

the class RegionEvents method playerXpChange.

@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
private void playerXpChange(PlayerExpChangeEvent event) {
    final MinigamePlayer player = pdata.getMinigamePlayer(event.getPlayer());
    if (player == null || !player.isInMinigame()) {
        return;
    }
    executeTrigger(Triggers.getTrigger("XP_CHANGE"), player);
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) EventHandler(org.bukkit.event.EventHandler)

Example 33 with MinigamePlayer

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

the class RegionEvents method itemPickupEvent.

@EventHandler(ignoreCancelled = true)
private void itemPickupEvent(PlayerPickupItemEvent event) {
    final MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
    if (ply == null)
        return;
    if (ply.isInMinigame()) {
        final Trigger trig = Triggers.getTrigger("ITEM_PICKUP");
        Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

            @Override
            public void run() {
                if (!ply.isInMinigame()) {
                    return;
                }
                for (Node node : getRegionModule(ply.getMinigame()).getNodes()) {
                    node.execute(trig, ply);
                }
                for (Region region : getRegionModule(ply.getMinigame()).getRegions()) {
                    if (region.hasPlayer(ply)) {
                        region.execute(trig, ply);
                    }
                }
            }
        });
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Trigger(au.com.mineauz.minigamesregions.triggers.Trigger) EventHandler(org.bukkit.event.EventHandler)

Example 34 with MinigamePlayer

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

the class RegionEvents method playerJoin.

@EventHandler(ignoreCancelled = true)
private void playerJoin(JoinMinigameEvent event) {
    final MinigamePlayer ply = event.getMinigamePlayer();
    if (ply == null)
        return;
    final Minigame mg = event.getMinigame();
    Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

        @Override
        public void run() {
            executeRegionChanges(mg, ply);
            for (Node node : RegionModule.getMinigameModule(mg).getNodes()) {
                node.execute(Triggers.getTrigger("GAME_JOIN"), ply);
            }
            for (Region region : RegionModule.getMinigameModule(mg).getRegions()) {
                if (region.hasPlayer(ply))
                    region.execute(Triggers.getTrigger("GAME_JOIN"), ply);
            }
        }
    });
    if (event.getMinigame().getPlayers().size() == 0) {
        for (Region region : RegionModule.getMinigameModule(event.getMinigame()).getRegions()) {
            for (RegionExecutor ex : region.getExecutors()) {
                if (ex.getTrigger().getName().equalsIgnoreCase("TICK")) {
                    region.startTickTask();
                    break;
                }
            }
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) RegionExecutor(au.com.mineauz.minigamesregions.executors.RegionExecutor) Minigame(au.com.mineauz.minigames.minigame.Minigame) EventHandler(org.bukkit.event.EventHandler)

Example 35 with MinigamePlayer

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

the class ScoreSign method signUse.

@Override
public boolean signUse(Sign sign, MinigamePlayer player) {
    if (player.isInMinigame() && player.getPlayer().isOnGround()) {
        Minigame mg = player.getMinigame();
        int score = Integer.parseInt(sign.getLine(2));
        if (!mg.isTeamGame()) {
            if (player.hasClaimedScore(sign.getLocation())) {
                player.sendMessage(MinigameUtils.getLang("sign.score.alreadyUsed"), "error");
                return true;
            }
            player.addScore(score);
            mg.setScore(player, player.getScore());
            player.sendMessage(MinigameUtils.formStr("sign.score.addScore", score, player.getScore()), null);
            if (mg.getMaxScore() != 0 && mg.getMaxScorePerPlayer() <= player.getScore()) {
                Minigames.plugin.pdata.endMinigame(player);
            }
            player.addClaimedScore(sign.getLocation());
        } else {
            TeamColor steam = TeamColor.matchColor(ChatColor.stripColor(sign.getLine(3)));
            Team pteam = player.getTeam();
            if (steam == null || !TeamsModule.getMinigameModule(mg).hasTeam(steam) || pteam.getColor() == steam) {
                if (Minigames.plugin.mdata.hasClaimedScore(mg, sign.getLocation(), 0)) {
                    player.sendMessage(MinigameUtils.getLang("sign.score.alreadyUsedTeam"), "error");
                    return true;
                }
                player.addScore(score);
                mg.setScore(player, player.getScore());
                pteam.addScore(score);
                player.sendMessage(MinigameUtils.formStr("sign.score.addScoreTeam", score, pteam.getChatColor().toString() + pteam.getScore()), null);
                Minigames.plugin.mdata.addClaimedScore(mg, sign.getLocation(), 0);
                if (mg.getMaxScore() != 0 && mg.getMaxScorePerPlayer() <= pteam.getScore()) {
                    List<MinigamePlayer> winners = new ArrayList<MinigamePlayer>(pteam.getPlayers());
                    List<MinigamePlayer> losers = new ArrayList<MinigamePlayer>(mg.getPlayers().size() - pteam.getPlayers().size());
                    for (Team t : TeamsModule.getMinigameModule(mg).getTeams()) {
                        if (t != pteam)
                            losers.addAll(t.getPlayers());
                    }
                    Minigames.plugin.pdata.endMinigame(mg, winners, losers);
                }
            }
        }
    } else if (player.isInMinigame() && !player.getPlayer().isOnGround()) {
        player.sendMessage(MinigameUtils.getLang("sign.onGround"), "error");
    }
    return true;
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) ArrayList(java.util.ArrayList) TeamColor(au.com.mineauz.minigames.minigame.TeamColor) Team(au.com.mineauz.minigames.minigame.Team) Minigame(au.com.mineauz.minigames.minigame.Minigame)

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