From: Christopher Yeoh <yeohc@au1.ibm.com>

The attached patch implements osKey2Name and osName2Key
which converts between a UUID key for an avatar and
an avatar name and vice-versa.

osKey2Name is similar to llKey2Name except that it will work
even if the avatar being looked up is not in the same region
as the script.
This commit is contained in:
Sean Dague
2009-04-09 15:04:02 +00:00
parent 8ee81f98ea
commit a5ceb1a2a0
3 changed files with 53 additions and 0 deletions

View File

@@ -1344,6 +1344,47 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.Inventory.AddInventoryItem(taskItem, false);
}
public string osAvatarName2Key(string firstname, string lastname)
{
CheckThreatLevel(ThreatLevel.Low, "osAvatarName2Key");
UserProfileData UserProfile = World.CommsManager.UserService
.GetUserProfile(firstname, lastname);
if (UserProfile==null)
{
return UUID.Zero.ToString();
}
else
{
return UserProfile.ID.ToString();
}
}
public string osKey2Name(string id)
{
CheckThreatLevel(ThreatLevel.Low, "osKey2Name");
UUID key = new UUID();
if (UUID.TryParse(id, out key))
{
UserProfileData UserProfile = World.CommsManager.UserService
.GetUserProfile(key);
if (UserProfile==null)
{
return "";
}
else
{
return UserProfile.Name;
}
}
else
{
return "";
}
}
/// Threat level is Moderate because intentional abuse, for instance
/// scripts that are written to be malicious only on one grid,
/// for instance in a HG scenario, are a distinct possibility.

View File

@@ -117,6 +117,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void osMessageObject(key objectUUID,string message);
void osMakeNotecard(string notecardName, LSL_Types.list contents);
string osAvatarName2Key(string firstname, string lastname);
string osKey2Name(string id);
// Grid Info Functions
string osGetGridNick();

View File

@@ -300,6 +300,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_OSSL_Functions.osMakeNotecard(notecardName, contents);
}
public string osAvatarName2Key(string firstname, string lastname)
{
return m_OSSL_Functions.osAvatarName2Key(firstname, lastname);
}
public string osKey2Name(string id)
{
return m_OSSL_Functions.osKey2Name(id);
}
public string osGetGridNick()
{
return m_OSSL_Functions.osGetGridNick();