Make dataserver() return a 0 when agent id offline, instead of a timeout

avinationmerge
Melanie Thielker 2010-06-20 06:23:08 +02:00
parent 04b60aa490
commit 76b59b8df7
1 changed files with 4 additions and 5 deletions

View File

@ -4232,22 +4232,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
UUID uuid = (UUID)id; UUID uuid = (UUID)id;
UserAccount account = World.UserAccountService.GetUserAccount(World.RegionInfo.ScopeID, uuid); UserAccount account = World.UserAccountService.GetUserAccount(World.RegionInfo.ScopeID, uuid);
if (account == null)
return UUID.Zero.ToString();
PresenceInfo pinfo = null; PresenceInfo pinfo = null;
PresenceInfo[] pinfos = World.PresenceService.GetAgents(new string[] { uuid.ToString() }); PresenceInfo[] pinfos = World.PresenceService.GetAgents(new string[] { uuid.ToString() });
if (pinfos != null && pinfos.Length > 0) if (pinfos != null && pinfos.Length > 0)
pinfo = pinfos[0]; pinfo = pinfos[0];
if (pinfo == null)
return UUID.Zero.ToString();
string reply = String.Empty; string reply = String.Empty;
switch (data) switch (data)
{ {
case 1: // DATA_ONLINE (0|1) case 1: // DATA_ONLINE (0|1)
// TODO: implement fetching of this information if (pinfo != null && pinfo.RegionID != UUID.Zero)
if (pinfo != null)
reply = "1"; reply = "1";
else else
reply = "0"; reply = "0";