|
|
@@ -72,7 +72,7 @@ if ($database->has('claimedcodes', ["AND" => ['code' => $VARS["code"], 'accounti |
|
|
|
|
|
|
|
$database->insert('inventory', ['accountid' => getRequestUser()->getUID(), 'itemid' => $itemid]); |
|
|
|
$database->insert('claimedcodes', ['code' => $VARS["code"], 'accountid' => getRequestUser()->getUID()]); |
|
|
|
|
|
|
|
|
|
|
|
$player = new Player(getRequestUser()); |
|
|
|
$player->stats->updateStat(PlayerStats::SCANS, 1); |
|
|
|
$player->save(); |
|
|
@@ -84,4 +84,103 @@ if ($database->has('claimedcodes', ["AND" => ['code' => $VARS["code"], 'accounti |
|
|
|
$returndata['messages'][] = $Strings->build("You found one {item}", ["item" => $itemname], false); |
|
|
|
} |
|
|
|
|
|
|
|
if (strpos($VARS["code"], "munzee") !== false && $database->has('munzee', ['accountid' => getRequestUser()->getUID()])) { |
|
|
|
|
|
|
|
if (!empty($VARS["latitude"]) && !empty($VARS["longitude"]) && !empty($VARS["accuracy"])) { |
|
|
|
$latitude = $VARS["latitude"]; |
|
|
|
$longitude = $VARS["longitude"]; |
|
|
|
$accuracy = $VARS["accuracy"]; |
|
|
|
/* Check if we need to refresh the bearer token first */ |
|
|
|
if ($database->has('munzee', ["AND" => ['accountid' => getRequestUser()->getUID(), 'expires[<=]' => (time() + 30)]])) { |
|
|
|
$url = 'https://api.munzee.com/oauth/login'; |
|
|
|
$fields = array( |
|
|
|
'client_id' => urlencode($SETTINGS["munzee"]["id"]), |
|
|
|
'client_secret' => urlencode($SETTINGS["munzee"]["secret"]), |
|
|
|
'grant_type' => 'refresh_token', |
|
|
|
'refresh_token' => $database->select('munzee', 'refreshtoken', ['accountid' => getRequestUser()->getUID()])[0] |
|
|
|
); |
|
|
|
|
|
|
|
foreach ($fields as $key => $value) { |
|
|
|
$fields_string .= $key . '=' . $value . '&'; |
|
|
|
} |
|
|
|
rtrim($fields_string, '&'); |
|
|
|
|
|
|
|
$ch = curl_init(); |
|
|
|
|
|
|
|
$options = array( |
|
|
|
CURLOPT_URL => $url, |
|
|
|
CURLOPT_POST => 1, |
|
|
|
CURLOPT_POSTFIELDS => $fields_string, |
|
|
|
CURLOPT_RETURNTRANSFER => 1, // return web page |
|
|
|
CURLOPT_HEADER => false, // don't return headers |
|
|
|
CURLOPT_ENCODING => "", // handle compressed |
|
|
|
CURLOPT_USERAGENT => "TerranQuest Game Server", // name of client |
|
|
|
CURLOPT_AUTOREFERER => true, // set referrer on redirect |
|
|
|
CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect |
|
|
|
CURLOPT_TIMEOUT => 120, // time-out on response |
|
|
|
); |
|
|
|
curl_setopt_array($ch, $options); |
|
|
|
|
|
|
|
$result = curl_exec($ch); |
|
|
|
|
|
|
|
curl_close($ch); |
|
|
|
|
|
|
|
$data = json_decode($result, TRUE)['data']; |
|
|
|
$status_code = json_decode($result, TRUE)['status_code']; |
|
|
|
if ($status_code == 200) { |
|
|
|
$database->update('munzee', ['bearertoken' => $data['token']['access_token'], 'refreshtoken' => $data['token']['refresh_token'], 'expires' => $data['token']['expires']], ['accountid' => getRequestUser()->getUID()]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* Check again now */ |
|
|
|
if ($database->has('munzee', ["AND" => ['accountid' => getRequestUser()->getUID(), 'expires[>]' => (time() + 30)]])) { |
|
|
|
$url = 'https://api.munzee.com/capture/light/'; |
|
|
|
$header = array( |
|
|
|
'Authorization: ' . $database->select('munzee', ['bearertoken'], ['accountid' => getRequestUser()->getUID()])[0]['bearertoken'] |
|
|
|
); |
|
|
|
|
|
|
|
$time = time(); |
|
|
|
$fields = ['data' => json_encode([ |
|
|
|
"language" => "EN", |
|
|
|
"latitude" => $latitude, |
|
|
|
"longitude" => $longitude, |
|
|
|
"accuracy" => $accuracy, |
|
|
|
"time" => time(), |
|
|
|
"code" => $VARS["code"] |
|
|
|
]) |
|
|
|
]; |
|
|
|
//open connection |
|
|
|
$ch = curl_init(); |
|
|
|
|
|
|
|
$options = array( |
|
|
|
CURLOPT_URL => $url, |
|
|
|
CURLOPT_POST => true, |
|
|
|
CURLOPT_POSTFIELDS => $fields, |
|
|
|
CURLOPT_HTTPHEADER => $header, |
|
|
|
CURLOPT_RETURNTRANSFER => true, // return web page |
|
|
|
CURLOPT_HEADER => false, // don't return headers |
|
|
|
CURLOPT_FOLLOWLOCATION => true, // follow redirects |
|
|
|
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects |
|
|
|
CURLOPT_ENCODING => "", // handle compressed |
|
|
|
CURLOPT_USERAGENT => "TerranQuest Game Server", // name of client |
|
|
|
CURLOPT_AUTOREFERER => true, // set referrer on redirect |
|
|
|
CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect |
|
|
|
CURLOPT_TIMEOUT => 120, // time-out on response |
|
|
|
); |
|
|
|
curl_setopt_array($ch, $options); |
|
|
|
|
|
|
|
$result = curl_exec($ch); |
|
|
|
//close connection |
|
|
|
curl_close($ch); |
|
|
|
|
|
|
|
|
|
|
|
$data = json_decode($result, TRUE); |
|
|
|
if ($data['status_code'] == 200) { |
|
|
|
// Add munzee capture info to response |
|
|
|
$returndata["munzee"] = $data["data"]["result"]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
exitWithJson($returndata); |