diff options
Diffstat (limited to 'OpenSim/Framework/EstateSettings.cs')
-rw-r--r-- | OpenSim/Framework/EstateSettings.cs | 660 |
1 files changed, 325 insertions, 335 deletions
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs index 2865844..b48a1db 100644 --- a/OpenSim/Framework/EstateSettings.cs +++ b/OpenSim/Framework/EstateSettings.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Collections.Generic; | ||
31 | using libsecondlife; | 32 | using libsecondlife; |
32 | using log4net; | 33 | using log4net; |
33 | 34 | ||
@@ -38,451 +39,440 @@ namespace OpenSim.Framework | |||
38 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
39 | private ConfigurationMember configMember; | 40 | private ConfigurationMember configMember; |
40 | 41 | ||
41 | //Settings to this island | 42 | public delegate void SaveDelegate(EstateSettings rs); |
42 | private float m_billableFactor; | ||
43 | |||
44 | private uint m_estateID; | ||
45 | private LLUUID m_estateManager0; | ||
46 | private LLUUID m_estateManager1; | ||
47 | private LLUUID m_estateManager2; | ||
48 | private LLUUID m_estateManager3; | ||
49 | private LLUUID m_estateManager4; | ||
50 | private LLUUID m_estateManager5; | ||
51 | private LLUUID m_estateManager6; | ||
52 | private LLUUID m_estateManager7; | ||
53 | private LLUUID m_estateManager8; | ||
54 | private LLUUID m_estateManager9; | ||
55 | private string m_estateName; | ||
56 | |||
57 | private uint m_parentEstateID; | ||
58 | private int m_pricePerMeter; | ||
59 | private int m_redirectGridX; | ||
60 | private int m_redirectGridY; | ||
61 | 43 | ||
62 | public EstateSettings() | 44 | public event SaveDelegate OnSave; |
45 | |||
46 | // Only the client uses these | ||
47 | // | ||
48 | private uint m_EstateID = 100; | ||
49 | |||
50 | public uint EstateID | ||
63 | { | 51 | { |
64 | // Temporary hack to prevent multiple loadings. | 52 | get { return m_EstateID; } |
65 | if (configMember == null) | 53 | set { m_EstateID = value; } |
66 | { | ||
67 | configMember = | ||
68 | new ConfigurationMember(Path.Combine(Util.configDir(), "estate_settings.xml"), "ESTATE SETTINGS", | ||
69 | loadConfigurationOptions, handleIncomingConfiguration, true); | ||
70 | configMember.performConfigurationRetrieve(); | ||
71 | } | ||
72 | } | 54 | } |
73 | 55 | ||
74 | public float billableFactor | 56 | private string m_EstateName; |
57 | |||
58 | public string EstateName | ||
75 | { | 59 | { |
76 | get { return m_billableFactor; } | 60 | get { return m_EstateName; } |
77 | set | 61 | set { m_EstateName = value; } |
78 | { | ||
79 | m_billableFactor = value; | ||
80 | configMember.forceSetConfigurationOption("billable_factor", m_billableFactor.ToString()); | ||
81 | } | ||
82 | } | 62 | } |
83 | 63 | ||
84 | public uint estateID | 64 | private uint m_ParentEstateID = 100; |
65 | |||
66 | public uint ParentEstateID | ||
85 | { | 67 | { |
86 | get { return m_estateID; } | 68 | get { return m_ParentEstateID; } |
87 | set | 69 | set { m_ParentEstateID = value; } |
88 | { | ||
89 | m_estateID = value; | ||
90 | configMember.forceSetConfigurationOption("estate_id", m_estateID.ToString()); | ||
91 | } | ||
92 | } | 70 | } |
93 | 71 | ||
94 | public uint parentEstateID | 72 | private float m_BillableFactor; |
73 | |||
74 | public float BillableFactor | ||
95 | { | 75 | { |
96 | get { return m_parentEstateID; } | 76 | get { return m_BillableFactor; } |
97 | set | 77 | set { m_BillableFactor = value; } |
98 | { | ||
99 | m_parentEstateID = value; | ||
100 | configMember.forceSetConfigurationOption("parent_estate_id", m_parentEstateID.ToString()); | ||
101 | } | ||
102 | } | 78 | } |
103 | 79 | ||
104 | public int redirectGridX | 80 | private int m_PricePerMeter; |
81 | |||
82 | public int PricePerMeter | ||
105 | { | 83 | { |
106 | get { return m_redirectGridX; } | 84 | get { return m_PricePerMeter; } |
107 | set | 85 | set { m_PricePerMeter = value; } |
108 | { | ||
109 | m_redirectGridX = value; | ||
110 | configMember.forceSetConfigurationOption("redirect_grid_x", m_redirectGridX.ToString()); | ||
111 | } | ||
112 | } | 86 | } |
113 | 87 | ||
114 | public int redirectGridY | 88 | private int m_RedirectGridX; |
89 | |||
90 | public int RedirectGridX | ||
115 | { | 91 | { |
116 | get { return m_redirectGridY; } | 92 | get { return m_RedirectGridX; } |
117 | set | 93 | set { m_RedirectGridX = value; } |
118 | { | ||
119 | m_redirectGridY = value; | ||
120 | configMember.forceSetConfigurationOption("redirect_grid_y", m_redirectGridY.ToString()); | ||
121 | } | ||
122 | } | 94 | } |
123 | 95 | ||
124 | public int pricePerMeter | 96 | private int m_RedirectGridY; |
97 | |||
98 | public int RedirectGridY | ||
125 | { | 99 | { |
126 | get { return m_pricePerMeter; } | 100 | get { return m_RedirectGridY; } |
127 | set | 101 | set { m_RedirectGridY = value; } |
128 | { | ||
129 | m_pricePerMeter = value; | ||
130 | configMember.forceSetConfigurationOption("price_per_meter", m_pricePerMeter.ToString()); | ||
131 | } | ||
132 | } | 102 | } |
133 | 103 | ||
134 | // Estate name | 104 | // Used by the sim |
105 | // | ||
106 | private bool m_UseGlobalTime = true; | ||
135 | 107 | ||
136 | public string estateName | 108 | public bool UseGlobalTime |
137 | { | 109 | { |
138 | get { return m_estateName; } | 110 | get { return m_UseGlobalTime; } |
139 | set | 111 | set { m_UseGlobalTime = value; } |
140 | { | ||
141 | m_estateName = value; | ||
142 | configMember.forceSetConfigurationOption("estate_name", m_estateName.ToString()); | ||
143 | } | ||
144 | } | 112 | } |
145 | 113 | ||
146 | public LLUUID[] estateManagers | 114 | private bool m_FixedSun = false; |
115 | |||
116 | public bool FixedSun | ||
147 | { | 117 | { |
148 | get | 118 | get { return m_FixedSun; } |
149 | { | 119 | set { m_FixedSun = value; } |
150 | // returns a condensed array of LLUUIDs | ||
151 | return GetEstateManagers(); | ||
152 | } | ||
153 | set | ||
154 | { | ||
155 | // Sets a Condensed array of LLUUIDS | ||
156 | int i = 0; | ||
157 | for (i = 0; i < value.Length; i++) | ||
158 | { | ||
159 | switch (i) | ||
160 | { | ||
161 | case 0: | ||
162 | m_estateManager0 = value[i]; | ||
163 | break; | ||
164 | case 1: | ||
165 | m_estateManager1 = value[i]; | ||
166 | break; | ||
167 | case 2: | ||
168 | m_estateManager2 = value[i]; | ||
169 | break; | ||
170 | case 3: | ||
171 | m_estateManager3 = value[i]; | ||
172 | break; | ||
173 | case 4: | ||
174 | m_estateManager4 = value[i]; | ||
175 | break; | ||
176 | case 5: | ||
177 | m_estateManager5 = value[i]; | ||
178 | break; | ||
179 | case 6: | ||
180 | m_estateManager6 = value[i]; | ||
181 | break; | ||
182 | case 7: | ||
183 | m_estateManager7 = value[i]; | ||
184 | break; | ||
185 | case 8: | ||
186 | m_estateManager8 = value[i]; | ||
187 | break; | ||
188 | case 9: | ||
189 | m_estateManager9 = value[i]; | ||
190 | break; | ||
191 | } | ||
192 | } | ||
193 | |||
194 | // Clear the rest of them.. as they're no longer valid | ||
195 | for (int j = i; j < 10; j++) | ||
196 | { | ||
197 | switch (j) | ||
198 | { | ||
199 | case 0: | ||
200 | m_estateManager0 = LLUUID.Zero; | ||
201 | break; | ||
202 | case 1: | ||
203 | m_estateManager1 = LLUUID.Zero; | ||
204 | break; | ||
205 | case 2: | ||
206 | m_estateManager2 = LLUUID.Zero; | ||
207 | break; | ||
208 | case 3: | ||
209 | m_estateManager3 = LLUUID.Zero; | ||
210 | break; | ||
211 | case 4: | ||
212 | m_estateManager4 = LLUUID.Zero; | ||
213 | break; | ||
214 | case 5: | ||
215 | m_estateManager5 = LLUUID.Zero; | ||
216 | break; | ||
217 | case 6: | ||
218 | m_estateManager6 = LLUUID.Zero; | ||
219 | break; | ||
220 | case 7: | ||
221 | m_estateManager7 = LLUUID.Zero; | ||
222 | break; | ||
223 | case 8: | ||
224 | m_estateManager8 = LLUUID.Zero; | ||
225 | break; | ||
226 | case 9: | ||
227 | m_estateManager9 = LLUUID.Zero; | ||
228 | break; | ||
229 | } | ||
230 | } | ||
231 | |||
232 | for (i = 0; i < 10; i++) | ||
233 | { | ||
234 | // Writes out the Estate managers to the XML file. | ||
235 | configMember.forceSetConfigurationOption("estate_manager_" + i, (GetEstateManagerAtPos(i)).ToString()); | ||
236 | } | ||
237 | } | ||
238 | } | 120 | } |
239 | 121 | ||
240 | #region EstateManager Get Methods to sort out skipped spots in the XML (suser error) | 122 | private double m_SunPosition = 0.0; |
241 | 123 | ||
242 | private LLUUID GetEstateManagerAtPos(int pos) | 124 | public double SunPosition |
243 | { | 125 | { |
244 | // This is a helper for writing them out to the xml file | 126 | get { return m_SunPosition; } |
245 | switch (pos) | 127 | set { m_SunPosition = value; } |
246 | { | 128 | } |
247 | case 0: | ||
248 | return m_estateManager0; | ||
249 | 129 | ||
250 | case 1: | 130 | private bool m_AllowVoice = true; |
251 | return m_estateManager1; | ||
252 | 131 | ||
253 | case 2: | 132 | public bool AllowVoice |
254 | return m_estateManager2; | 133 | { |
134 | get { return m_AllowVoice; } | ||
135 | set { m_AllowVoice = value; } | ||
136 | } | ||
255 | 137 | ||
256 | case 3: | 138 | private bool m_AllowDirectTeleport = true; |
257 | return m_estateManager3; | ||
258 | 139 | ||
259 | case 4: | 140 | public bool AllowDirectTeleport |
260 | return m_estateManager4; | 141 | { |
142 | get { return m_AllowDirectTeleport; } | ||
143 | set { m_AllowDirectTeleport = value; } | ||
144 | } | ||
261 | 145 | ||
262 | case 5: | 146 | private bool m_DenyAnonymous = false; |
263 | return m_estateManager5; | ||
264 | 147 | ||
265 | case 6: | 148 | public bool DenyAnonymous |
266 | return m_estateManager6; | 149 | { |
150 | get { return m_DenyAnonymous; } | ||
151 | set { m_DenyAnonymous = value; } | ||
152 | } | ||
267 | 153 | ||
268 | case 7: | 154 | private bool m_DenyIdentified = false; |
269 | return m_estateManager7; | ||
270 | 155 | ||
271 | case 8: | 156 | public bool DenyIdentified |
272 | return m_estateManager8; | 157 | { |
158 | get { return m_DenyIdentified; } | ||
159 | set { m_DenyIdentified = value; } | ||
160 | } | ||
273 | 161 | ||
274 | case 9: | 162 | private bool m_DenyTransacted = false; |
275 | return m_estateManager9; | ||
276 | 163 | ||
277 | default: | 164 | public bool DenyTransacted |
278 | return LLUUID.Zero; | 165 | { |
279 | } | 166 | get { return m_DenyTransacted; } |
167 | set { m_DenyTransacted = value; } | ||
280 | } | 168 | } |
281 | 169 | ||
282 | private LLUUID[] GetEstateManagers() | 170 | private bool m_AbuseEmailToEstateOwner = false; |
171 | |||
172 | public bool AbuseEmailToEstateOwner | ||
283 | { | 173 | { |
284 | int numEstateManagers = GetNumberOfEstateManagers(); | 174 | get { return m_AbuseEmailToEstateOwner; } |
285 | LLUUID[] rEstateManagers = new LLUUID[numEstateManagers]; | 175 | set { m_AbuseEmailToEstateOwner = value; } |
176 | } | ||
286 | 177 | ||
287 | int pos = 0; | 178 | private bool m_BlockDwell = false; |
288 | 179 | ||
289 | for (int i = 0; i < numEstateManagers; i++) | 180 | public bool BlockDwell |
290 | { | 181 | { |
291 | pos = GetNextEstateManager(pos); | 182 | get { return m_BlockDwell; } |
292 | 183 | set { m_BlockDwell = value; } | |
293 | rEstateManagers[i] = GetEstateManagerAtPos(pos); | ||
294 | pos++; | ||
295 | } | ||
296 | return rEstateManagers; | ||
297 | } | 184 | } |
298 | 185 | ||
299 | private int GetNextEstateManager(int startpos) | 186 | private bool m_EstateSkipScripts = false; |
187 | |||
188 | public bool EstateSkipScripts | ||
300 | { | 189 | { |
301 | // This is a utility function that skips over estate managers set to LLUUID.Zero | 190 | get { return m_EstateSkipScripts; } |
302 | int i = startpos; | 191 | set { m_EstateSkipScripts = value; } |
303 | for (i = startpos; i < 10; i++) | ||
304 | { | ||
305 | if (GetEstateManagerAtPos(i) != LLUUID.Zero) return i; | ||
306 | } | ||
307 | return i; | ||
308 | } | 192 | } |
309 | 193 | ||
310 | private int GetNumberOfEstateManagers() | 194 | private bool m_ResetHomeOnTeleport = false; |
195 | |||
196 | public bool ResetHomeOnTeleport | ||
311 | { | 197 | { |
312 | // This function returns the number of estate managers set | 198 | get { return m_ResetHomeOnTeleport; } |
313 | // Regardless of whether there is a skipped spot | 199 | set { m_ResetHomeOnTeleport = value; } |
314 | int numEstateManagers = 0; | 200 | } |
315 | if (m_estateManager0 != LLUUID.Zero) numEstateManagers++; | ||
316 | if (m_estateManager1 != LLUUID.Zero) numEstateManagers++; | ||
317 | if (m_estateManager2 != LLUUID.Zero) numEstateManagers++; | ||
318 | if (m_estateManager3 != LLUUID.Zero) numEstateManagers++; | ||
319 | if (m_estateManager4 != LLUUID.Zero) numEstateManagers++; | ||
320 | if (m_estateManager5 != LLUUID.Zero) numEstateManagers++; | ||
321 | if (m_estateManager6 != LLUUID.Zero) numEstateManagers++; | ||
322 | if (m_estateManager7 != LLUUID.Zero) numEstateManagers++; | ||
323 | if (m_estateManager8 != LLUUID.Zero) numEstateManagers++; | ||
324 | if (m_estateManager9 != LLUUID.Zero) numEstateManagers++; | ||
325 | 201 | ||
326 | return numEstateManagers; | 202 | private bool m_TaxFree = false; |
203 | |||
204 | public bool TaxFree | ||
205 | { | ||
206 | get { return m_TaxFree; } | ||
207 | set { m_TaxFree = value; } | ||
327 | } | 208 | } |
328 | 209 | ||
329 | public void AddEstateManager(LLUUID avatarID) | 210 | private bool m_PublicAccess = true; |
211 | |||
212 | public bool PublicAccess | ||
330 | { | 213 | { |
331 | LLUUID[] testateManagers = GetEstateManagers(); | 214 | get { return m_PublicAccess; } |
332 | LLUUID[] nestateManagers = new LLUUID[testateManagers.Length + 1]; | 215 | set { m_PublicAccess = value; } |
216 | } | ||
333 | 217 | ||
334 | int i = 0; | 218 | // All those lists... |
335 | for (i = 0; i < testateManagers.Length; i++) | 219 | // |
336 | { | 220 | private List<LLUUID> l_EstateManagers = new List<LLUUID>(); |
337 | nestateManagers[i] = testateManagers[i]; | ||
338 | } | ||
339 | 221 | ||
340 | nestateManagers[i] = avatarID; | 222 | public LLUUID[] EstateManagers |
223 | { | ||
224 | get { return l_EstateManagers.ToArray(); } | ||
225 | set { l_EstateManagers = new List<LLUUID>(value); } | ||
226 | } | ||
341 | 227 | ||
342 | //Saves it to the estate settings file | 228 | private List<EstateBan> l_EstateBans = new List<EstateBan>(); |
343 | estateManagers = nestateManagers; | 229 | |
230 | public EstateBan[] EstateBans | ||
231 | { | ||
232 | get { return l_EstateBans.ToArray(); } | ||
233 | set { l_EstateBans = new List<EstateBan>(value); } | ||
344 | } | 234 | } |
345 | 235 | ||
346 | public void RemoveEstateManager(LLUUID avatarID) | 236 | private List<LLUUID> l_EstateAccess = new List<LLUUID>(); |
237 | |||
238 | public LLUUID[] EstateAccess | ||
347 | { | 239 | { |
348 | int notfoundparam = 11; // starting high so the condense routine (max ten) doesn't run if we don't find it. | 240 | get { return l_EstateAccess.ToArray(); } |
349 | LLUUID[] testateManagers = GetEstateManagers(); // temporary estate managers list | 241 | set { l_EstateAccess = new List<LLUUID>(value); } |
242 | } | ||
350 | 243 | ||
244 | private List<LLUUID> l_EstateGroups = new List<LLUUID>(); | ||
351 | 245 | ||
352 | int i = 0; | 246 | public LLUUID[] EstateGroups |
353 | int foundpos = notfoundparam; | 247 | { |
248 | get { return l_EstateGroups.ToArray(); } | ||
249 | set { l_EstateGroups = new List<LLUUID>(value); } | ||
250 | } | ||
354 | 251 | ||
355 | // search for estate manager. | 252 | public EstateSettings() |
356 | for (i = 0; i < testateManagers.Length; i++) | 253 | { |
254 | if (configMember == null) | ||
357 | { | 255 | { |
358 | if (testateManagers[i] == avatarID) | 256 | // Load legacy defaults |
359 | { | 257 | // |
360 | foundpos = i; | 258 | configMember = |
361 | break; | 259 | new ConfigurationMember(Path.Combine(Util.configDir(), |
362 | } | 260 | "estate_settings.xml"), "ESTATE SETTINGS", |
261 | loadConfigurationOptions, | ||
262 | handleIncomingConfiguration, true); | ||
263 | |||
264 | l_EstateManagers.Clear(); | ||
265 | configMember.performConfigurationRetrieve(); | ||
363 | } | 266 | } |
364 | if (foundpos < notfoundparam) | 267 | } |
365 | { | ||
366 | LLUUID[] restateManagers = new LLUUID[testateManagers.Length - 1]; | ||
367 | 268 | ||
368 | // fill new estate managers array up to the found spot | 269 | public void Save() |
369 | for (int j = 0; j < foundpos; j++) | 270 | { |
370 | restateManagers[j] = testateManagers[j]; | 271 | if(OnSave != null) |
272 | OnSave(this); | ||
273 | } | ||
371 | 274 | ||
372 | // skip over the estate manager we're removing and compress | 275 | public void AddEstateManager(LLUUID avatarID) |
373 | for (int j = foundpos + 1; j < testateManagers.Length; j++) | 276 | { |
374 | restateManagers[j - 1] = testateManagers[j]; | 277 | if(avatarID == null || avatarID == LLUUID.Zero) |
278 | return; | ||
279 | if(!l_EstateManagers.Contains(avatarID)) | ||
280 | l_EstateManagers.Add(avatarID); | ||
281 | } | ||
375 | 282 | ||
376 | estateManagers = restateManagers; | 283 | public void RemoveEstateManager(LLUUID avatarID) |
377 | } | 284 | { |
378 | else | 285 | if(l_EstateManagers.Contains(avatarID)) |
379 | { | 286 | l_EstateManagers.Remove(avatarID); |
380 | m_log.Error("[ESTATESETTINGS]: Unable to locate estate manager : " + avatarID.ToString() + " for removal"); | ||
381 | } | ||
382 | } | 287 | } |
383 | 288 | ||
384 | #endregion | 289 | public bool IsEstateManager(LLUUID avatarID) |
290 | { | ||
291 | return l_EstateManagers.Contains(avatarID); | ||
292 | } | ||
293 | |||
294 | public bool IsBanned(LLUUID avatarID) | ||
295 | { | ||
296 | foreach (EstateBan ban in l_EstateBans) | ||
297 | if(ban.bannedUUID == avatarID) | ||
298 | return true; | ||
299 | return false; | ||
300 | } | ||
301 | |||
302 | public void AddBan(EstateBan ban) | ||
303 | { | ||
304 | if(ban == null) | ||
305 | return; | ||
306 | if(!IsBanned(ban.bannedUUID)) | ||
307 | l_EstateBans.Add(ban); | ||
308 | } | ||
309 | |||
310 | public void ClearBans() | ||
311 | { | ||
312 | l_EstateBans.Clear(); | ||
313 | } | ||
314 | |||
315 | public void RemoveBan(LLUUID avatarID) | ||
316 | { | ||
317 | foreach (EstateBan ban in new List<EstateBan>(l_EstateBans)) | ||
318 | if(ban.bannedUUID == avatarID) | ||
319 | l_EstateBans.Remove(ban); | ||
320 | } | ||
385 | 321 | ||
386 | public void loadConfigurationOptions() | 322 | public void loadConfigurationOptions() |
387 | { | 323 | { |
388 | configMember.addConfigurationOption("billable_factor", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, String.Empty, | 324 | configMember.addConfigurationOption("billable_factor", |
389 | "0.0", true); | 325 | ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, |
390 | configMember.addConfigurationOption("estate_id", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, String.Empty, "100", | 326 | String.Empty, "0.0", true); |
391 | true); | 327 | |
392 | configMember.addConfigurationOption("parent_estate_id", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 328 | // configMember.addConfigurationOption("estate_id", |
393 | String.Empty, "1", true); | 329 | // ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
394 | configMember.addConfigurationOption("max_agents", ConfigurationOption.ConfigurationTypes.TYPE_BYTE, String.Empty, "40", | 330 | // String.Empty, "100", true); |
395 | true); | 331 | |
396 | 332 | // configMember.addConfigurationOption("parent_estate_id", | |
397 | configMember.addConfigurationOption("redirect_grid_x", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, | 333 | // ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
398 | "0", true); | 334 | // String.Empty, "1", true); |
399 | configMember.addConfigurationOption("redirect_grid_y", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, | 335 | |
400 | "0", true); | 336 | configMember.addConfigurationOption("redirect_grid_x", |
401 | configMember.addConfigurationOption("price_per_meter", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 337 | ConfigurationOption.ConfigurationTypes.TYPE_INT32, |
402 | String.Empty, "1", true); | 338 | String.Empty, "0", true); |
403 | 339 | ||
404 | configMember.addConfigurationOption("water_height", ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE, String.Empty, | 340 | configMember.addConfigurationOption("redirect_grid_y", |
405 | "20.0", true); | 341 | ConfigurationOption.ConfigurationTypes.TYPE_INT32, |
406 | 342 | String.Empty, "0", true); | |
407 | configMember.addConfigurationOption("estate_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | 343 | |
408 | String.Empty, "TestEstate", true); | 344 | configMember.addConfigurationOption("price_per_meter", |
409 | configMember.addConfigurationOption("estate_manager_0", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 345 | ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
410 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 346 | String.Empty, "1", true); |
411 | configMember.addConfigurationOption("estate_manager_1", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 347 | |
412 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 348 | configMember.addConfigurationOption("estate_name", |
413 | configMember.addConfigurationOption("estate_manager_2", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 349 | ConfigurationOption.ConfigurationTypes.TYPE_STRING, |
414 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 350 | String.Empty, "My Estate", true); |
415 | configMember.addConfigurationOption("estate_manager_3", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 351 | |
416 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 352 | configMember.addConfigurationOption("estate_manager_0", |
417 | configMember.addConfigurationOption("estate_manager_4", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 353 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
418 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 354 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
419 | configMember.addConfigurationOption("estate_manager_5", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 355 | |
420 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 356 | configMember.addConfigurationOption("estate_manager_1", |
421 | configMember.addConfigurationOption("estate_manager_6", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 357 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
422 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 358 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
423 | configMember.addConfigurationOption("estate_manager_7", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 359 | |
424 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 360 | configMember.addConfigurationOption("estate_manager_2", |
425 | configMember.addConfigurationOption("estate_manager_8", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 361 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
426 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 362 | String.Empty, "00000000-0000-0000-0000-000000000000", true); |
427 | configMember.addConfigurationOption("estate_manager_9", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 363 | |
428 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | 364 | configMember.addConfigurationOption("estate_manager_3", |
365 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
366 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
367 | |||
368 | configMember.addConfigurationOption("estate_manager_4", | ||
369 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
370 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
371 | |||
372 | configMember.addConfigurationOption("estate_manager_5", | ||
373 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
374 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
375 | |||
376 | configMember.addConfigurationOption("estate_manager_6", | ||
377 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
378 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
379 | |||
380 | configMember.addConfigurationOption("estate_manager_7", | ||
381 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
382 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
383 | |||
384 | configMember.addConfigurationOption("estate_manager_8", | ||
385 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
386 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
387 | |||
388 | configMember.addConfigurationOption("estate_manager_9", | ||
389 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
390 | String.Empty, "00000000-0000-0000-0000-000000000000", true); | ||
391 | |||
392 | configMember.addConfigurationOption("region_flags", | ||
393 | ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
394 | String.Empty, "336723974", true); | ||
429 | } | 395 | } |
430 | 396 | ||
431 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) | 397 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) |
432 | { | 398 | { |
433 | switch (configuration_key) | 399 | switch (configuration_key) |
434 | { | 400 | { |
435 | case "billable_factor": | 401 | case "region_flags": |
436 | m_billableFactor = (float) configuration_result; | 402 | Simulator.RegionFlags flags = (Simulator.RegionFlags)(uint)configuration_result; |
403 | if((flags & (Simulator.RegionFlags)(1<<29)) != 0) | ||
404 | m_AllowVoice = true; | ||
405 | if((flags & Simulator.RegionFlags.AllowDirectTeleport) != 0) | ||
406 | m_AllowDirectTeleport = true; | ||
407 | if((flags & Simulator.RegionFlags.DenyAnonymous) != 0) | ||
408 | m_DenyAnonymous = true; | ||
409 | if((flags & Simulator.RegionFlags.DenyIdentified) != 0) | ||
410 | m_DenyIdentified = true; | ||
411 | if((flags & Simulator.RegionFlags.DenyTransacted) != 0) | ||
412 | m_DenyTransacted = true; | ||
413 | if((flags & Simulator.RegionFlags.AbuseEmailToEstateOwner) != 0) | ||
414 | m_AbuseEmailToEstateOwner = true; | ||
415 | if((flags & Simulator.RegionFlags.BlockDwell) != 0) | ||
416 | m_BlockDwell = true; | ||
417 | if((flags & Simulator.RegionFlags.EstateSkipScripts) != 0) | ||
418 | m_EstateSkipScripts = true; | ||
419 | if((flags & Simulator.RegionFlags.ResetHomeOnTeleport) != 0) | ||
420 | m_ResetHomeOnTeleport = true; | ||
421 | if((flags & Simulator.RegionFlags.TaxFree) != 0) | ||
422 | m_TaxFree = true; | ||
423 | if((flags & Simulator.RegionFlags.PublicAllowed) != 0) | ||
424 | m_PublicAccess = true; | ||
437 | break; | 425 | break; |
438 | case "estate_id": | 426 | case "billable_factor": |
439 | m_estateID = (uint) configuration_result; | 427 | m_BillableFactor = (float) configuration_result; |
440 | break; | ||
441 | case "parent_estate_id": | ||
442 | m_parentEstateID = (uint) configuration_result; | ||
443 | break; | 428 | break; |
429 | // case "estate_id": | ||
430 | // m_EstateID = (uint) configuration_result; | ||
431 | // break; | ||
432 | // case "parent_estate_id": | ||
433 | // m_ParentEstateID = (uint) configuration_result; | ||
434 | // break; | ||
444 | case "redirect_grid_x": | 435 | case "redirect_grid_x": |
445 | m_redirectGridX = (int) configuration_result; | 436 | m_RedirectGridX = (int) configuration_result; |
446 | break; | 437 | break; |
447 | case "redirect_grid_y": | 438 | case "redirect_grid_y": |
448 | m_redirectGridY = (int) configuration_result; | 439 | m_RedirectGridY = (int) configuration_result; |
449 | break; | 440 | break; |
450 | case "price_per_meter": | 441 | case "price_per_meter": |
451 | m_pricePerMeter = Convert.ToInt32(configuration_result); | 442 | m_PricePerMeter = Convert.ToInt32(configuration_result); |
452 | break; | 443 | break; |
453 | |||
454 | case "estate_name": | 444 | case "estate_name": |
455 | m_estateName = (string) configuration_result; | 445 | m_EstateName = (string) configuration_result; |
456 | break; | 446 | break; |
457 | case "estate_manager_0": | 447 | case "estate_manager_0": |
458 | m_estateManager0 = (LLUUID) configuration_result; | 448 | AddEstateManager((LLUUID)configuration_result); |
459 | break; | 449 | break; |
460 | case "estate_manager_1": | 450 | case "estate_manager_1": |
461 | m_estateManager1 = (LLUUID) configuration_result; | 451 | AddEstateManager((LLUUID)configuration_result); |
462 | break; | 452 | break; |
463 | case "estate_manager_2": | 453 | case "estate_manager_2": |
464 | m_estateManager2 = (LLUUID) configuration_result; | 454 | AddEstateManager((LLUUID)configuration_result); |
465 | break; | 455 | break; |
466 | case "estate_manager_3": | 456 | case "estate_manager_3": |
467 | m_estateManager3 = (LLUUID) configuration_result; | 457 | AddEstateManager((LLUUID)configuration_result); |
468 | break; | 458 | break; |
469 | case "estate_manager_4": | 459 | case "estate_manager_4": |
470 | m_estateManager4 = (LLUUID) configuration_result; | 460 | AddEstateManager((LLUUID)configuration_result); |
471 | break; | 461 | break; |
472 | case "estate_manager_5": | 462 | case "estate_manager_5": |
473 | m_estateManager5 = (LLUUID) configuration_result; | 463 | AddEstateManager((LLUUID)configuration_result); |
474 | break; | 464 | break; |
475 | case "estate_manager_6": | 465 | case "estate_manager_6": |
476 | m_estateManager6 = (LLUUID) configuration_result; | 466 | AddEstateManager((LLUUID)configuration_result); |
477 | break; | 467 | break; |
478 | case "estate_manager_7": | 468 | case "estate_manager_7": |
479 | m_estateManager7 = (LLUUID) configuration_result; | 469 | AddEstateManager((LLUUID)configuration_result); |
480 | break; | 470 | break; |
481 | case "estate_manager_8": | 471 | case "estate_manager_8": |
482 | m_estateManager8 = (LLUUID) configuration_result; | 472 | AddEstateManager((LLUUID)configuration_result); |
483 | break; | 473 | break; |
484 | case "estate_manager_9": | 474 | case "estate_manager_9": |
485 | m_estateManager9 = (LLUUID) configuration_result; | 475 | AddEstateManager((LLUUID)configuration_result); |
486 | break; | 476 | break; |
487 | } | 477 | } |
488 | 478 | ||