Search in sources :

Example 1 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class ArenaEvents method onRespawn.

private void onRespawn(Player player, Arena arena) {
    User user = UserManager.getUser(player.getUniqueId());
    if (user.isFakeDead()) {
        arena.teleportToStartLocation(player);
        player.setAllowFlight(true);
        player.setFlying(true);
    } else {
        arena.teleportToStartLocation(player);
        user.setSpectator(true);
        player.setGameMode(GameMode.SURVIVAL);
        player.removePotionEffect(PotionEffectType.NIGHT_VISION);
        user.setFakeDead(true);
        player.setAllowFlight(true);
        player.setFlying(true);
        user.setInt("orbs", 0);
    }
}
Also used : User(pl.plajer.villagedefense3.User)

Example 2 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class ArenaEvents method onDeath.

private void onDeath(final Player player, Arena arena) {
    if (arena.getArenaState() == ArenaState.STARTING) {
        player.teleport(arena.getStartLocation());
        return;
    }
    if (arena.getArenaState() == ArenaState.ENDING || arena.getArenaState() == ArenaState.RESTARTING) {
        player.getInventory().clear();
        player.setFlying(false);
        player.setAllowFlight(false);
        User user = UserManager.getUser(player.getUniqueId());
        user.setInt("orbs", 0);
        player.teleport(arena.getEndLocation());
        return;
    }
    User user = UserManager.getUser(player.getUniqueId());
    arena.addStat(player, "deaths");
    arena.teleportToStartLocation(player);
    user.setSpectator(true);
    player.setGameMode(GameMode.SURVIVAL);
    user.setFakeDead(true);
    user.setInt("orbs", 0);
    ArenaUtils.hidePlayer(player, arena);
    player.setAllowFlight(true);
    player.getInventory().clear();
    MessageHandler.sendTitle(player, ChatColor.stripColor(ChatManager.formatMessage(arena, "In-Game.Death-Screen")), 0, 5 * 20, 0, ChatColor.RED);
    if (plugin.is1_9_R1() || plugin.is1_11_R1() || plugin.is1_12_R1()) {
        new BukkitRunnable() {

            @Override
            public void run() {
                if (user.isSpectator())
                    player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatManager.formatMessage(arena, ChatManager.colorMessage("In-Game.Died-Respawn-In-Next-Wave"))));
                else
                    this.cancel();
            }
        }.runTaskTimer(plugin, 20, 20);
    }
    ChatManager.broadcastDeathMessage(arena, player);
    arena.teleportToStartLocation(player);
    player.setAllowFlight(true);
    player.setFlying(true);
    ItemStack spectatorItem = new ItemStack(Material.COMPASS, 1);
    ItemMeta spectatorMeta = spectatorItem.getItemMeta();
    spectatorMeta.setDisplayName(ChatManager.colorMessage("In-Game.Spectator.Spectator-Item-Name"));
    spectatorItem.setItemMeta(spectatorMeta);
    player.getInventory().setItem(0, spectatorItem);
    player.getInventory().setItem(8, SpecialItemManager.getSpecialItem("Leave").getItemStack());
    // tryin to untarget dead player bcuz they will still target him
    for (Zombie zombie : arena.getZombies()) {
        if (zombie.getTarget() != null) {
            if (zombie.getTarget().equals(player)) {
                // set new target as villager so zombies won't stay still waiting for nothing
                for (Villager villager : arena.getVillagers()) {
                    zombie.setTarget(villager);
                }
            }
        }
    }
}
Also used : User(pl.plajer.villagedefense3.User) Zombie(org.bukkit.entity.Zombie) Villager(org.bukkit.entity.Villager) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) ItemStack(org.bukkit.inventory.ItemStack) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 3 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Main method onDisable.

@Override
public void onDisable() {
    if (forceDisable)
        return;
    for (Player player : getServer().getOnlinePlayers()) {
        User user = UserManager.getUser(player.getUniqueId());
        for (String s : FileStats.STATISTICS) {
            if (isDatabaseActivated()) {
                getMySQLDatabase().setStat(player.getUniqueId().toString(), s, user.getInt(s));
            } else {
                getFileStats().saveStat(player, s);
            }
        }
        UserManager.removeUser(player.getUniqueId());
    }
    for (Arena invasionInstance : ArenaRegistry.getArenas()) {
        for (Player player : invasionInstance.getPlayers()) {
            invasionInstance.teleportToEndLocation(player);
            if (inventoryManagerEnabled) {
                inventoryManager.loadInventory(player);
            } else {
                player.getInventory().clear();
                ArmorHelper.clearArmor(player);
            }
        }
        invasionInstance.clearVillagers();
        invasionInstance.stopGame(true);
        invasionInstance.teleportAllToEndLocation();
    }
    if (isDatabaseActivated())
        getMySQLDatabase().closeDatabase();
}
Also used : Player(org.bukkit.entity.Player) Arena(pl.plajer.villagedefense3.arena.Arena)

Example 4 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class MainCommand method createArenaCommand.

void createArenaCommand(Player player, String[] args) {
    for (Arena arena : ArenaRegistry.getArenas()) {
        if (arena.getID().equalsIgnoreCase(args[1])) {
            player.sendMessage(ChatColor.DARK_RED + "Arena with that ID already exists!");
            player.sendMessage(ChatColor.DARK_RED + "Usage: /vd create <ID>");
            return;
        }
    }
    if (ConfigurationManager.getConfig("arenas").contains("instances." + args[1])) {
        player.sendMessage(ChatColor.DARK_RED + "Instance/Arena already exists! Use another ID or delete it first!");
    } else {
        createInstanceInConfig(args[1], player.getWorld().getName());
        player.sendMessage(ChatColor.BOLD + "------------------------------------------");
        player.sendMessage(ChatColor.YELLOW + "      Instance " + args[1] + " created!");
        player.sendMessage("");
        player.sendMessage(ChatColor.GREEN + "Edit this arena via " + ChatColor.GOLD + "/vd " + args[1] + " edit" + ChatColor.GREEN + "!");
        player.sendMessage(ChatColor.BOLD + "------------------------------------------- ");
    }
}
Also used : Arena(pl.plajer.villagedefense3.arena.Arena)

Example 5 with Arena

use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.

the class Arena method joinAttempt.

/**
 * Attempts player to join arena.
 * Calls VillageGameJoinAttemptEvent.
 * Can be cancelled only via above-mentioned event
 *
 * @param p player to join
 * @see VillageGameJoinAttemptEvent
 */
public void joinAttempt(Player p) {
    VillageGameJoinAttemptEvent villageGameJoinAttemptEvent = new VillageGameJoinAttemptEvent(p, this);
    Bukkit.getPluginManager().callEvent(villageGameJoinAttemptEvent);
    if (!isReady) {
        p.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Arena-Not-Configured"));
        return;
    }
    if (villageGameJoinAttemptEvent.isCancelled()) {
        p.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Join-Cancelled-Via-API"));
        return;
    }
    if (!plugin.isBungeeActivated()) {
        if (!(p.hasPermission(PermissionsManager.getJoinPerm().replaceAll("<arena>", "*")) || p.hasPermission(PermissionsManager.getJoinPerm().replaceAll("<arena>", this.getID())))) {
            p.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Join-No-Permission"));
            return;
        }
    }
    if (Main.isDebugged()) {
        System.out.println("[Village Debugger] Player " + p.getName() + " attemping to join arena!");
    }
    if ((getArenaState() == ArenaState.IN_GAME || (getArenaState() == ArenaState.STARTING && getTimer() <= 3) || getArenaState() == ArenaState.ENDING)) {
        if (plugin.isInventoryManagerEnabled()) {
            p.setLevel(0);
            plugin.getInventoryManager().saveInventoryToFile(p);
        }
        this.teleportToStartLocation(p);
        p.sendMessage(ChatManager.colorMessage("In-Game.You-Are-Spectator"));
        p.getInventory().clear();
        ItemStack spectatorItem = new ItemStack(Material.COMPASS, 1);
        ItemMeta spectatorMeta = spectatorItem.getItemMeta();
        spectatorMeta.setDisplayName(ChatManager.colorMessage("In-Game.Spectator.Spectator-Item-Name"));
        spectatorItem.setItemMeta(spectatorMeta);
        p.getInventory().setItem(0, spectatorItem);
        p.getInventory().setItem(8, SpecialItemManager.getSpecialItem("Leave").getItemStack());
        for (PotionEffect potionEffect : p.getActivePotionEffects()) {
            p.removePotionEffect(potionEffect.getType());
        }
        this.addPlayer(p);
        p.setMaxHealth(p.getMaxHealth() + rottenFleshLevel);
        p.setHealth(p.getMaxHealth());
        p.setFoodLevel(20);
        p.setGameMode(GameMode.SURVIVAL);
        p.setAllowFlight(true);
        p.setFlying(true);
        User user = UserManager.getUser(p.getUniqueId());
        user.setSpectator(true);
        user.setFakeDead(true);
        user.setInt("orbs", 0);
        p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 1));
        ArenaUtils.hidePlayer(p, this);
        for (Player spectator : this.getPlayers()) {
            if (UserManager.getUser(spectator.getUniqueId()).isSpectator()) {
                p.hidePlayer(spectator);
            } else {
                p.showPlayer(spectator);
            }
        }
        ArenaUtils.hidePlayersOutsideTheGame(p, this);
        return;
    }
    if (plugin.isInventoryManagerEnabled()) {
        p.setLevel(0);
        plugin.getInventoryManager().saveInventoryToFile(p);
    }
    teleportToLobby(p);
    this.addPlayer(p);
    p.setHealth(p.getMaxHealth());
    p.setFoodLevel(20);
    p.getInventory().setArmorContents(new ItemStack[] { new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR) });
    p.setFlying(false);
    p.setAllowFlight(false);
    p.getInventory().clear();
    showPlayers();
    if (plugin.isBossbarEnabled()) {
        gameBar.addPlayer(p);
    }
    if (!UserManager.getUser(p.getUniqueId()).isSpectator())
        ChatManager.broadcastJoinMessage(this, p);
    User user = UserManager.getUser(p.getUniqueId());
    user.setKit(KitRegistry.getDefaultKit());
    plugin.getKitManager().giveKitMenuItem(p);
    if (getArenaState() == ArenaState.STARTING || getArenaState() == ArenaState.WAITING_FOR_PLAYERS)
        p.getInventory().setItem(SpecialItemManager.getSpecialItem("Leave").getSlot(), SpecialItemManager.getSpecialItem("Leave").getItemStack());
    p.updateInventory();
    for (Player player : getPlayers()) {
        ArenaUtils.showPlayer(player, this);
    }
    showPlayers();
}
Also used : Player(org.bukkit.entity.Player) User(pl.plajer.villagedefense3.User) VillageGameJoinAttemptEvent(pl.plajer.villagedefense3.villagedefenseapi.VillageGameJoinAttemptEvent) PotionEffect(org.bukkit.potion.PotionEffect) ItemStack(org.bukkit.inventory.ItemStack) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Aggregations

Arena (pl.plajer.villagedefense3.arena.Arena)49 Player (org.bukkit.entity.Player)28 EventHandler (org.bukkit.event.EventHandler)27 User (pl.plajer.villagedefense3.User)15 ItemStack (org.bukkit.inventory.ItemStack)9 ArenaInitializer1_11_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_11_R1)7 ArenaInitializer1_12_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_12_R1)7 ArenaInitializer1_8_R3 (pl.plajer.villagedefense3.arena.ArenaInitializer1_8_R3)7 ArenaInitializer1_9_R1 (pl.plajer.villagedefense3.arena.ArenaInitializer1_9_R1)7 FileConfiguration (org.bukkit.configuration.file.FileConfiguration)5 Villager (org.bukkit.entity.Villager)5 Zombie (org.bukkit.entity.Zombie)5 ItemMeta (org.bukkit.inventory.meta.ItemMeta)5 IronGolem (org.bukkit.entity.IronGolem)4 ArrayList (java.util.ArrayList)3 Sign (org.bukkit.block.Sign)3 PotionEffect (org.bukkit.potion.PotionEffect)3 Entity (org.bukkit.entity.Entity)2 Inventory (org.bukkit.inventory.Inventory)2 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)2