/// <summary> /// Request lookup of multiple group names /// </summary> /// <param name="groupIDs">List of group IDs to request.</param> public void RequestGroupNames(List<UUID> groupIDs) { Dictionary<UUID, string> groupNames = new Dictionary<UUID, string>(); lock (GroupName2KeyCache.Dictionary) { foreach (UUID groupID in groupIDs) { if (GroupName2KeyCache.ContainsKey(groupID)) groupNames[groupID] = GroupName2KeyCache.Dictionary[groupID]; } } if (groupIDs.Count > 0) { UUIDGroupNameRequestPacket req = new UUIDGroupNameRequestPacket(); UUIDGroupNameRequestPacket.UUIDNameBlockBlock[] block = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock[groupIDs.Count]; for (int i = 0; i < groupIDs.Count; i++) { block[i] = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock(); block[i].ID = groupIDs[i]; } req.UUIDNameBlock = block; Client.Network.SendPacket(req); } // fire handler from cache if (groupNames.Count > 0 && m_GroupNames != null) { OnGroupNamesReply(new GroupNamesEventArgs(groupNames)); } }
/// <summary> /// Lookup name of group based on groupID /// </summary> /// <param name="groupID">groupID of group to lookup name for.</param> public void RequestGroupName(UUID groupID) { // if we already have this in the cache, return from cache instead of making a request if (GroupName2KeyCache.ContainsKey(groupID)) { Dictionary<UUID, string> groupNames = new Dictionary<UUID, string>(); lock (GroupName2KeyCache.Dictionary) groupNames.Add(groupID, GroupName2KeyCache.Dictionary[groupID]); if (m_GroupNames != null) { OnGroupNamesReply(new GroupNamesEventArgs(groupNames)); } } else { UUIDGroupNameRequestPacket req = new UUIDGroupNameRequestPacket(); UUIDGroupNameRequestPacket.UUIDNameBlockBlock[] block = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock[1]; block[0] = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock(); block[0].ID = groupID; req.UUIDNameBlock = block; Client.Network.SendPacket(req); } }
/// <summary> /// Lookup name of group based on groupID /// </summary> /// <param name="groupID">groupID of group to lookup name for.</param> public void RequestGroupName(UUID groupID) { // if we already have this in the cache, return from cache instead of making a request if (GroupName2KeyCache.ContainsKey(groupID)) { Dictionary<UUID, string> groupNames = new Dictionary<UUID, string>(); lock(GroupName2KeyCache.Dictionary) groupNames.Add(groupID, GroupName2KeyCache.Dictionary[groupID]); if (OnGroupNames != null) { try { OnGroupNames(groupNames); } catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); } } } else { UUIDGroupNameRequestPacket req = new UUIDGroupNameRequestPacket(); UUIDGroupNameRequestPacket.UUIDNameBlockBlock[] block = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock[1]; block[0] = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock(); block[0].ID = groupID; req.UUIDNameBlock = block; Client.Network.SendPacket(req); } }
/// <summary> /// Request lookup of multiple group names /// </summary> /// <param name="groupIDs">List of group IDs to request.</param> public void RequestGroupNames(List<UUID> groupIDs) { Dictionary<UUID, string> groupNames = new Dictionary<UUID, string>(); lock (GroupName2KeyCache.Dictionary) { foreach (UUID groupID in groupIDs) { if (GroupName2KeyCache.ContainsKey(groupID)) groupNames[groupID] = GroupName2KeyCache.Dictionary[groupID]; } } if (groupIDs.Count > 0) { UUIDGroupNameRequestPacket req = new UUIDGroupNameRequestPacket(); UUIDGroupNameRequestPacket.UUIDNameBlockBlock[] block = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock[groupIDs.Count]; for (int i = 0; i < groupIDs.Count; i++) { block[i] = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock(); block[i].ID = groupIDs[i]; } req.UUIDNameBlock = block; Client.Network.SendPacket(req); } // fire handler from cache if(groupNames.Count > 0 && OnGroupNames != null) try { OnGroupNames(groupNames); } catch (Exception e) { Logger.Log(e.Message, Helpers.LogLevel.Error, Client, e); } }
/// <summary> /// Request lookup of multiple group names /// </summary> /// <param name="groupIDs">List of group IDs to request.</param> public void RequestGroupNames(List<LLUUID> groupIDs) { Dictionary<LLUUID, string> groupNames = new Dictionary<LLUUID, string>(); foreach (LLUUID groupID in groupIDs) if (GroupName2KeyCache.ContainsKey(groupID)) { groupIDs.Remove(groupID); lock (GroupName2KeyCache.Dictionary) groupNames.Add(groupID, GroupName2KeyCache.Dictionary[groupID]); } if (groupIDs.Count > 0) { UUIDGroupNameRequestPacket req = new UUIDGroupNameRequestPacket(); UUIDGroupNameRequestPacket.UUIDNameBlockBlock[] block = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock[groupIDs.Count]; for (int i = 0; i < groupIDs.Count; i++) { block[i] = new UUIDGroupNameRequestPacket.UUIDNameBlockBlock(); block[i].ID = groupIDs[i]; } req.UUIDNameBlock = block; Client.Network.SendPacket(req); } // fire handler from cache if(groupNames.Count > 0 && OnGroupNames != null) try { OnGroupNames(groupNames); } catch (Exception e) { Client.Log(e.ToString(), Helpers.LogLevel.Error); } }