# Бот подборающий игроков для совместной игры
## До добавления в подбор игроков
1. Пользователь может задать стандартный список игр, и при команде для добавления себя в очередь для подбора игроков, вместо всего списка игр, написать `-` (что будет означать, вставление стандартного списка игр)
2. Каждый пользователь может указать отдельных (других) пользователей, с которыми он точно не хочет играть, так что они не будут попадаться друг другу в подборе игроков
3. Администрация сервера может изменять список игр, для которых будут побираться группы игроков. Указывают минимальные и максимальные размеры групп для каждой из игр.
## Процесс добавления пользователя в подбор
1. Пользователь сервера пишет команду для добавленя себя в очередь в подбор игроков указав список игр, для которых он хочет найти игроков
2. Бот присылает уведомление об успешном входе в очередь и напоминает о команде, которую можно отправить для выхода из очереди побора
## После добавления пользователя в подбор
1. Пользователю отправляются участники его группы, если они его не устраивают, то он может остаться в очереди, и ему больше не будет предлагаться эта группа. Во время поиска групп для игр с не установленным ограничением на количество участников в группе, группы будут собираться смотря на общие отказы от вступления в группу. Этот вопрос отправляется вссем потенциальным участникам группы по очереди, на ожидание ответа от каждого выделяется некоторое количество времени, если ответ не будет получен в срок, то пользователь удаляется из очереди.
3. Бот подбирает группы игроков
4. После подбора группы игроков, бот создаёт отдельный (закрытый) голосовой канал для неё и некоторое время ожидает присоединения всех подобранных игроков.
5. Если по истечению времени, все пользователи не присоединяться, то не присоединившиеся будут удалены из очереди.
## После успешного сбора группы
1. Если кто-то выйдет из голосового канала группы, то вышедвему пользователю сообщается, что у него есть минута на присоединение обратно. Если пользователь не присоединиться, то, если количество оставшихся меньше минимального, группа расформировывается, иначе, приглашаются сначала те, кто в очереди, а потом другие группы, количество участников в которых вместиться в группу с освободившимся участником.
2. Участники группы могут проголосовать за бан другого участника в этой группе
3. Участники группы могут проголосовать за запрет/разрешение вступление новых участников в неё.
4. Любой пользователь может узнать, кто находиться в очереди подбора и в каких играх он ищет группу