@EventHandler
	public void onProjectileLaunch(ProjectileLaunchEvent event) {

		if (!(event.getEntity().getShooter() instanceof Player)) {
			return;
		}

		Player shooter = (Player) event.getEntity().getShooter();

		if (HyperPVP.isCycling()) {
			event.getEntity().remove();
			shooter.sendMessage(ChatColor.RED + "You can't fire an " + event.getEntityType().name().toLowerCase().replace("_", " ") + " while cycling!");
			event.setCancelled(true);

		}

		for (Region region : HyperPVP.getMap().getRegions(RegionType.TEAM)) {

			/*if (region.getTeamWhitelist().contains(session.getTeam().getColor())) {
				continue;
			}*/

			if (region.hasLocation(shooter.getLocation())) {
				event.getEntity().remove();
				shooter.sendMessage(ChatColor.RED + "You can't fire an " + event.getEntityType().name().toLowerCase().replace("_", " ") + " inside a team spawn!");
				event.setCancelled(true);
				return;
			}
		}

		if (HyperPVP.getMap().getFeatures().contains("tntarrows")) {

			// Create entity
			Entity entity = HyperPVP.getMap().getWorld().spawnEntity(event.getEntity().getLocation(), EntityType.PRIMED_TNT);

			// Maintain velocity of TNT from arrow to give it a flying arrow effect.
			entity.setVelocity(event.getEntity().getVelocity());

			// Remove arrow entity
			event.getEntity().remove();	
		}
	}