diff options
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Avatar/Groups')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | 54 |
1 files changed, 45 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs index 8f3eb62..a83730e 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | |||
@@ -44,6 +44,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
44 | private Dictionary<LLUUID, GroupList> m_grouplistmap = new Dictionary<LLUUID, GroupList>(); | 44 | private Dictionary<LLUUID, GroupList> m_grouplistmap = new Dictionary<LLUUID, GroupList>(); |
45 | private Dictionary<LLUUID, GroupData> m_groupmap = new Dictionary<LLUUID, GroupData>(); | 45 | private Dictionary<LLUUID, GroupData> m_groupmap = new Dictionary<LLUUID, GroupData>(); |
46 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); | 46 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); |
47 | private Dictionary<LLUUID, GroupData> m_groupUUIDGroup = new Dictionary<LLUUID, GroupData>(); | ||
48 | private LLUUID opensimulatorGroupID = new LLUUID("00000000-68f9-1111-024e-222222111123"); | ||
49 | |||
47 | private List<Scene> m_scene = new List<Scene>(); | 50 | private List<Scene> m_scene = new List<Scene>(); |
48 | 51 | ||
49 | #region IRegionModule Members | 52 | #region IRegionModule Members |
@@ -57,6 +60,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
57 | scene.EventManager.OnNewClient += OnNewClient; | 60 | scene.EventManager.OnNewClient += OnNewClient; |
58 | scene.EventManager.OnClientClosed += OnClientClosed; | 61 | scene.EventManager.OnClientClosed += OnClientClosed; |
59 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; | 62 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; |
63 | lock (m_groupUUIDGroup) | ||
64 | { | ||
65 | |||
66 | GroupData OpenSimulatorGroup = new GroupData(); | ||
67 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; | ||
68 | OpenSimulatorGroup.GroupID = opensimulatorGroupID; | ||
69 | OpenSimulatorGroup.groupName = "OpenSimulator Testing"; | ||
70 | OpenSimulatorGroup.ActiveGroupPowers = GroupPowers.LandAllowSetHome; | ||
71 | OpenSimulatorGroup.GroupTitles.Add("OpenSimulator Tester"); | ||
72 | if (!m_groupUUIDGroup.ContainsKey(opensimulatorGroupID)) | ||
73 | m_groupUUIDGroup.Add(opensimulatorGroupID, OpenSimulatorGroup); | ||
74 | } | ||
60 | //scene.EventManager. | 75 | //scene.EventManager. |
61 | } | 76 | } |
62 | 77 | ||
@@ -102,6 +117,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
102 | // Subscribe to instant messages | 117 | // Subscribe to instant messages |
103 | client.OnInstantMessage += OnInstantMessage; | 118 | client.OnInstantMessage += OnInstantMessage; |
104 | client.OnAgentDataUpdateRequest += OnAgentDataUpdateRequest; | 119 | client.OnAgentDataUpdateRequest += OnAgentDataUpdateRequest; |
120 | client.OnUUIDGroupNameRequest += HandleUUIDGroupNameRequest; | ||
105 | lock (m_iclientmap) | 121 | lock (m_iclientmap) |
106 | { | 122 | { |
107 | if (!m_iclientmap.ContainsKey(client.AgentId)) | 123 | if (!m_iclientmap.ContainsKey(client.AgentId)) |
@@ -109,13 +125,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
109 | m_iclientmap.Add(client.AgentId, client); | 125 | m_iclientmap.Add(client.AgentId, client); |
110 | } | 126 | } |
111 | } | 127 | } |
112 | GroupData OpenSimulatorGroup = new GroupData(); | 128 | GroupData OpenSimulatorGroup = null; |
113 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; | 129 | lock (m_groupUUIDGroup) |
114 | OpenSimulatorGroup.GroupID = new LLUUID("00000000-68f9-1111-024e-222222111120"); | 130 | { |
115 | OpenSimulatorGroup.GroupMembers.Add(client.AgentId); | 131 | OpenSimulatorGroup = m_groupUUIDGroup[opensimulatorGroupID]; |
116 | OpenSimulatorGroup.groupName = "OpenSimulator Testing"; | 132 | if (!OpenSimulatorGroup.GroupMembers.Contains(client.AgentId)) |
117 | OpenSimulatorGroup.ActiveGroupPowers = GroupPowers.LandAllowSetHome; | 133 | { |
118 | OpenSimulatorGroup.GroupTitles.Add("OpenSimulator Tester"); | 134 | OpenSimulatorGroup.GroupMembers.Add(client.AgentId); |
135 | m_groupUUIDGroup[opensimulatorGroupID] = OpenSimulatorGroup; | ||
136 | } | ||
137 | |||
138 | } | ||
139 | |||
119 | lock (m_groupmap) | 140 | lock (m_groupmap) |
120 | { | 141 | { |
121 | if (!m_groupmap.ContainsKey(client.AgentId)) | 142 | if (!m_groupmap.ContainsKey(client.AgentId)) |
@@ -124,7 +145,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
124 | } | 145 | } |
125 | } | 146 | } |
126 | GroupList testGroupList = new GroupList(); | 147 | GroupList testGroupList = new GroupList(); |
127 | testGroupList.m_GroupList.Add(new LLUUID("00000000-68f9-1111-024e-222222111120")); | 148 | testGroupList.m_GroupList.Add(OpenSimulatorGroup.GroupID); |
128 | 149 | ||
129 | lock (m_grouplistmap) | 150 | lock (m_grouplistmap) |
130 | { | 151 | { |
@@ -133,7 +154,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
133 | m_grouplistmap.Add(client.AgentId, testGroupList); | 154 | m_grouplistmap.Add(client.AgentId, testGroupList); |
134 | } | 155 | } |
135 | } | 156 | } |
136 | m_log.Info("[GROUP]: Adding " + client.Name + " to OpenSimulator Tester group"); | 157 | m_log.Info("[GROUP]: Adding " + client.Name + " to " + OpenSimulatorGroup.groupName + " "); |
137 | GroupData[] updateGroups = new GroupData[1]; | 158 | GroupData[] updateGroups = new GroupData[1]; |
138 | updateGroups[0] = OpenSimulatorGroup; | 159 | updateGroups[0] = OpenSimulatorGroup; |
139 | 160 | ||
@@ -201,7 +222,22 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
201 | new LLVector3(msg.Position.x, msg.Position.y, msg.Position.z), new LLUUID(msg.RegionID), | 222 | new LLVector3(msg.Position.x, msg.Position.y, msg.Position.z), new LLUUID(msg.RegionID), |
202 | msg.binaryBucket); | 223 | msg.binaryBucket); |
203 | } | 224 | } |
225 | private void HandleUUIDGroupNameRequest(LLUUID id,IClientAPI remote_client) | ||
226 | { | ||
227 | string groupnamereply = "Unknown"; | ||
228 | LLUUID groupUUID = LLUUID.Zero; | ||
204 | 229 | ||
230 | lock (m_groupUUIDGroup) | ||
231 | { | ||
232 | if (m_groupUUIDGroup.ContainsKey(id)) | ||
233 | { | ||
234 | GroupData grp = m_groupUUIDGroup[id]; | ||
235 | groupnamereply = grp.groupName; | ||
236 | groupUUID = grp.GroupID; | ||
237 | } | ||
238 | } | ||
239 | remote_client.SendGroupNameReply(groupUUID, groupnamereply); | ||
240 | } | ||
205 | private void OnClientClosed(LLUUID agentID) | 241 | private void OnClientClosed(LLUUID agentID) |
206 | { | 242 | { |
207 | lock (m_iclientmap) | 243 | lock (m_iclientmap) |