private void runVote(World current_world) {
		
		//vote_session = true;
		
		// Set the worlds vote session to true
		vote_session_world.put(current_world, true);
		
		Player players [] = current_world.getPlayers().toArray(new Player[0]);
		
		for (int i = 0;i < players.length; i++) {
			if (vote_session_world.containsKey(players[i].getWorld())) {
				
				// Check if players are on a voting world!
				if (vote_session_world.get(players[i].getWorld())) {
					
					// If player is a SpoutPlayer (Don't know if its a bug, but this seems to always return true)
					if (players[i] instanceof SpoutPlayer) {
						
						// Create the spoutplayer local object and parse it player
						SpoutPlayer spoutplayer = (SpoutPlayer) players[i];
						
						log.logDebug("Adding player: " + players[i].getName() + " to world Map: " + players[i].getWorld());
						player_world.put(players[i], players[i].getWorld());
						
						if (spoutplayer.isSpoutCraftEnabled()) {
							log.logDebug("Spout player is: " + spoutplayer.getName());
							
							// Check if player has permission
							if (spoutplayer.hasPermission("voteforday.vote") | spoutplayer.isOp()) {
								spoutplayer.sendNotification("Vote!",languagehandler.StartVoting() , Material.BONE);
								VoteGUI popup = new VoteGUI(spoutplayer, languagehandler);
								spoutplayer.getMainScreen().attachPopupScreen(popup);
								voteProgressGUI = new VoteProgress(spoutplayer, this, languagehandler);
								player_voteProgress_object.put(spoutplayer, voteProgressGUI);
								//voteProgressGUI.createGUI(spoutplayer, this);
								voteProgressGUI.reset_GUI(spoutplayer);
							}
						}
						else {
							// Check if player has permission
							if (players[i].hasPermission("voteforday.vote")) {
								players[i].sendMessage(chat.chatInfo(languagehandler.StartVoting()));
							}
						}
						
					}
				}
			}	
		}
		
		// Call end method to check results!
		voteEnd(players, current_world);
	}