@EventHandler public void onPlayerDeath(PlayerDeathEvent e) { FileConfiguration locationsFile = YamlConfiguration.loadConfiguration(Main.getInstance().locations); Player p = e.getEntity(); p.setHealth(20); p.setFoodLevel(20); p.setGameMode(GameMode.SPECTATOR); if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has dropped the needed block!")); neededBlockMaterial = String.valueOf( p.getLocation().getBlock().getTypeId() + ";" + p.getLocation().getBlock().getData()); p.getLocation() .getBlock() .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false); neededBlock = p.getLocation(); } gameManager.setCarrying(p, 0); blockManager.dropBlock(p.getLocation(), blockManager.playerBlocks.get(p.getName())); new BukkitRunnable() { int i = 10; public void run() { i--; if (i > 0) { Title title = new Title(Color.np("&6Respawning in &e" + String.valueOf(i)), "", 5, 10, 5); title.sendToPlayer(p); } else { this.cancel(); p.setGameMode(GameMode.SURVIVAL); if (teamManager.getTeam(p) == Team.BLUE) { p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.blue.1"))); } else if (teamManager.getTeam(p) == Team.RED) { p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.red.1"))); } } } }.runTaskTimer(Main.getInstance(), 0, 20); }
@EventHandler public void onAreaWalk(AreaWalkEvent e) { if (GameState.getState() != GameState.ENDING) { Player p = e.getPlayer(); Area a = e.getArea(); if (p.getGameMode() == GameMode.SURVIVAL) { if (a != null) { if (e.isBlockSpawn()) { int block = nexusManager.getColor(a); if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { if (block != nexusManager.getCurrentNexusColor()) { if (!blockManager.isTaken(a)) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has dropped the needed block. It has been brought back to it's original location.")); nexusManager .getNeededBlockArea() .getBlockSpawnBlock() .getBlock() .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false); blockManager.forcePickUpBlock(p, a); isPickedUp = false; } } } else if (!blockManager.isTaken(a)) { blockManager.forcePickUpBlock(p, a); } if (nexusManager.getColor(e.getArea()) == nexusManager.getCurrentNexusColor()) { if (!isPickedUp) { Bukkit.broadcastMessage( Color.np( "&6The " + teamManager.getTeam(p).getTeamName() + " &6team has picked up the needed block!")); a.getBlockSpawnBlock().getBlock().setType(Material.AIR); if (GameManager.getCarrying(p) != 0 && GameManager.getCarrying(p) != nexusManager.getCurrentNexusColor()) { blockManager.resetBlock(a.getBlockSpawnBlock(), a); } GameManager.setCarrying(p, nexusManager.getCurrentNexusColor()); isPickedUp = true; } } } else { Team spawn = getTeam(a); int carrying = gameManager.getCarrying(p); if (spawn == teamManager.getTeam(p)) { if (carrying == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&6The " + spawn.getTeamName() + " &6team has brought the block to their base first!")); GameManager.addPoint(spawn); gameManager.setCarrying(p, 0); nexusManager.generateNewNexus(); } else { if (carrying != 0) { GameManager.addPoint(teamManager.getTeam(p).getOpposite()); GameManager.setCarrying(p, 0); Bukkit.broadcastMessage( Color.np( "&cThe " + spawn.getTeamName() + " &cteam has brought the wrong block to their base!")); } } } else { if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) { Bukkit.broadcastMessage( Color.np( "&cThe " + spawn.getOpposite().getTeamName() + " &cteam has brought the block to the wrong base!")); GameManager.addPoint(spawn); gameManager.setCarrying(p, 0); nexusManager.generateNewNexus(); } } } } } } }