Search in sources :

Example 16 with Minigame

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

the class BasicRecorder method takeItem.

@EventHandler(ignoreCancelled = true)
private void takeItem(PlayerInteractEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
    if (ply == null)
        return;
    if (ply.isInMinigame() && event.getAction() == Action.RIGHT_CLICK_BLOCK && !ply.getMinigame().isSpectator(ply)) {
        Minigame mgm = ply.getMinigame();
        RecorderData d = mgm.getBlockRecorder();
        if (event.getClickedBlock().getState() instanceof InventoryHolder) {
            d.addBlock(event.getClickedBlock().getLocation().getBlock(), ply);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Minigame(au.com.mineauz.minigames.minigame.Minigame) InventoryHolder(org.bukkit.inventory.InventoryHolder) EventHandler(org.bukkit.event.EventHandler)

Example 17 with Minigame

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

the class BasicRecorder method bucketEmpty.

@EventHandler(ignoreCancelled = true)
private void bucketEmpty(PlayerBucketEmptyEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
    if (ply == null)
        return;
    if (ply.isInMinigame()) {
        Minigame mgm = ply.getMinigame();
        RecorderData d = mgm.getBlockRecorder();
        if (((d.getWhitelistMode() && d.getWBBlocks().contains(event.getBlockClicked().getType())) || (!d.getWhitelistMode() && !d.getWBBlocks().contains(event.getBlockClicked().getType()))) && mgm.canBlockPlace()) {
            Location loc = new Location(event.getBlockClicked().getWorld(), event.getBlockFace().getModX() + event.getBlockClicked().getX(), event.getBlockFace().getModY() + event.getBlockClicked().getY(), event.getBlockFace().getModZ() + event.getBlockClicked().getZ());
            d.addBlock(loc.getBlock(), pdata.getMinigamePlayer(event.getPlayer()));
        } else {
            event.setCancelled(true);
        }
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Minigame(au.com.mineauz.minigames.minigame.Minigame) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 18 with Minigame

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

the class TreasureHuntMechanic method timerExpire.

@EventHandler
private void timerExpire(TimerExpireEvent event) {
    if (event.getMinigame().getType() != MinigameType.GLOBAL && !event.getMinigame().getMechanicName().equals(getMechanic()))
        return;
    Minigame mgm = event.getMinigame();
    TreasureHuntModule thm = TreasureHuntModule.getMinigameModule(mgm);
    if (thm.hasTreasureLocation()) {
        mgm.setMinigameTimer(new MinigameTimer(mgm, thm.getTreasureWaitTime()));
        Location old = thm.getTreasureLocation();
        removeTreasure(mgm);
        if (!thm.isTreasureFound()) {
            MinigameUtils.broadcast(MinigameUtils.formStr("minigame.treasurehunt.plyDespawn", mgm.getName(true)) + "\n" + ChatColor.GRAY + MinigameUtils.formStr("minigame.treasurehunt.plyDespawnCoords", old.getBlockX(), old.getBlockY(), old.getBlockZ()), mgm, "minigame.treasure.announce");
        }
        thm.setTreasureFound(false);
    } else {
        spawnTreasure(mgm);
    }
}
Also used : TreasureHuntModule(au.com.mineauz.minigames.minigame.modules.TreasureHuntModule) MinigameTimer(au.com.mineauz.minigames.MinigameTimer) Minigame(au.com.mineauz.minigames.minigame.Minigame) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Example 19 with Minigame

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

the class TreasureHuntMechanic method interactEvent.

@EventHandler
private void interactEvent(PlayerInteractEvent event) {
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
        Block cblock = event.getClickedBlock();
        if (cblock.getState() instanceof Chest && !event.isCancelled()) {
            for (Minigame minigame : mdata.getAllMinigames().values()) {
                if (minigame.getType() == MinigameType.GLOBAL && minigame.getMechanicName().equalsIgnoreCase(getMechanic()) && minigame.getMinigameTimer() != null) {
                    TreasureHuntModule thm = TreasureHuntModule.getMinigameModule(minigame);
                    if (!thm.isTreasureFound() && thm.hasTreasureLocation()) {
                        int x1 = thm.getTreasureLocation().getBlockX();
                        int x2 = cblock.getLocation().getBlockX();
                        int y1 = thm.getTreasureLocation().getBlockY();
                        int y2 = cblock.getLocation().getBlockY();
                        int z1 = thm.getTreasureLocation().getBlockZ();
                        int z2 = cblock.getLocation().getBlockZ();
                        if (x2 == x1 && y2 == y1 && z2 == z1) {
                            MinigameUtils.broadcast(MinigameUtils.formStr("minigame.treasurehunt.plyFound", event.getPlayer().getDisplayName(), minigame.getName(true)), minigame, "minigame.treasure.announce");
                            event.setCancelled(true);
                            Chest chest = (Chest) cblock.getState();
                            event.getPlayer().openInventory(chest.getInventory());
                            thm.setTreasureFound(true);
                            minigame.getMinigameTimer().setTimeLeft(300);
                        }
                    }
                }
            }
        }
    }
}
Also used : Chest(org.bukkit.block.Chest) TreasureHuntModule(au.com.mineauz.minigames.minigame.modules.TreasureHuntModule) Block(org.bukkit.block.Block) Minigame(au.com.mineauz.minigames.minigame.Minigame) EventHandler(org.bukkit.event.EventHandler)

Example 20 with Minigame

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

the class TreasureHuntMechanic method timerTick.

@EventHandler
private void timerTick(MinigameTimerTickEvent event) {
    if (event.getMinigame().getType() != MinigameType.GLOBAL && !event.getMinigame().getMechanicName().equals(getMechanic()))
        return;
    Minigame mgm = event.getMinigame();
    TreasureHuntModule thm = TreasureHuntModule.getMinigameModule(mgm);
    if (!thm.hasTreasureLocation() || thm.isTreasureFound())
        return;
    int time = event.getTimeLeft();
    int hintTime1 = event.getMinigame().getTimer() - 1;
    int hintTime2 = (int) (event.getMinigame().getTimer() * 0.75);
    int hintTime3 = (int) (event.getMinigame().getTimer() * 0.50);
    int hintTime4 = (int) (event.getMinigame().getTimer() * 0.25);
    Location block = thm.getTreasureLocation();
    if (time == hintTime1) {
        double dfcx = 0.0;
        double dfcz = 0.0;
        String xdir = null;
        String zdir = null;
        if (mgm.getStartLocations().get(0).getX() > block.getX()) {
            dfcx = mgm.getStartLocations().get(0).getX() - block.getX();
            xdir = MinigameUtils.getLang("minigame.treasurehunt.hint1.west");
        } else {
            dfcx = block.getX() - mgm.getStartLocations().get(0).getX();
            xdir = MinigameUtils.getLang("minigame.treasurehunt.hint1.east");
        }
        if (mgm.getStartLocations().get(0).getZ() > block.getZ()) {
            dfcz = mgm.getStartLocations().get(0).getZ() - block.getZ();
            zdir = MinigameUtils.getLang("minigame.treasurehunt.hint1.north");
        } else {
            dfcz = block.getZ() - mgm.getStartLocations().get(0).getZ();
            zdir = MinigameUtils.getLang("minigame.treasurehunt.hint1.south");
        }
        String dir = null;
        if (dfcz > dfcx) {
            if (dfcx > dfcz / 2) {
                dir = zdir + xdir.toLowerCase();
            } else {
                dir = zdir;
            }
        } else {
            if (dfcz > dfcx / 2) {
                dir = zdir + xdir.toLowerCase();
            } else {
                dir = xdir;
            }
        }
        String hint = MinigameUtils.formStr("minigame.treasurehunt.hint1.hint", mgm.getName(true), dir, thm.getLocation());
        MinigameUtils.broadcast(hint, mgm, "minigame.treasure.announce");
        thm.addHint(ChatColor.GRAY + hint);
    } else if (time == hintTime2) {
        block.setY(block.getY() - 1);
        String hint = MinigameUtils.formStr("minigame.treasurehunt.hint2", mgm.getName(true), block.getBlock().getType().toString().toLowerCase().replace("_", " "));
        MinigameUtils.broadcast(hint, mgm, "minigame.treasure.announce");
        thm.addHint(ChatColor.GRAY + hint);
        block.setY(block.getY() + 1);
    } else if (time == hintTime3) {
        int height = block.getBlockY();
        String dir;
        int dist;
        if (height > 62) {
            dist = height - 62;
            dir = MinigameUtils.getLang("minigame.treasurehunt.hint3.above");
        } else {
            dist = 62 - height;
            dir = MinigameUtils.getLang("minigame.treasurehunt.hint3.below");
        }
        String hint = MinigameUtils.formStr("minigame.treasurehunt.hint3.hint", mgm.getName(true), dist, dir);
        MinigameUtils.broadcast(hint, mgm, "minigame.treasure.announce");
        thm.addHint(ChatColor.GRAY + hint);
    } else if (time == hintTime4) {
        String hint = MinigameUtils.formStr("minigame.treasurehunt.hint4", mgm.getName(true), block.getBlock().getBiome().toString().toLowerCase().replace("_", " "));
        MinigameUtils.broadcast(hint, mgm, "minigame.treasure.announce");
        thm.addHint(ChatColor.GRAY + hint);
    }
}
Also used : TreasureHuntModule(au.com.mineauz.minigames.minigame.modules.TreasureHuntModule) Minigame(au.com.mineauz.minigames.minigame.Minigame) Location(org.bukkit.Location) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Minigame (au.com.mineauz.minigames.minigame.Minigame)64 MinigamePlayer (au.com.mineauz.minigames.MinigamePlayer)33 EventHandler (org.bukkit.event.EventHandler)29 ArrayList (java.util.ArrayList)19 Player (org.bukkit.entity.Player)16 Team (au.com.mineauz.minigames.minigame.Team)15 List (java.util.List)7 Location (org.bukkit.Location)7 TreasureHuntModule (au.com.mineauz.minigames.minigame.modules.TreasureHuntModule)4 Sign (org.bukkit.block.Sign)4 TeamColor (au.com.mineauz.minigames.minigame.TeamColor)3 Block (org.bukkit.block.Block)3 ItemStack (org.bukkit.inventory.ItemStack)3 PotionEffect (org.bukkit.potion.PotionEffect)3 CTFFlag (au.com.mineauz.minigames.CTFFlag)2 MinigameData (au.com.mineauz.minigames.MinigameData)2 MultiplayerTimer (au.com.mineauz.minigames.MultiplayerTimer)2 ICommand (au.com.mineauz.minigames.commands.ICommand)2 TakeFlagEvent (au.com.mineauz.minigames.events.TakeFlagEvent)2 ScoreboardDisplay (au.com.mineauz.minigames.minigame.ScoreboardDisplay)2