/// <summary> /// /// </summary> /// <param name="id"></param> public void BeginGetAvatarName(LLUUID id, AgentNamesCallback anc) { // TODO: BeginGetAvatarNames is pretty bulky, rewrite a simple version here List <LLUUID> ids = new List <LLUUID>(); ids.Add(id); BeginGetAvatarNames(ids, anc); }
/// <summary> /// /// </summary> /// <param name="ids"></param> public void BeginGetAvatarNames(List <LLUUID> ids, AgentNamesCallback anc) { if (anc != null) { OnAgentNames = anc; } Dictionary <LLUUID, string> havenames = new Dictionary <LLUUID, string>(); List <LLUUID> neednames = new List <LLUUID>(); // Fire callbacks for the ones we already have cached foreach (LLUUID id in ids) { if (Avatars.ContainsKey(id)) { havenames[id] = Avatars[id].Name; } else { neednames.Add(id); } } if (havenames.Count > 0 && OnAgentNames != null) { OnAgentNames(havenames); } if (neednames.Count > 0) { UUIDNameRequestPacket request = new UUIDNameRequestPacket(); request.UUIDNameBlock = new UUIDNameRequestPacket.UUIDNameBlockBlock[neednames.Count]; for (int i = 0; i < neednames.Count; i++) { request.UUIDNameBlock[i] = new UUIDNameRequestPacket.UUIDNameBlockBlock(); request.UUIDNameBlock[i].ID = neednames[i]; } Client.Network.SendPacket(request); } }
/// <summary> /// /// </summary> /// <param name="ids"></param> public void BeginGetAvatarNames(List<LLUUID> ids, AgentNamesCallback anc) { if (anc != null) { OnAgentNames = anc; } Dictionary<LLUUID, string> havenames = new Dictionary<LLUUID,string>(); List<LLUUID> neednames = new List<LLUUID>(); // Fire callbacks for the ones we already have cached foreach (LLUUID id in ids) { if (Avatars.ContainsKey(id)) { havenames[id] = Avatars[id].Name; } else { neednames.Add(id); } } if (havenames.Count > 0 && OnAgentNames != null) { OnAgentNames(havenames); } if (neednames.Count > 0) { UUIDNameRequestPacket request = new UUIDNameRequestPacket(); request.UUIDNameBlock = new UUIDNameRequestPacket.UUIDNameBlockBlock[neednames.Count]; for (int i = 0; i < neednames.Count; i++) { request.UUIDNameBlock[i] = new UUIDNameRequestPacket.UUIDNameBlockBlock(); request.UUIDNameBlock[i].ID = neednames[i]; } Client.Network.SendPacket(request); } }
/// <summary> /// /// </summary> /// <param name="id"></param> public void BeginGetAvatarName(LLUUID id, AgentNamesCallback anc) { // TODO: BeginGetAvatarNames is pretty bulky, rewrite a simple version here List<LLUUID> ids = new List<LLUUID>(); ids.Add(id); BeginGetAvatarNames(ids, anc); }