private static void matchRoles() {
		final ArrayList<Player> matched = new ArrayList<Player>();
		final int maxtraitors = TIMV.config.getInt("MaxTraitors");
		final int maxdetectives = TIMV.config.getInt("MaxDetective");
		final Random r = new Random();
		for (final Player player : Bukkit.getOnlinePlayers()) {
			if (!matched.contains(player)) {
				//Forced (by /traitor or /detectives) add to matched
				if (Lobby.forcedDetectives.contains(player)) {
					Detectives.add(player);
					matched.add(player);
				} else if (Lobby.forcedTraitors.contains(player)) {
					Traitors.add(player);
					matched.add(player);
				} else {
					int randnum = r.nextInt(3);
					if (randnum == 1) {
						//Add as traitor
						if (!(Traitors.size() >= maxtraitors)) {
							Traitors.add(player);
						} else if (!(Detectives.size() >= maxdetectives)) {
							Detectives.add(player);
						} else {
							Innocents.add(player);
						}
						matched.add(player);
					} else if (randnum == 2) {
						//Add as detective
						if (!(Detectives.size() >= maxtraitors)) {
							Detectives.add(player);
						} else {
							Innocents.add(player);
						}
						matched.add(player);
					} else {
						//Add as innocent
						Innocents.add(player);
						matched.add(player);
					}
				}
			} else {
				//Already matched :P
			}
		}
	}