diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | 111 |
1 files changed, 53 insertions, 58 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs index 4b28ad7..c4906d2 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | |||
@@ -41,10 +41,12 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
41 | { | 41 | { |
42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
43 | 43 | ||
44 | private List<Scene> m_scene = new List<Scene>(); | ||
45 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); | ||
46 | private Dictionary<LLUUID, GroupData> m_groupmap = new Dictionary<LLUUID, GroupData>(); | ||
47 | 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>(); | ||
46 | private Dictionary<LLUUID, IClientAPI> m_iclientmap = new Dictionary<LLUUID, IClientAPI>(); | ||
47 | private List<Scene> m_scene = new List<Scene>(); | ||
48 | |||
49 | #region IRegionModule Members | ||
48 | 50 | ||
49 | public void Initialise(Scene scene, IConfigSource config) | 51 | public void Initialise(Scene scene, IConfigSource config) |
50 | { | 52 | { |
@@ -58,6 +60,42 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
58 | //scene.EventManager. | 60 | //scene.EventManager. |
59 | } | 61 | } |
60 | 62 | ||
63 | public void PostInitialise() | ||
64 | { | ||
65 | } | ||
66 | |||
67 | public void Close() | ||
68 | { | ||
69 | m_log.Info("[GROUP]: Shutting down group module."); | ||
70 | lock (m_iclientmap) | ||
71 | { | ||
72 | m_iclientmap.Clear(); | ||
73 | } | ||
74 | |||
75 | lock (m_groupmap) | ||
76 | { | ||
77 | m_groupmap.Clear(); | ||
78 | } | ||
79 | |||
80 | lock (m_grouplistmap) | ||
81 | { | ||
82 | m_grouplistmap.Clear(); | ||
83 | } | ||
84 | GC.Collect(); | ||
85 | } | ||
86 | |||
87 | public string Name | ||
88 | { | ||
89 | get { return "GroupsModule"; } | ||
90 | } | ||
91 | |||
92 | public bool IsSharedModule | ||
93 | { | ||
94 | get { return true; } | ||
95 | } | ||
96 | |||
97 | #endregion | ||
98 | |||
61 | private void OnNewClient(IClientAPI client) | 99 | private void OnNewClient(IClientAPI client) |
62 | { | 100 | { |
63 | // All friends establishment protocol goes over instant message | 101 | // All friends establishment protocol goes over instant message |
@@ -115,7 +153,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
115 | string ActiveGroupTitle = ""; | 153 | string ActiveGroupTitle = ""; |
116 | 154 | ||
117 | bool foundUser = false; | 155 | bool foundUser = false; |
118 | 156 | ||
119 | lock (m_iclientmap) | 157 | lock (m_iclientmap) |
120 | { | 158 | { |
121 | if (m_iclientmap.ContainsKey(remoteClient.AgentId)) | 159 | if (m_iclientmap.ContainsKey(remoteClient.AgentId)) |
@@ -139,11 +177,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
139 | } | 177 | } |
140 | 178 | ||
141 | //remoteClient.SendAgentDataUpdate(AgentID, ActiveGroupID, firstname, lastname, ActiveGroupPowers, ActiveGroupName, ActiveGroupTitle); | 179 | //remoteClient.SendAgentDataUpdate(AgentID, ActiveGroupID, firstname, lastname, ActiveGroupPowers, ActiveGroupName, ActiveGroupTitle); |
142 | |||
143 | } | 180 | } |
144 | } | 181 | } |
145 | } | 182 | } |
146 | |||
147 | } | 183 | } |
148 | 184 | ||
149 | private void OnInstantMessage(IClientAPI client, LLUUID fromAgentID, | 185 | private void OnInstantMessage(IClientAPI client, LLUUID fromAgentID, |
@@ -183,7 +219,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
183 | m_iclientmap.Remove(agentID); | 219 | m_iclientmap.Remove(agentID); |
184 | } | 220 | } |
185 | } | 221 | } |
186 | 222 | ||
187 | lock (m_groupmap) | 223 | lock (m_groupmap) |
188 | { | 224 | { |
189 | if (m_groupmap.ContainsKey(agentID)) | 225 | if (m_groupmap.ContainsKey(agentID)) |
@@ -191,7 +227,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
191 | m_groupmap.Remove(agentID); | 227 | m_groupmap.Remove(agentID); |
192 | } | 228 | } |
193 | } | 229 | } |
194 | 230 | ||
195 | lock (m_grouplistmap) | 231 | lock (m_grouplistmap) |
196 | { | 232 | { |
197 | if (m_grouplistmap.ContainsKey(agentID)) | 233 | if (m_grouplistmap.ContainsKey(agentID)) |
@@ -201,63 +237,16 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
201 | } | 237 | } |
202 | GC.Collect(); | 238 | GC.Collect(); |
203 | } | 239 | } |
204 | |||
205 | public void PostInitialise() | ||
206 | { | ||
207 | } | ||
208 | |||
209 | public void Close() | ||
210 | { | ||
211 | m_log.Info("[GROUP]: Shutting down group module."); | ||
212 | lock (m_iclientmap) | ||
213 | { | ||
214 | m_iclientmap.Clear(); | ||
215 | } | ||
216 | |||
217 | lock (m_groupmap) | ||
218 | { | ||
219 | m_groupmap.Clear(); | ||
220 | } | ||
221 | |||
222 | lock (m_grouplistmap) | ||
223 | { | ||
224 | m_grouplistmap.Clear(); | ||
225 | } | ||
226 | GC.Collect(); | ||
227 | } | ||
228 | |||
229 | public string Name | ||
230 | { | ||
231 | get { return "GroupsModule"; } | ||
232 | } | ||
233 | |||
234 | public bool IsSharedModule | ||
235 | { | ||
236 | get { return true; } | ||
237 | } | ||
238 | |||
239 | } | 240 | } |
240 | 241 | ||
241 | public class GroupData | 242 | public class GroupData |
242 | { | 243 | { |
244 | public string ActiveGroupTitle; | ||
243 | public LLUUID GroupID; | 245 | public LLUUID GroupID; |
246 | public List<LLUUID> GroupMembers; | ||
244 | public string groupName; | 247 | public string groupName; |
245 | public string ActiveGroupTitle; | 248 | public uint groupPowers = (uint) (GroupPowers.LandAllowLandmark | GroupPowers.LandAllowSetHome); |
246 | public List<string> GroupTitles; | 249 | public List<string> GroupTitles; |
247 | public List<LLUUID> GroupMembers; | ||
248 | public uint groupPowers = (uint)(GroupPowers.LandAllowLandmark | GroupPowers.LandAllowSetHome); | ||
249 | |||
250 | public GroupPowers ActiveGroupPowers | ||
251 | { | ||
252 | set | ||
253 | { | ||
254 | groupPowers = (uint) value; | ||
255 | } | ||
256 | get | ||
257 | { | ||
258 | return (GroupPowers)groupPowers; | ||
259 | } | ||
260 | } | ||
261 | 250 | ||
262 | public GroupData() | 251 | public GroupData() |
263 | { | 252 | { |
@@ -265,11 +254,17 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
265 | GroupMembers = new List<LLUUID>(); | 254 | GroupMembers = new List<LLUUID>(); |
266 | } | 255 | } |
267 | 256 | ||
257 | public GroupPowers ActiveGroupPowers | ||
258 | { | ||
259 | set { groupPowers = (uint) value; } | ||
260 | get { return (GroupPowers) groupPowers; } | ||
261 | } | ||
268 | } | 262 | } |
269 | 263 | ||
270 | public class GroupList | 264 | public class GroupList |
271 | { | 265 | { |
272 | public List<LLUUID> m_GroupList; | 266 | public List<LLUUID> m_GroupList; |
267 | |||
273 | public GroupList() | 268 | public GroupList() |
274 | { | 269 | { |
275 | m_GroupList = new List<LLUUID>(); | 270 | m_GroupList = new List<LLUUID>(); |