diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 3615e94..a9ecd70 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -3250,9 +3250,54 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
3250 | public string llRequestAgentData(string id, int data) | 3250 | public string llRequestAgentData(string id, int data) |
3251 | { | 3251 | { |
3252 | m_host.AddScriptLPS(1); | 3252 | m_host.AddScriptLPS(1); |
3253 | NotImplemented("llRequestAgentData"); | 3253 | |
3254 | UserProfileData userProfile = | ||
3255 | World.CommsManager.UserService.GetUserProfile(id); | ||
3256 | |||
3257 | UserAgentData userAgent = | ||
3258 | World.CommsManager.UserService.GetAgentByUUID(id); | ||
3259 | |||
3260 | if (userProfile == null || userAgent == null) | ||
3261 | return UUID.Zero.ToString(); | ||
3262 | |||
3263 | string reply = String.Empty; | ||
3264 | |||
3265 | switch (data) | ||
3266 | { | ||
3267 | case BuiltIn_Commands_BaseClass.DATA_ONLINE: // DATA_ONLINE (0|1) | ||
3268 | if (userProfile.CurrentAgent.AgentOnline) | ||
3269 | reply = "1"; | ||
3270 | else | ||
3271 | reply = "0"; | ||
3272 | break; | ||
3273 | case BuiltIn_Commands_BaseClass.DATA_NAME: // DATA_NAME (First Last) | ||
3274 | reply = userProfile.FirstName + " " + userProfile.SurName; | ||
3275 | break; | ||
3276 | case BuiltIn_Commands_BaseClass.DATA_BORN: // DATA_BORN (YYYY-MM-DD) | ||
3277 | DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0); | ||
3278 | born = born.AddSeconds(userProfile.Created); | ||
3279 | reply = born.ToString("yyyy-MM-dd"); | ||
3280 | break; | ||
3281 | case BuiltIn_Commands_BaseClass.DATA_RATING: // DATA_RATING (0,0,0,0,0,0) | ||
3282 | reply = "0,0,0,0,0,0"; | ||
3283 | break; | ||
3284 | case BuiltIn_Commands_BaseClass.DATA_PAYINFO: // DATA_PAYINFO (0|1|2|3) | ||
3285 | reply = "0"; | ||
3286 | break; | ||
3287 | default: | ||
3288 | return UUID.Zero.ToString(); // Raise no event | ||
3289 | } | ||
3290 | |||
3291 | UUID rq = UUID.Random(); | ||
3292 | |||
3293 | UUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.m_Dataserver.RegisterRequest( | ||
3294 | m_localID, m_itemID, rq.ToString()); | ||
3295 | |||
3296 | m_ScriptEngine.m_ASYNCLSLCommandManager. | ||
3297 | m_Dataserver.DataserverReply(rq.ToString(), reply); | ||
3298 | |||
3254 | // ScriptSleep(100); | 3299 | // ScriptSleep(100); |
3255 | return String.Empty; | 3300 | return tid.ToString(); |
3256 | } | 3301 | } |
3257 | 3302 | ||
3258 | public string llRequestInventoryData(string name) | 3303 | public string llRequestInventoryData(string name) |