private static void vanishShowPlayer(Player player, boolean doVanish) {
		// set their metadata
		if(doVanish) {
			player.setMetadata("vanished", new FixedMetadataValue(MCNSAEssentials.getInstance(), true));
		}
		else {
			player.removeMetadata("vanished", MCNSAEssentials.getInstance());
		}
		
		// now go through all players and vanish this player to them
		final Player[] onlinePlayers = Bukkit.getServer().getOnlinePlayers();
		for(Player online: onlinePlayers) {
			// skip the player currently vanishing
			if(online.equals(player)) {
				continue;
			}
			
			if(doVanish) {
				// check permissions to see if we should hide from this player
				if(!PermissionsManager.playerHasPermission(player, "vanish.seeall")) {
					// nope, they can't see everyone!
					online.hidePlayer(player);
				}
			}
			else {
				// show them to the world!
				online.showPlayer(player);
			}
		}
		
		// now check if we should drop a smoke bomb at their location
		if(smokeOnVanish) {
			Random random = new Random();
			for(int i = 0; i < 10; i++) {
				player.getWorld().playEffect(player.getLocation(), Effect.SMOKE, random.nextInt(9));
			}
		}
	}