Search in sources :

Example 26 with MinigamePlayer

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

the class TeleportCommand method onCommand.

@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
    if (args != null) {
        List<Player> plys = plugin.getServer().matchPlayer(args[0]);
        MinigamePlayer ply = null;
        if (!plys.isEmpty()) {
            ply = plugin.pdata.getMinigamePlayer(plys.get(0));
        } else {
            sender.sendMessage(ChatColor.RED + "No player found by the name " + args[0] + "!");
            return true;
        }
        if (args.length >= 4 && args[1].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[2].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[3].matches("~?(-?[0-9]+(.[0-9]+)?)|~")) {
            double x = 0;
            double y = 0;
            double z = 0;
            float yaw = ply.getLocation().getYaw();
            float pitch = ply.getLocation().getPitch();
            if (args[1].contains("~")) {
                if (args[1].equals("~"))
                    x = ply.getPlayer().getLocation().getX();
                else
                    x = ply.getPlayer().getLocation().getX() + Double.parseDouble(args[1].replace("~", ""));
            } else {
                x = Double.parseDouble(args[1]);
            }
            if (args[2].contains("~")) {
                if (args[2].equals("~"))
                    y = ply.getPlayer().getLocation().getY();
                else
                    y = ply.getPlayer().getLocation().getY() + Double.parseDouble(args[2].replace("~", ""));
            } else {
                y = Double.parseDouble(args[2]);
            }
            if (args[3].contains("~")) {
                if (args[3].equals("~"))
                    z = ply.getPlayer().getLocation().getZ();
                else
                    z = ply.getPlayer().getLocation().getZ() + Double.parseDouble(args[3].replace("~", ""));
            } else {
                z = Double.parseDouble(args[3]);
            }
            if (args.length == 6 && args[4].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[5].matches("~?(-?[0-9]+(.[0-9]+)?)|~")) {
                if (args[4].contains("~")) {
                    if (args[4].equals("~"))
                        yaw = ply.getPlayer().getLocation().getYaw();
                    else
                        yaw = ply.getPlayer().getLocation().getYaw() + Float.parseFloat(args[4].replace("~", ""));
                } else {
                    yaw = Float.parseFloat(args[4]);
                }
                if (args[5].contains("~")) {
                    if (args[5].equals("~"))
                        pitch = ply.getPlayer().getLocation().getPitch();
                    else {
                        pitch = ply.getPlayer().getLocation().getPitch() + Float.parseFloat(args[5].replace("~", ""));
                    }
                } else {
                    pitch = Float.parseFloat(args[5]);
                }
                if (pitch > 90) {
                    pitch = 90f;
                } else if (pitch < -90) {
                    pitch = -90f;
                }
            }
            sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to assigned coordinates.");
            ply.teleport(new Location(ply.getPlayer().getWorld(), x, y, z, yaw, pitch));
            return true;
        } else if (args.length >= 2 && args[1].equalsIgnoreCase("start")) {
            if (ply.isInMinigame()) {
                int pos = 0;
                Team team = null;
                if (args.length == 3)
                    team = TeamsModule.getMinigameModule(ply.getMinigame()).getTeam(TeamColor.matchColor(args[3]));
                else if (ply.getTeam() != null)
                    team = ply.getTeam();
                if (args.length >= 3 && args[2].matches("[0-9]+") && !args[2].equals("0"))
                    pos = Integer.parseInt(args[2]) - 1;
                if (team == null && pos >= ply.getMinigame().getStartLocations().size())
                    pos = ply.getMinigame().getStartLocations().size() - 1;
                else if (team != null && pos >= team.getStartLocations().size())
                    pos = team.getStartLocations().size() - 1;
                if (team != null) {
                    ply.teleport(team.getStartLocations().get(pos));
                    sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to " + team.getDisplayName() + " start position " + (pos + 1) + ".");
                } else {
                    ply.teleport(ply.getMinigame().getStartLocations().get(pos));
                    sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to start position " + (pos + 1) + ".");
                }
            } else {
                sender.sendMessage(ChatColor.RED + ply.getName() + " is not in a Minigame!");
            }
            return true;
        } else if (args.length == 2 && args[1].equalsIgnoreCase("checkpoint")) {
            if (ply.isInMinigame()) {
                ply.teleport(ply.getCheckpoint());
                sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to their checkpoint.");
            } else {
                sender.sendMessage(ChatColor.RED + ply.getName() + " is not in a Minigame!");
            }
            return true;
        } else if (args.length == 2) {
            plys = plugin.getServer().matchPlayer(args[1]);
            MinigamePlayer ply2 = null;
            if (!plys.isEmpty()) {
                ply2 = plugin.pdata.getMinigamePlayer(plys.get(0));
            } else {
                sender.sendMessage(ChatColor.RED + "No player found by the name " + args[1] + "!");
                return true;
            }
            ply.teleport(ply2.getPlayer().getLocation());
            sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to " + ply2.getName() + ".");
            return true;
        }
    }
    return false;
}
Also used : Player(org.bukkit.entity.Player) MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Team(au.com.mineauz.minigames.minigame.Team) Location(org.bukkit.Location)

Example 27 with MinigamePlayer

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

the class AddScoreAction method checkScore.

private void checkScore(MinigamePlayer player) {
    if (player.getMinigame().getMaxScorePerPlayer() >= player.getScore() || player.getTeam().getScore() >= player.getMinigame().getMaxScore()) {
        List<MinigamePlayer> w;
        List<MinigamePlayer> l;
        if (player.getMinigame().isTeamGame()) {
            w = new ArrayList<>(player.getTeam().getPlayers());
            l = new ArrayList<>(player.getMinigame().getPlayers().size() - player.getTeam().getPlayers().size());
            for (Team t : TeamsModule.getMinigameModule(player.getMinigame()).getTeams()) {
                if (t != player.getTeam())
                    l.addAll(t.getPlayers());
            }
        } else {
            w = new ArrayList<>(1);
            l = new ArrayList<>(player.getMinigame().getPlayers().size());
            w.add(player);
            l.addAll(player.getMinigame().getPlayers());
            l.remove(player);
        }
        Minigames.plugin.pdata.endMinigame(player.getMinigame(), w, l);
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Team(au.com.mineauz.minigames.minigame.Team)

Example 28 with MinigamePlayer

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

the class BroadcastAction method execute.

private void execute(MinigamePlayer player, ScriptObject base) {
    String type = "info";
    if (redText.getFlag())
        type = "error";
    MinigamePlayer exclude = null;
    if (excludeExecutor.getFlag())
        exclude = player;
    // Old replacement
    String message = this.message.getFlag();
    if (player != null) {
        message = message.replace("%player%", player.getDisplayName(player.getMinigame().usePlayerDisplayNames()));
    }
    // New expression system
    message = ExpressionParser.stringResolve(message, base, true, true);
    Minigames.plugin.mdata.sendMinigameMessage(player.getMinigame(), message, type, exclude);
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer)

Example 29 with MinigamePlayer

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

the class RegionEvents method playerMove.

@EventHandler(ignoreCancelled = true)
private void playerMove(PlayerMoveEvent event) {
    MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
    if (ply == null)
        return;
    if (ply.isInMinigame()) {
        Minigame mg = ply.getMinigame();
        executeRegionChanges(mg, ply);
    }
}
Also used : MinigamePlayer(au.com.mineauz.minigames.MinigamePlayer) Minigame(au.com.mineauz.minigames.minigame.Minigame) EventHandler(org.bukkit.event.EventHandler)

Example 30 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(PlayerDropItemEvent event) {
    final MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
    if (ply == null)
        return;
    if (ply.isInMinigame()) {
        final Trigger trig = Triggers.getTrigger("ITEM_DROP");
        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)

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