update("players", [ "latitude" => $VARS["latitude"], "longitude" => $VARS["longitude"], "lastping" => date("Y-m-d H:i:s") ], [ "accountid" => getRequestUser()->getUID() ]); $where = [ "LIMIT" => 100, "ORDER" => "time" ]; $radius = false; if (!empty($VARS["radius"])) { $radius = min(10.0, $VARS["radius"] * 1.0); } if ($radius != false) { $searchbounds = $userlocation->boundingCoordinates($radius, "miles"); if (!empty($VARS["latitude"]) && !empty($VARS["longitude"])) { $where["AND"] = [ 'lat[<>]' => [$searchbounds[0]->getLatitudeInDegrees(), $searchbounds[1]->getLatitudeInDegrees()], 'long[<>]' => [$searchbounds[0]->getLongitudeInDegrees(), $searchbounds[1]->getLongitudeInDegrees()], ]; } } ob_flush(); $database->debug()->select("messages", [ "[>]players" => "accountid" ], [ "id", "time", "message", "messages.accountid", "players.nickname", "players.teamid" ], $where ); $query = ob_get_contents(); ob_clean(); $messages = $database->query($query)->fetchAll(); $myid = getRequestUser()->getUID(); for ($i = 0; $i < count($messages); $i++) { if ($messages[$i]["accountid"] == $myid) { $messages[$i]["me"] = true; } else { $messages[$i]["me"] = false; } } exitWithJson(["status" => "OK", "count" => count($messages), "messages" => $messages]);