@Override
    public void run()
    {
        System.out.println("GameQueues have started.");
        while(true) {
            checkQueues();
            if(waitingUsers.isEmpty())
            {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(GameQueues.class.getName()).log(Level.SEVERE, null, ex);
                }
                continue;
            }
            for(User u: waitingUsers)
            {
                if(!u.loggedIn)
                {
                    waitingUsers.remove(u);
                    continue;
                }
                    
                if(queues.isEmpty())
                {
                    GameQueue q = new GameQueue();
                    q.addUser(u);
                    queues.add(q);
                    waitingUsers.remove(u);
                    continue;
                }
                for(GameQueue q: queues)
                {
                    if(q.checkUserMMR(u))
                    {
                        q.addUser(u);
                        waitingUsers.remove(u);
                        break;
                    }
                }
            }
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(GameQueues.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }