public void keyboard() {
		
		String defualt_key = config.getKeyBinding();
		log.logDebug("The defualt keyboard key is: " + defualt_key);
		
		KeyBindingManager bindingmanager = SpoutManager.getKeyBindingManager();
		bindingmanager.registerBinding("Start vote!", keyboard_translate.Translate(defualt_key), "Starts a new voting session.", new BindingExecutionDelegate() {
			@Override
			public void keyPressed(KeyBindingEvent arg0) {
				
				// Check if player is in chat
				if (arg0.getScreenType() == ScreenType.GAME_SCREEN) {
					
					log.logDebug("Player: " + arg0.getPlayer().getName() + " has pressed the keybind!");
						
					// Make sure that the player doesn't start another vote on a separate world
					if (player_started_a_vote.containsKey(arg0.getPlayer())) {
						if (!player_started_a_vote.get(arg0.getPlayer())) {
							if (votestarthandler.onCommand(arg0.getPlayer(), vote_session_world, votes, voted)) {
								runVote(arg0.getPlayer().getWorld());
								
								vote_session_world = votestarthandler.vote_session_world();
								votes = votestarthandler.votes();
								voted = votestarthandler.voted();
								
								player_world.put(arg0.getPlayer(), arg0.getPlayer().getWorld());
								player_started_a_vote.put(arg0.getPlayer(), true);
							}
						}
						else {
							arg0.getPlayer().sendMessage(chat.chatWarning(languagehandler.voteAlreadyStarted()));
						}
					}
					else {
						if (votestarthandler.onCommand(arg0.getPlayer(), vote_session_world, votes, voted)) {
							runVote(arg0.getPlayer().getWorld());
							
							vote_session_world = votestarthandler.vote_session_world();
							votes = votestarthandler.votes();
							voted = votestarthandler.voted();
							
							player_world.put(arg0.getPlayer(), arg0.getPlayer().getWorld());
							player_started_a_vote.put(arg0.getPlayer(), true);
						}
					}
				}
			}

			@Override
			public void keyReleased(KeyBindingEvent arg0) {
				// Unused
			}
		}, this);
	}