/** * find opponents by finder * @param &array $users * @param string $finder * @return false if $finder already find opponent else true * */ function findOpponent(&$users, $finder) { foreach ($users as $target => $value) { if ($finder != $target && $target[0] == 'g') { if ($users->{$finder} >= $value) { $chatId = addChat(array($finder, $target)); dropFromSearch($users, array($finder, $target), $chatId); break; } } } return true; }
function garbageCollector($params) { if (isset($_SESSION['user'])) { $users = getJsonFromFile('users.json'); if (isset($users->{$_SESSION}['user'])) { if (isset($_REQUEST['quit'])) { $users->{$_SESSION}['user']->online = false; } else { $users->{$_SESSION}['user']->online = true; $users->{$_SESSION}['user']->visited = time(); } setJsonToFile('users.json', $users); } else { $activeUsers = getJsonFromFile('active_users.json'); if (isset($activeUsers->{$_SESSION}['user'])) { if (isset($_REQUEST['quit'])) { $_SESSION['status'] = 0; dropFromSearch($activeUsers, array($_SESSION['user'])); setJsonToFile('active_users.json', $activeUsers); garbageCollector(); } } else { $_SESSION['user'] = null; garbageCollector(); } } return $_SESSION['user']; } else { return addUser(); } }