public void ProcessAvatarPickerRequest(IClientAPI client, UUID avatarID, UUID RequestID, string query) { IScene scene = client.Scene; List <UserAccount> accounts = scene.UserAccountService.GetUserAccounts(scene.RegionInfo.AllScopeIDs, query); if (accounts == null) { accounts = new List <UserAccount> (0); } AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket)PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply); // TODO: don't create new blocks if recycling an old packet AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[accounts.Count]; AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock { AgentID = avatarID, QueryID = RequestID }; replyPacket.AgentData = agentData; int i = 0; foreach (UserAccount item in accounts) { UUID translatedIDtem = item.PrincipalID; searchData [i] = new AvatarPickerReplyPacket.DataBlock { AvatarID = translatedIDtem, FirstName = Utils.StringToBytes(item.FirstName), LastName = Utils.StringToBytes(item.LastName) }; i++; } if (accounts.Count == 0) { searchData = new AvatarPickerReplyPacket.DataBlock[0]; } replyPacket.Data = searchData; AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs { AgentID = replyPacket.AgentData.AgentID, QueryID = replyPacket.AgentData.QueryID }; List <AvatarPickerReplyDataArgs> data_args = new List <AvatarPickerReplyDataArgs> (); for (i = 0; i < replyPacket.Data.Length; i++) { AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs { AvatarID = replyPacket.Data [i].AvatarID, FirstName = replyPacket.Data [i].FirstName, LastName = replyPacket.Data [i].LastName }; data_args.Add(data_arg); } client.SendAvatarPickerReply(agent_data, data_args); }
public void ProcessAvatarPickerRequest(IClientAPI client, UUID avatarID, UUID RequestID, string query) { //EventManager.TriggerAvatarPickerRequest(); List <UserAccount> accounts = UserAccountService.GetUserAccounts(RegionInfo.ScopeID, query); if (accounts == null) { return; } AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket)PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply); // TODO: don't create new blocks if recycling an old packet AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[accounts.Count]; AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); agentData.AgentID = avatarID; agentData.QueryID = RequestID; replyPacket.AgentData = agentData; //byte[] bytes = new byte[AvatarResponses.Count*32]; int i = 0; foreach (UserAccount item in accounts) { UUID translatedIDtem = item.PrincipalID; searchData[i] = new AvatarPickerReplyPacket.DataBlock(); searchData[i].AvatarID = translatedIDtem; searchData[i].FirstName = Utils.StringToBytes((string)item.FirstName); searchData[i].LastName = Utils.StringToBytes((string)item.LastName); i++; } if (accounts.Count == 0) { searchData = new AvatarPickerReplyPacket.DataBlock[0]; } replyPacket.Data = searchData; AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs(); agent_data.AgentID = replyPacket.AgentData.AgentID; agent_data.QueryID = replyPacket.AgentData.QueryID; List <AvatarPickerReplyDataArgs> data_args = new List <AvatarPickerReplyDataArgs>(); for (i = 0; i < replyPacket.Data.Length; i++) { AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs(); data_arg.AvatarID = replyPacket.Data[i].AvatarID; data_arg.FirstName = replyPacket.Data[i].FirstName; data_arg.LastName = replyPacket.Data[i].LastName; data_args.Add(data_arg); } client.SendAvatarPickerReply(agent_data, data_args); }
public void HandleAvatarPickerRequest(IClientAPI client, UUID avatarID, UUID RequestID, string query) { //EventManager.TriggerAvatarPickerRequest(); m_log.DebugFormat("[USER MANAGEMENT MODULE]: HandleAvatarPickerRequest for {0}", query); List <UserData> users = GetUserData(query, 500, 1); AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket)PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply); // TODO: don't create new blocks if recycling an old packet AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[users.Count]; AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); agentData.AgentID = avatarID; agentData.QueryID = RequestID; replyPacket.AgentData = agentData; //byte[] bytes = new byte[AvatarResponses.Count*32]; int i = 0; foreach (UserData item in users) { UUID translatedIDtem = item.Id; searchData[i] = new AvatarPickerReplyPacket.DataBlock(); searchData[i].AvatarID = translatedIDtem; searchData[i].FirstName = Utils.StringToBytes((string)item.FirstName); searchData[i].LastName = Utils.StringToBytes((string)item.LastName); i++; } if (users.Count == 0) { searchData = new AvatarPickerReplyPacket.DataBlock[0]; } replyPacket.Data = searchData; AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs(); agent_data.AgentID = replyPacket.AgentData.AgentID; agent_data.QueryID = replyPacket.AgentData.QueryID; List <AvatarPickerReplyDataArgs> data_args = new List <AvatarPickerReplyDataArgs>(); for (i = 0; i < replyPacket.Data.Length; i++) { AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs(); data_arg.AvatarID = replyPacket.Data[i].AvatarID; data_arg.FirstName = replyPacket.Data[i].FirstName; data_arg.LastName = replyPacket.Data[i].LastName; data_args.Add(data_arg); } client.SendAvatarPickerReply(agent_data, data_args); }
public void ProcessAvatarPickerRequest(IClientAPI client, UUID avatarID, UUID RequestID, string query) { Scene scene = (Scene)client.Scene; List<UserAccount> accounts = scene.UserAccountService.GetUserAccounts(scene.RegionInfo.ScopeID, query); if (accounts == null) accounts = new List<UserAccount>(0); AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket)PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply); // TODO: don't create new blocks if recycling an old packet AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[accounts.Count]; AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); agentData.AgentID = avatarID; agentData.QueryID = RequestID; replyPacket.AgentData = agentData; //byte[] bytes = new byte[AvatarResponses.Count*32]; int i = 0; foreach (UserAccount item in accounts) { UUID translatedIDtem = item.PrincipalID; searchData[i] = new AvatarPickerReplyPacket.DataBlock(); searchData[i].AvatarID = translatedIDtem; searchData[i].FirstName = Utils.StringToBytes((string)item.FirstName); searchData[i].LastName = Utils.StringToBytes((string)item.LastName); i++; } if (accounts.Count == 0) { searchData = new AvatarPickerReplyPacket.DataBlock[0]; } replyPacket.Data = searchData; AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs(); agent_data.AgentID = replyPacket.AgentData.AgentID; agent_data.QueryID = replyPacket.AgentData.QueryID; List<AvatarPickerReplyDataArgs> data_args = new List<AvatarPickerReplyDataArgs>(); for (i = 0; i < replyPacket.Data.Length; i++) { AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs(); data_arg.AvatarID = replyPacket.Data[i].AvatarID; data_arg.FirstName = replyPacket.Data[i].FirstName; data_arg.LastName = replyPacket.Data[i].LastName; data_args.Add(data_arg); } client.SendAvatarPickerReply(agent_data, data_args); }
public void HandleAvatarPickerRequest(IClientAPI client, UUID avatarID, UUID RequestID, string query) { //EventManager.TriggerAvatarPickerRequest(); m_log.DebugFormat("[USER MANAGEMENT MODULE]: HandleAvatarPickerRequest for {0}", query); // searhc the user accounts service List <UserAccount> accs = m_Scenes[0].UserAccountService.GetUserAccounts(m_Scenes[0].RegionInfo.ScopeID, query); List <UserData> users = new List <UserData>(); if (accs != null) { foreach (UserAccount acc in accs) { UserData ud = new UserData(); ud.FirstName = acc.FirstName; ud.LastName = acc.LastName; ud.Id = acc.PrincipalID; users.Add(ud); } } // search the local cache foreach (UserData data in m_UserCache.Values) { if (users.Find(delegate(UserData d) { return(d.Id == data.Id); }) == null && (data.FirstName.StartsWith(query) || data.LastName.StartsWith(query))) { users.Add(data); } } AddAdditionalUsers(avatarID, query, users); AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket)PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply); // TODO: don't create new blocks if recycling an old packet AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[users.Count]; AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); agentData.AgentID = avatarID; agentData.QueryID = RequestID; replyPacket.AgentData = agentData; //byte[] bytes = new byte[AvatarResponses.Count*32]; int i = 0; foreach (UserData item in users) { UUID translatedIDtem = item.Id; searchData[i] = new AvatarPickerReplyPacket.DataBlock(); searchData[i].AvatarID = translatedIDtem; searchData[i].FirstName = Utils.StringToBytes((string)item.FirstName); searchData[i].LastName = Utils.StringToBytes((string)item.LastName); i++; } if (users.Count == 0) { searchData = new AvatarPickerReplyPacket.DataBlock[0]; } replyPacket.Data = searchData; AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs(); agent_data.AgentID = replyPacket.AgentData.AgentID; agent_data.QueryID = replyPacket.AgentData.QueryID; List <AvatarPickerReplyDataArgs> data_args = new List <AvatarPickerReplyDataArgs>(); for (i = 0; i < replyPacket.Data.Length; i++) { AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs(); data_arg.AvatarID = replyPacket.Data[i].AvatarID; data_arg.FirstName = replyPacket.Data[i].FirstName; data_arg.LastName = replyPacket.Data[i].LastName; data_args.Add(data_arg); } client.SendAvatarPickerReply(agent_data, data_args); }