本文整理汇总了PHP中UUID::Random方法的典型用法代码示例。如果您正苦于以下问题:PHP UUID::Random方法的具体用法?PHP UUID::Random怎么用?PHP UUID::Random使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UUID
的用法示例。
在下文中一共展示了UUID::Random方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Execute
public function Execute($db, $params)
{
// TODO: Sanity check the expiration date
// TODO: Also run a regex on Resource to make sure it's a valid (relative or absolute) URL
if (!isset($params["OwnerID"], $params["Resource"], $params["Expiration"]) || !UUID::TryParse($params["OwnerID"], $this->OwnerID)) {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid parameters" }';
exit;
}
if (!isset($params["CapabilityID"]) || !UUID::TryParse($params["CapabilityID"], $this->CapabilityID)) {
$this->CapabilityID = UUID::Random();
}
$resource = $params["Resource"];
$expiration = $params["Expiration"];
$sql = "INSERT INTO Capabilities (ID, OwnerID, Resource, ExpirationDate) VALUES (:ID, :OwnerID, :Resource, :ExpirationDate)\n ON DUPLICATE KEY UPDATE OwnerID=VALUES(OwnerID), Resource=VALUES(Resource), ExpirationDate=VALUES(ExpirationDate)";
$sth = $db->prepare($sql);
if ($sth->execute(array(':ID' => $this->CapabilityID, ':OwnerID' => $this->OwnerID, ':Resource' => $resource, ':ExpirationDate' => $expiration))) {
header("Content-Type: application/json", true);
echo sprintf('{"Success": true, "CapabilityID": "%s"}', $this->CapabilityID);
exit;
} else {
log_message('error', sprintf("Error occurred during query: %d %s", $sth->errorCode(), print_r($sth->errorInfo(), true)));
log_message('debug', sprintf("Query: %s", $sql));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
}
示例2: Execute
public function Execute($db, $params)
{
$this->inventory = new ALT($db);
$folderid = '';
if (!isset($params["FolderID"]) || !UUID::TryParse($params["FolderID"], $folderid)) {
$folderid = UUID::Random();
}
$this->Folder = new InventoryFolder($folderid);
if (!isset($params, $params["Name"], $params["ParentID"], $params["OwnerID"]) || !UUID::TryParse($params["ParentID"], $this->Folder->ParentID) || !UUID::TryParse($params["OwnerID"], $this->Folder->OwnerID)) {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid parameters" }';
exit;
}
$this->Folder->Name = trim($params["Name"]);
$this->Folder->ContentType = isset($params["ContentType"]) && trim($params["ContentType"]) != '' ? trim($params["ContentType"]) : 'application/octet-stream';
$this->Folder->ExtraData = isset($params["ExtraData"]) ? trim($params["ExtraData"]) : '';
try {
$result = $this->inventory->InsertNode($this->Folder);
if ($result != FALSE) {
header("Content-Type: application/json", true);
echo sprintf('{ "Success": true, "FolderID": "%s" }', $result);
exit;
} else {
header("Content-Type: application/json", true);
echo '{ "Message": "Folder creation failed" }';
exit;
}
} catch (Exception $ex) {
log_message('error', sprintf("Error occurred during query: %s", $ex));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
}
示例3: Execute
public function Execute($db, $params)
{
if (!isset($params["OwnerID"], $params["Resource"], $params["Expiration"]) || !UUID::TryParse($params["OwnerID"], $this->OwnerID)) {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid parameters" }';
exit;
}
if (!isset($params["CapabilityID"]) || !UUID::TryParse($params["CapabilityID"], $this->CapabilityID)) {
$this->CapabilityID = UUID::Random();
}
$resource = $params["Resource"];
$expiration = intval($params["Expiration"]);
// Sanity check the expiration date
if ($expiration <= time()) {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid expiration date ' . $expiration . '" }';
exit;
}
log_message('debug', "Creating capability " . $this->CapabilityID . " owned by " . $this->OwnerID . " mapping to {$resource} until {$expiration}");
$sql = "INSERT INTO Capabilities (ID, OwnerID, Resource, ExpirationDate) VALUES (:ID, :OwnerID, :Resource, FROM_UNIXTIME(:ExpirationDate))\n ON DUPLICATE KEY UPDATE ID=VALUES(ID), Resource=VALUES(Resource), ExpirationDate=VALUES(ExpirationDate)";
$sth = $db->prepare($sql);
if ($sth->execute(array(':ID' => $this->CapabilityID, ':OwnerID' => $this->OwnerID, ':Resource' => $resource, ':ExpirationDate' => $expiration))) {
header("Content-Type: application/json", true);
echo sprintf('{"Success": true, "CapabilityID": "%s"}', $this->CapabilityID);
exit;
} else {
log_message('error', sprintf("Error occurred during query: %d %s", $sth->errorCode(), print_r($sth->errorInfo(), true)));
log_message('debug', sprintf("Query: %s", $sql));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
}
示例4: testStoreAsset
public function testStoreAsset()
{
$headers = array('X-Asset-Creator-Id' => (string) UUID::Random(), 'X-Asset-Id' => UUID::Zero);
$r = new HttpRequest($this->server_url, HttpRequest::METH_POST);
$r->addHeaders($headers);
$r->AddPostFile(UUID::Random(), "eyewhite.tga", "image/tga");
$r->send();
$this->AssetSHA = sha1(file_get_contents('eyewhite.tga'));
$this->assertEquals(201, $r->getResponseCode());
if (file_exists('test.assetid')) {
unlink('test.assetid');
}
file_put_contents('test.assetid', (string) UUID::Parse($r->getResponseHeader("X-Asset-Id")));
}
示例5: Execute
public function Execute($db, $params)
{
$this->inventory = new ALT($db);
$itemid = null;
if (!isset($params["ItemID"]) || !UUID::TryParse($params["ItemID"], $itemid)) {
$itemid = UUID::Random();
}
$this->Item = new InventoryItem($itemid);
if (!isset($params, $params["AssetID"], $params["Name"], $params["ParentID"], $params["OwnerID"]) || !UUID::TryParse($params["ParentID"], $this->Item->ParentID) || !UUID::TryParse($params["AssetID"], $this->Item->AssetID) || !UUID::TryParse($params["OwnerID"], $this->Item->OwnerID)) {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid parameters" }';
exit;
}
$this->Item->Name = trim($params["Name"]);
$this->Item->Description = isset($params["Description"]) ? $params["Description"] : '';
$this->Item->ExtraData = isset($params["ExtraData"]) ? $params["ExtraData"] : '';
// If the CreatorID is not set, invalid, or zero, we set CreatorID to NULL so the database
// layer will fetch CreatorID information based on AssetID
if (!isset($params["CreatorID"]) || !UUID::TryParse($params["CreatorID"], $this->Item->CreatorID) || $this->Item->CreatorID == '00000000-0000-0000-0000-000000000000') {
$this->Item->CreatorID = null;
}
// If ContentType is not given the database layer will fetch ContentType information based
// on AssetID
if (isset($params["ContentType"])) {
$this->Item->ContentType = $params["ContentType"];
}
try {
$result = $this->inventory->InsertNode($this->Item);
if ($result != false) {
header("Content-Type: application/json", true);
echo sprintf('{ "Success": true, "ItemID": "%s" }', $result);
exit;
} else {
header("Content-Type: application/json", true);
echo '{ "Message": "Item creation failed" }';
exit;
}
} catch (Exception $ex) {
log_message('error', sprintf("Error occurred during query: %s", $ex));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
}
示例6: Execute
public function Execute($db, $params)
{
$asset = null;
$assetID = null;
$response = array();
if (isset($params["EncodedData"]) && isset($params["ContentType"])) {
log_message('debug', "xAddAsset asset");
// Build the asset structure from the parameters
$asset = new Asset();
if (!isset($params["AssetID"]) || !UUID::TryParse($params["AssetID"], $asset->ID)) {
$asset->ID = UUID::Random();
}
if (!isset($params["CreatorID"]) || !UUID::TryParse($params["CreatorID"], $asset->CreatorID)) {
$asset->CreatorID = UUID::Zero;
}
$asset->Data = base64_decode($params["EncodedData"]);
$asset->SHA256 = hash("sha256", $asset->Data);
$asset->ContentLength = strlen($asset->Data);
$asset->ContentType = $params["ContentType"];
$asset->Temporary = !empty($params["Temporary"]);
$asset->Public = !empty($params["Public"]);
$assets = new SQLAssets($db);
$created = false;
if ($assets->AddAsset($asset, $created)) {
$response['Success'] = TRUE;
$response['AssetID'] = $asset->ID;
$response['Status'] = $created ? "created" : "updated";
} else {
log_message('warn', 'failed to create asset');
$response['Success'] = FALSE;
$response['Message'] = 'failed to create the asset';
}
} else {
$response['Success'] = FALSE;
$response['Message'] = 'missing required parameters';
}
log_message('debug', sprintf("[AddAsset] result %s", json_encode($response)));
header("Content-Type: application/json", true);
echo json_encode($response);
exit;
}
示例7: __construct
public function __construct($name, $userid)
{
/* folder information */
$Name = $name;
$RootID = $userid;
$parent_0 = UUID::Random();
$parent_1 = UUID::Random();
$parent_2 = UUID::Random();
$parent_3 = UUID::Random();
$parent_4 = UUID::Random();
$parent_5 = UUID::Random();
$parent_6 = UUID::Random();
$parent_7 = UUID::Random();
$parent_8 = UUID::Random();
$parent_9 = UUID::Random();
$parent_10 = UUID::Random();
$parent_11 = UUID::Random();
$parent_12 = UUID::Random();
$parent_13 = UUID::Random();
$parent_14 = UUID::Random();
$this->gFolders = array($this->MakeFolder($RootID, UUID::Parse(UUID::Zero), $Name, 'application/vnd.ll.folder'), $this->MakeFolder($parent_0, $RootID, 'Objects', 'application/vnd.ll.primitive'), $this->MakeFolder($parent_1, $RootID, 'Gestures', 'application/vnd.ll.gesture'), $this->MakeFolder($parent_2, $RootID, 'Sounds', 'application/ogg'), $this->MakeFolder($parent_3, $RootID, 'Landmarks', 'application/vnd.ll.landmark'), $this->MakeFolder($parent_4, $RootID, 'Clothing', 'application/vnd.ll.clothing'), $this->MakeFolder($parent_5, $RootID, 'Calling Cards', 'application/vnd.ll.callingcard'), $this->MakeFolder($parent_6, $RootID, 'Photo Album', 'application/vnd.ll.snapshotfolder'), $this->MakeFolder($parent_7, $RootID, 'Scripts', 'application/vnd.ll.lsltext'), $this->MakeFolder($parent_8, $RootID, 'Notecards', 'application/vnd.ll.notecard'), $this->MakeFolder($parent_9, $RootID, 'Textures', 'image/x-j2c'), $this->MakeFolder($parent_10, $RootID, 'Trash', 'application/vnd.ll.trashfolder'), $this->MakeFolder($parent_11, $RootID, 'Lost and Found', 'application/vnd.ll.lostandfoundfolder'), $this->MakeFolder($parent_12, $RootID, 'Body Parts', 'application/vnd.ll.bodypart'), $this->MakeFolder($parent_13, $RootID, 'Animations', 'application/vnd.ll.animation'), $this->MakeFolder($parent_14, $parent_4, 'Default Outfit', 'application/octet-stream'));
$this->gItems = array($this->MakeItem($parent_14, 'Default Eyes', '78d20332-9b07-44a2-bf74-3b368605f4b5', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'), $this->MakeItem($parent_14, 'Default Shape', '530a2614-052e-49a2-af0e-534bb3c05af0', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'), $this->MakeItem($parent_14, 'Default Shirt', '6a714f37-fe53-4230-b46f-8db384465981', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'), $this->MakeItem($parent_14, 'Default Skin', '5f787f25-f761-4a35-9764-6418ee4774c4', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'), $this->MakeItem($parent_14, 'Default Hair', 'dc675529-7ba5-4976-b91d-dcb9e5e36188', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'), $this->MakeItem($parent_14, 'Default Pants', '3e8ee2d6-4f21-4a55-832d-77daa505edff', 'fd6e9c85-2fc3-478d-ad1b-e9bd382b78a9', '{}'));
$this->gAppearance = array('serial' => 1, 'height' => 1.8, 'hipoffset' => 0, 'wearables' => array(array($this->MakeWearable($parent_14, 'Default Shape', '530a2614-052e-49a2-af0e-534bb3c05af0')), array($this->MakeWearable($parent_14, 'Default Skin', '5f787f25-f761-4a35-9764-6418ee4774c4')), array($this->MakeWearable($parent_14, 'Default Hair', 'dc675529-7ba5-4976-b91d-dcb9e5e36188')), array($this->MakeWearable($parent_14, 'Default Eyes', '78d20332-9b07-44a2-bf74-3b368605f4b5')), array($this->MakeWearable($parent_14, 'Default Shirt', '6a714f37-fe53-4230-b46f-8db384465981')), array($this->MakeWearable($parent_14, 'Default Pants', '3e8ee2d6-4f21-4a55-832d-77daa505edff')), array(), array(), array(), array(), array(), array(), array(), array(), array()));
}
示例8: create_opensim_presence
function create_opensim_presence($scene, $userID, $circuitCode, $fullName, $appearance, $sessionID, $secureSessionID, $startPosition, &$seedCapability)
{
$config =& get_config();
$serviceurls = array('GatekeeperURI' => $config['hypergrid_uri'], 'HomeURI' => $config['hypergrid_uri'], 'InventoryServerURI' => $config['hg_inventory_service'], 'AssetServerURI' => $config['hg_asset_service'], 'ProfileServerURI' => $config['hg_user_service'], 'FriendsServerURI' => $config['hypergrid_uri'], 'IMServerURI' => $config['hypergrid_uri']);
$capsPath = UUID::Random();
return create_opensim_presence_full($scene->Address, $scene->Name, $scene->SceneID, $scene->MinPosition->X, $scene->MinPosition->Y, $userID, $circuitCode, $fullName, $appearance, $sessionID, $secureSessionID, $startPosition, $capsPath, null, $serviceurls, 128, null, $seedCapability);
}
示例9: homeagent_handler
function homeagent_handler($path_tail, $data)
{
log_message('info', "[hypergrid] homeagent_handler called");
$data = decodedata($data);
$userid = $path_tail[0];
log_message('info', "homeagent_handler called for {$userid} with {$data}");
$osd = decode_recursive_json($data);
if ($osd == null) {
log_message('error', sprintf('[hypergrid] failed to decode foreignagent json string %s', $data));
sendresponse(false, 'failed to decode foreignagent string');
}
$gatekeeper_uri = $osd['gatekeeper_serveruri'];
if (!isset($osd['destination_x'])) {
$osd['destination_x'] = 128;
}
if (!isset($osd['destination_y'])) {
$osd['destination_y'] = 128;
}
if (!isset($osd['client_ip'])) {
$session = get_session($userid);
if (!isset($session['ExtraData']['ClientIP'])) {
log_message('warn', "[hypergrid] no client ip found in session, this is going to fail");
sendresponse(false, 'no client ip found in the session');
}
$osd['client_ip'] = $session['ExtraData']['ClientIP'];
}
if (!isset($osd['service_session_id'])) {
log_message('debug', 'missing service_session_id, generating a new one');
$osd['service_session_id'] = $gatekeeper_uri . ';' . UUID::Random();
}
/* $dest_uuid = $osd['destination_uuid']; */
/* $caps_path = $osd['caps_path']; */
/* $username = $osd['first_name'] . ' ' . $osd['last_name']; */
/* $circuit_code = $osd['circuit_code']; */
/* $session_id = $osd['session_id']; */
/* $secure_session_id = $osd['secure_session_id']; */
/* $start_pos = $osd['start_pos']; */
/* $appearance = $osd['packed_appearance']; */
/* $server_uri = $osd['destination_serveruri']; */
$data = json_encode($osd);
log_message('info', "[hypergrid] login to region with {$data}");
$result = array();
if (hg_login($gatekeeper_uri, $userid, $data, $yourip)) {
$result['success'] = true;
$result['reason'] = "success";
$result['your_ip'] = $yourip;
//echo '{"success": true, "reason": "success"}';
} else {
$result['success'] = false;
$result['reason'] = "hypergrid login failed";
$result['your_ip'] = $yourip;
// echo '{"success": false, "reason": "hypergrid login failed"}';
}
$jresult = json_encode($result);
log_message('info', "[hypergrid] homeagent returns {$jresult}");
echo $jresult;
exit;
}
示例10: Execute
public function Execute($db, $params)
{
if (isset($params["UserID"]) && UUID::TryParse($params["UserID"], $this->UserID)) {
if (isset($params["ExtraData"])) {
$this->ExtraData = $params["ExtraData"];
} else {
$this->ExtraData = NULL;
}
if (isset($params["SessionID"], $params["SecureSessionID"]) && UUID::TryParse($params['SessionID'], $this->SessionID) && UUID::TryParse($params['SecureSessionID'], $this->SecureSessionID)) {
// Creating or updating a user session
$sql = "INSERT INTO Sessions (UserID, SessionID, SecureSessionID, ExtraData, SceneID, ScenePosition, SceneLookAt)\n VALUES (:UserID, :SessionID, :SecureSessionID, :ExtraData, '00000000-0000-0000-0000-000000000000', '<0, 0, 0>', '<0, 0, 0>')\n ON DUPLICATE KEY UPDATE SessionID=VALUES(SessionID), SecureSessionID=VALUES(SecureSessionID)";
$sth = $db->prepare($sql);
if ($sth->execute(array(':UserID' => $this->UserID, ':SessionID' => $this->SessionID, ':SecureSessionID' => $this->SecureSessionID, ':ExtraData' => $this->ExtraData))) {
if ($sth->rowCount() > 0) {
header("Content-Type: application/json", true);
echo sprintf('{ "Success": true, "SessionID": "%s", "SecureSessionID": "%s" }', $this->SessionID, $this->SecureSessionID);
exit;
} else {
log_message('error', "Failed updating the database");
header("Content-Type: application/json", true);
echo '{ "Message": "Database update failed" }';
exit;
}
} else {
log_message('error', sprintf("Error occurred during query: %d %s", $sth->errorCode(), print_r($sth->errorInfo(), true)));
log_message('debug', sprintf("Query: %s", $sql));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
} else {
// Creating or fetching a user session
$this->SessionID = UUID::Random();
$this->SecureSessionID = UUID::Random();
$sql = "INSERT INTO Sessions (UserID, SessionID, SecureSessionID, ExtraData, SceneID, ScenePosition, SceneLookAt)\n VALUES (:UserID, :SessionID, :SecureSessionID, :ExtraData, '00000000-0000-0000-0000-000000000000', '<0, 0, 0>', '<0, 0, 0>')";
$sth = $db->prepare($sql);
if ($sth->execute(array(':UserID' => $this->UserID, ':SessionID' => $this->SessionID, ':SecureSessionID' => $this->SecureSessionID, ':ExtraData' => $this->ExtraData))) {
if ($sth->rowCount() > 0) {
header("Content-Type: application/json", true);
echo sprintf('{ "Success": true, "SessionID": "%s", "SecureSessionID": "%s" }', $this->SessionID, $this->SecureSessionID);
exit;
} else {
log_message('error', "Failed updating the database");
header("Content-Type: application/json", true);
echo '{ "Message": "Database update failed" }';
exit;
}
} else {
$sql = "SELECT SessionID, SecureSessionID FROM Sessions WHERE UserID=:UserID";
$sth = $db->prepare($sql);
if ($sth->execute(array(':UserID' => $this->UserID))) {
if ($sth->rowCount() > 0) {
$obj = $sth->fetchObject();
header("Content-Type: application/json", true);
echo sprintf('{ "Success": true, "SessionID": "%s", "SecureSessionID": "%s" }', $obj->SessionID, $obj->SecureSessionID);
exit;
} else {
log_message('error', "Failed retrieving user session from the database");
header("Content-Type: application/json", true);
echo '{ "Message": "No user session found" }';
exit;
}
} else {
log_message('error', sprintf("Error occurred during query: %d %s", $sth->errorCode(), print_r($sth->errorInfo(), true)));
log_message('debug', sprintf("Query: %s", $sql));
header("Content-Type: application/json", true);
echo '{ "Message": "Database query error" }';
exit;
}
}
}
} else {
header("Content-Type: application/json", true);
echo '{ "Message": "Invalid parameters" }';
exit;
}
}
示例11: testUpdatePresence
public function testUpdatePresence()
{
$User = unserialize(file_get_contents('user1.dat'));
$a = array('RequestMethod' => 'UpdatePresence', 'UserID' => (string) $User->ID, 'Location' => (string) UUID::Random(), 'Position' => '<192, 192, 192>', 'LookAt' => '<-1, -1, -1>');
$r = new HttpRequest($this->server_url, HttpRequest::METH_POST);
$r->addPostFields($a);
$r->send();
$this->assertEquals(200, $r->getResponseCode());
}
示例12: execute_command
$asset->ID = $uuid;
execute_command('GetAsset', $capability, $db, $asset);
exit;
} else {
// Regular GET request
$gMethodName = '(Webpage)';
echo 'SimianGrid';
exit;
}
} else {
if (isset($_SERVER['CONTENT_TYPE']) && stripos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== FALSE) {
if (isset($_FILES['Asset']) && count($_FILES) == 1) {
// Asset upload
$asset = new Asset();
if (!isset($_POST['AssetID']) || !UUID::TryParse($_POST['AssetID'], $asset->ID)) {
$asset->ID = UUID::Random();
}
if (!isset($_POST['CreatorID']) || !UUID::TryParse($_POST['CreatorID'], $asset->CreatorID)) {
$asset->CreatorID = UUID::Zero;
}
if (!empty($_FILES['Asset']['tmp_name'])) {
$tmpName = $_FILES['Asset']['tmp_name'];
$fp = fopen($tmpName, 'r');
$asset->Data = fread($fp, filesize($tmpName));
fclose($fp);
$asset->SHA256 = hash_file('sha256', $tmpName);
$asset->ContentLength = filesize($tmpName);
$asset->ContentType = $_FILES['Asset']['type'];
$asset->Temporary = !empty($_POST['Temporary']);
if (isset($_POST['Public'])) {
$asset->Public = $_POST['Public'] ? TRUE : FALSE;
示例13: create_opensim_presence
function create_opensim_presence($scene, $userID, $circuitCode, $fullName, $appearance, $attachments, $sessionID, $secureSessionID, $startPosition, &$seedCapability)
{
$regionBaseUrl = $scene->Address;
if (!ends_with($regionBaseUrl, '/')) {
$regionBaseUrl .= '/';
}
$regionUrl = $regionBaseUrl . 'agent/' . $userID . '/';
list($firstName, $lastName) = explode(' ', $fullName);
$capsPath = UUID::Random();
$wearables = array();
$attached = array();
if (isset($appearance)) {
add_wearable($wearables, $appearance, 'Shape');
add_wearable($wearables, $appearance, 'Skin');
add_wearable($wearables, $appearance, 'Hair');
add_wearable($wearables, $appearance, 'Eyes');
add_wearable($wearables, $appearance, 'Shirt');
add_wearable($wearables, $appearance, 'Pants');
add_wearable($wearables, $appearance, 'Shoes');
add_wearable($wearables, $appearance, 'Socks');
add_wearable($wearables, $appearance, 'Jacket');
add_wearable($wearables, $appearance, 'Gloves');
add_wearable($wearables, $appearance, 'Undershirt');
add_wearable($wearables, $appearance, 'Underpants');
add_wearable($wearables, $appearance, 'Skirt');
}
if (isset($attachments)) {
$i = 0;
foreach ($attachments as $key => $item) {
if (substr($key, 0, 4) === '_ap_') {
$point = (int) substr($key, 4);
$attached[$i++] = array('point' => $point, 'item' => $item);
}
}
}
$response = webservice_post($regionUrl, array('agent_id' => $userID, 'caps_path' => $capsPath, 'child' => false, 'circuit_code' => $circuitCode, 'first_name' => $firstName, 'last_name' => $lastName, 'session_id' => $sessionID, 'secure_session_id' => $secureSessionID, 'start_pos' => (string) $startPosition, 'appearance_serial' => 1, 'destination_x' => $scene->MinPosition->X, 'destination_y' => $scene->MinPosition->Y, 'destination_name' => $scene->Name, 'destination_uuid' => $scene->SceneID, 'wearables' => $wearables, 'attachments' => $attached, 'teleport_flags' => 128), true);
if (!empty($response['success'])) {
// This is the hardcoded format OpenSim uses for seed capability URLs
$seedCapability = $regionBaseUrl . 'CAPS/' . $capsPath . '0000/';
return true;
}
$seedCapability = null;
return false;
}
示例14: Folders
public function Folders()
{
$skeleton = array(array('ID' => $this->RootID, 'ParentID' => UUID::Parse(UUID::Zero), 'Name' => $this->Name, 'PreferredContentType' => 'application/vnd.ll.folder'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Animations', 'PreferredContentType' => 'application/vnd.ll.animation'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Body Parts', 'PreferredContentType' => 'application/vnd.ll.bodypart'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Calling Cards', 'PreferredContentType' => 'application/vnd.ll.callingcard'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Gestures', 'PreferredContentType' => 'application/vnd.ll.gesture'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Landmarks', 'PreferredContentType' => 'application/vnd.ll.landmark'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Lost and Found', 'PreferredContentType' => 'application/vnd.ll.lostandfoundfolder'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Notecards', 'PreferredContentType' => 'application/vnd.ll.notecard'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Objects', 'PreferredContentType' => 'application/vnd.ll.primitive'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Photo Album', 'PreferredContentType' => 'application/vnd.ll.snapshotfolder'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Scripts', 'PreferredContentType' => 'application/vnd.ll.lsltext'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Sounds', 'PreferredContentType' => 'application/ogg'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Textures', 'PreferredContentType' => 'image/x-j2c'), array('ID' => UUID::Random(), 'ParentID' => $this->RootID, 'Name' => 'Trash', 'PreferredContentType' => 'application/vnd.ll.trashfolder'), array('ID' => $this->ClothingID, 'ParentID' => $this->RootID, 'Name' => 'Clothing', 'PreferredContentType' => 'application/vnd.ll.clothing'), array('ID' => $this->OutfitID, 'ParentID' => $this->ClothingID, 'Name' => 'Default Outfit', 'PreferredContentType' => 'application/octet-stream'));
return $skeleton;
}