private OSDMap GetFriends(OSDMap map)
{
OSDMap resp = new OSDMap();
if (map.ContainsKey("UserID") == false)
{
resp["Failed"] = OSD.FromString("User ID not specified.");
return resp;
}
IFriendsService friendService = m_registry.RequestModuleInterface<IFriendsService>();
if (friendService == null)
{
resp["Failed"] = OSD.FromString("No friend service found.");
return resp;
}
List<FriendInfo> friendsList = new List<FriendInfo>(friendService.GetFriends(map["UserID"].AsUUID()));
OSDArray friends = new OSDArray(friendsList.Count);
foreach (FriendInfo friendInfo in friendsList)
{
UserAccount account = m_registry.RequestModuleInterface<IUserAccountService>().GetUserAccount(null, UUID.Parse(friendInfo.Friend));
OSDMap friend = new OSDMap(4);
friend["PrincipalID"] = friendInfo.Friend;
friend["Name"] = account.Name;
friend["MyFlags"] = friendInfo.MyFlags;
friend["TheirFlags"] = friendInfo.TheirFlags;
friends.Add(friend);
}
resp["Friends"] = friends;
return resp;
}