Difference between revisions of "LlGetDisplayName"

From Second Life Wiki
Jump to navigation Jump to search
m
(Added warning about escaping strings to prevent a wave of injection attacks on people's backends when these functions go live.)
Line 4: Line 4:
{{LSL Generic/pre-release|server-release=[[Display Names|DisplayNames]]}}
{{LSL Generic/pre-release|server-release=[[Display Names|DisplayNames]]}}
{{LSL_Function/warning|Security|It is a '''terrible''' idea to tie any security measures to display names. Don't do it.}}
{{LSL_Function/warning|Security|It is a '''terrible''' idea to tie any security measures to display names. Don't do it.}}
{{LSL_Function/warning|Security|They can contain quotes and some punctuation, remember to '''escape''' strings being passed to command line scripts, sql queries, etc.}}
{{Issues/DN-202}}
{{Issues/DN-202}}
|func_id=NNN|func_sleep=0.0|func_energy=10.0
|func_id=NNN|func_sleep=0.0|func_energy=10.0

Revision as of 15:23, 22 November 2010

Emblem-important-red.png Pre-release Documentation Warning!

This function is not available yet. This documentation was written prior to its final release so it may not match the final implementation.It is slated for release in Server DisplayNames.

Emblem-important-red.png Security Warning!

It is a terrible idea to tie any security measures to display names. Don't do it.

Emblem-important-red.png Security Warning!

They can contain quotes and some punctuation, remember to escape strings being passed to command line scripts, sql queries, etc.

Summary

Function: string llGetDisplayName( key id );
0.0 Forced Delay
10.0 Energy

Returns a string that is the non-unique display name of the avatar specified by id.

• key id avatar UUID that is in the same region

id must specify a valid avatar key, present in or otherwise known to the sim in which the script is running, otherwise an empty string is returned. This function will still return a valid display name if the avatar is a child agent of the sim (i.e., in an adjacent sim, but presently able to see into the one the script is in), or for a short period after the avatar leaves the sim (specifically, when the client completely disconnects from the sim, either as a main or child agent).

Caveats

  • To get around the "avatar must be present" limitation, you can use the llRequestDisplayName function and the dataserver event to obtain the avatar's display name from a key.
  • There is no opposite function (llDisplayName2Key) available since display names are non-unique
  • Either of "???" or "" is returned if the region is unable to return display names. This can happen even if display names are enabled on the region, especially the first time a given key is checked. At least one retry may be advisable. Do not rely on this function to verify avatar presence.

Examples

<lsl>// Best viewed in Chat History (ctrl-h) default {

   collision_start(integer a)//Announce who collided
   {
       llSay(0, "llGetDisplayName: " + llGetDisplayName(llDetectedKey(0)) +
              "\nllDetectedName: " + llDetectedName(0));
   }
   touch_start(integer a)
   {
       llSay(0,"llGetDisplayName: " + llGetDisplayName(llDetectedKey(0)) +
              "\nllDetectedName: " + llDetectedName(0));
   }
}</lsl>

See Also

Functions

•  llGetUsername
•  llRequestDisplayName Uses the dataserver to request avatar information

Deep Notes

Signature

function string llGetDisplayName( key id );