aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementCommands.cs156
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs584
2 files changed, 400 insertions, 340 deletions
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementCommands.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementCommands.cs
new file mode 100644
index 0000000..14f5b1e
--- /dev/null
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementCommands.cs
@@ -0,0 +1,156 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.IO;
31using System.Reflection;
32using System.Security;
33using log4net;
34using Nini.Config;
35using OpenMetaverse;
36using OpenSim.Framework;
37using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes;
39
40namespace OpenSim.Region.CoreModules.World.Estate
41{
42 public class EstateManagementCommands
43 {
44 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
45
46 protected EstateManagementModule m_module;
47
48 public EstateManagementCommands(EstateManagementModule module)
49 {
50 m_module = module;
51 }
52
53 public void Initialise()
54 {
55 m_module.Scene.AddCommand(this, "set terrain texture",
56 "set terrain texture <number> <uuid> [<x>] [<y>]",
57 "Sets the terrain <number> to <uuid>, if <x> or <y> are specified, it will only " +
58 "set it on regions with a matching coordinate. Specify -1 in <x> or <y> to wildcard" +
59 " that coordinate.",
60 consoleSetTerrainTexture);
61
62 m_module.Scene.AddCommand(this, "set terrain heights",
63 "set terrain heights <corner> <min> <max> [<x>] [<y>]",
64 "Sets the terrain texture heights on corner #<corner> to <min>/<max>, if <x> or <y> are specified, it will only " +
65 "set it on regions with a matching coordinate. Specify -1 in <x> or <y> to wildcard" +
66 " that coordinate. Corner # SW = 0, NW = 1, SE = 2, NE = 3.",
67 consoleSetTerrainHeights);
68 }
69
70 protected void consoleSetTerrainTexture(string module, string[] args)
71 {
72 string num = args[3];
73 string uuid = args[4];
74 int x = (args.Length > 5 ? int.Parse(args[5]) : -1);
75 int y = (args.Length > 6 ? int.Parse(args[6]) : -1);
76
77 if (x == -1 || m_module.Scene.RegionInfo.RegionLocX == x)
78 {
79 if (y == -1 || m_module.Scene.RegionInfo.RegionLocY == y)
80 {
81 int corner = int.Parse(num);
82 UUID texture = UUID.Parse(uuid);
83
84 m_log.Debug("[ESTATEMODULE]: Setting terrain textures for " + m_module.Scene.RegionInfo.RegionName +
85 string.Format(" (C#{0} = {1})", corner, texture));
86
87 switch (corner)
88 {
89 case 0:
90 m_module.Scene.RegionInfo.RegionSettings.TerrainTexture1 = texture;
91 break;
92 case 1:
93 m_module.Scene.RegionInfo.RegionSettings.TerrainTexture2 = texture;
94 break;
95 case 2:
96 m_module.Scene.RegionInfo.RegionSettings.TerrainTexture3 = texture;
97 break;
98 case 3:
99 m_module.Scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
100 break;
101 }
102
103 m_module.Scene.RegionInfo.RegionSettings.Save();
104 m_module.TriggerRegionInfoChange();
105 m_module.sendRegionInfoPacketToAll();
106 }
107 }
108 }
109
110 protected void consoleSetTerrainHeights(string module, string[] args)
111 {
112 string num = args[3];
113 string min = args[4];
114 string max = args[5];
115 int x = (args.Length > 6 ? int.Parse(args[6]) : -1);
116 int y = (args.Length > 7 ? int.Parse(args[7]) : -1);
117
118 if (x == -1 || m_module.Scene.RegionInfo.RegionLocX == x)
119 {
120 if (y == -1 || m_module.Scene.RegionInfo.RegionLocY == y)
121 {
122 int corner = int.Parse(num);
123 float lowValue = float.Parse(min, Culture.NumberFormatInfo);
124 float highValue = float.Parse(max, Culture.NumberFormatInfo);
125
126 m_log.Debug("[ESTATEMODULE]: Setting terrain heights " + m_module.Scene.RegionInfo.RegionName +
127 string.Format(" (C{0}, {1}-{2}", corner, lowValue, highValue));
128
129 switch (corner)
130 {
131 case 0:
132 m_module.Scene.RegionInfo.RegionSettings.Elevation1SW = lowValue;
133 m_module.Scene.RegionInfo.RegionSettings.Elevation2SW = highValue;
134 break;
135 case 1:
136 m_module.Scene.RegionInfo.RegionSettings.Elevation1NW = lowValue;
137 m_module.Scene.RegionInfo.RegionSettings.Elevation2NW = highValue;
138 break;
139 case 2:
140 m_module.Scene.RegionInfo.RegionSettings.Elevation1SE = lowValue;
141 m_module.Scene.RegionInfo.RegionSettings.Elevation2SE = highValue;
142 break;
143 case 3:
144 m_module.Scene.RegionInfo.RegionSettings.Elevation1NE = lowValue;
145 m_module.Scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
146 break;
147 }
148
149 m_module.Scene.RegionInfo.RegionSettings.Save();
150 m_module.TriggerRegionInfoChange();
151 m_module.sendRegionHandshakeToAll();
152 }
153 }
154 }
155 }
156} \ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 01f04d9..54d3c61 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -24,6 +24,7 @@
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27
27using System; 28using System;
28using System.Collections.Generic; 29using System.Collections.Generic;
29using System.IO; 30using System.IO;
@@ -44,7 +45,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
44 45
45 private delegate void LookupUUIDS(List<UUID> uuidLst); 46 private delegate void LookupUUIDS(List<UUID> uuidLst);
46 47
47 private Scene m_scene; 48 public Scene Scene { get; private set; }
49
50 protected EstateManagementCommands m_commands;
48 51
49 private EstateTerrainXferHandler TerrainUploader; 52 private EstateTerrainXferHandler TerrainUploader;
50 53
@@ -58,89 +61,89 @@ namespace OpenSim.Region.CoreModules.World.Estate
58 { 61 {
59 uint sun = 0; 62 uint sun = 0;
60 63
61 if (!m_scene.RegionInfo.EstateSettings.UseGlobalTime) 64 if (!Scene.RegionInfo.EstateSettings.UseGlobalTime)
62 sun=(uint)(m_scene.RegionInfo.EstateSettings.SunPosition*1024.0) + 0x1800; 65 sun = (uint)(Scene.RegionInfo.EstateSettings.SunPosition * 1024.0) + 0x1800;
63 UUID estateOwner; 66 UUID estateOwner;
64 estateOwner = m_scene.RegionInfo.EstateSettings.EstateOwner; 67 estateOwner = Scene.RegionInfo.EstateSettings.EstateOwner;
65 68
66 if (m_scene.Permissions.IsGod(remote_client.AgentId)) 69 if (Scene.Permissions.IsGod(remote_client.AgentId))
67 estateOwner = remote_client.AgentId; 70 estateOwner = remote_client.AgentId;
68 71
69 remote_client.SendDetailedEstateData(invoice, 72 remote_client.SendDetailedEstateData(invoice,
70 m_scene.RegionInfo.EstateSettings.EstateName, 73 Scene.RegionInfo.EstateSettings.EstateName,
71 m_scene.RegionInfo.EstateSettings.EstateID, 74 Scene.RegionInfo.EstateSettings.EstateID,
72 m_scene.RegionInfo.EstateSettings.ParentEstateID, 75 Scene.RegionInfo.EstateSettings.ParentEstateID,
73 GetEstateFlags(), 76 GetEstateFlags(),
74 sun, 77 sun,
75 m_scene.RegionInfo.RegionSettings.Covenant, 78 Scene.RegionInfo.RegionSettings.Covenant,
76 m_scene.RegionInfo.EstateSettings.AbuseEmail, 79 Scene.RegionInfo.EstateSettings.AbuseEmail,
77 estateOwner); 80 estateOwner);
78 81
79 remote_client.SendEstateList(invoice, 82 remote_client.SendEstateList(invoice,
80 (int)Constants.EstateAccessCodex.EstateManagers, 83 (int)Constants.EstateAccessCodex.EstateManagers,
81 m_scene.RegionInfo.EstateSettings.EstateManagers, 84 Scene.RegionInfo.EstateSettings.EstateManagers,
82 m_scene.RegionInfo.EstateSettings.EstateID); 85 Scene.RegionInfo.EstateSettings.EstateID);
83 86
84 remote_client.SendEstateList(invoice, 87 remote_client.SendEstateList(invoice,
85 (int)Constants.EstateAccessCodex.AccessOptions, 88 (int)Constants.EstateAccessCodex.AccessOptions,
86 m_scene.RegionInfo.EstateSettings.EstateAccess, 89 Scene.RegionInfo.EstateSettings.EstateAccess,
87 m_scene.RegionInfo.EstateSettings.EstateID); 90 Scene.RegionInfo.EstateSettings.EstateID);
88 91
89 remote_client.SendEstateList(invoice, 92 remote_client.SendEstateList(invoice,
90 (int)Constants.EstateAccessCodex.AllowedGroups, 93 (int)Constants.EstateAccessCodex.AllowedGroups,
91 m_scene.RegionInfo.EstateSettings.EstateGroups, 94 Scene.RegionInfo.EstateSettings.EstateGroups,
92 m_scene.RegionInfo.EstateSettings.EstateID); 95 Scene.RegionInfo.EstateSettings.EstateID);
93 96
94 remote_client.SendBannedUserList(invoice, 97 remote_client.SendBannedUserList(invoice,
95 m_scene.RegionInfo.EstateSettings.EstateBans, 98 Scene.RegionInfo.EstateSettings.EstateBans,
96 m_scene.RegionInfo.EstateSettings.EstateID); 99 Scene.RegionInfo.EstateSettings.EstateID);
97 } 100 }
98 101
99 private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor, 102 private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
100 int matureLevel, bool restrictPushObject, bool allowParcelChanges) 103 int matureLevel, bool restrictPushObject, bool allowParcelChanges)
101 { 104 {
102 if (blockTerraform) 105 if (blockTerraform)
103 m_scene.RegionInfo.RegionSettings.BlockTerraform = true; 106 Scene.RegionInfo.RegionSettings.BlockTerraform = true;
104 else 107 else
105 m_scene.RegionInfo.RegionSettings.BlockTerraform = false; 108 Scene.RegionInfo.RegionSettings.BlockTerraform = false;
106 109
107 if (noFly) 110 if (noFly)
108 m_scene.RegionInfo.RegionSettings.BlockFly = true; 111 Scene.RegionInfo.RegionSettings.BlockFly = true;
109 else 112 else
110 m_scene.RegionInfo.RegionSettings.BlockFly = false; 113 Scene.RegionInfo.RegionSettings.BlockFly = false;
111 114
112 if (allowDamage) 115 if (allowDamage)
113 m_scene.RegionInfo.RegionSettings.AllowDamage = true; 116 Scene.RegionInfo.RegionSettings.AllowDamage = true;
114 else 117 else
115 m_scene.RegionInfo.RegionSettings.AllowDamage = false; 118 Scene.RegionInfo.RegionSettings.AllowDamage = false;
116 119
117 if (blockLandResell) 120 if (blockLandResell)
118 m_scene.RegionInfo.RegionSettings.AllowLandResell = false; 121 Scene.RegionInfo.RegionSettings.AllowLandResell = false;
119 else 122 else
120 m_scene.RegionInfo.RegionSettings.AllowLandResell = true; 123 Scene.RegionInfo.RegionSettings.AllowLandResell = true;
121 124
122 m_scene.RegionInfo.RegionSettings.AgentLimit = (byte) maxAgents; 125 Scene.RegionInfo.RegionSettings.AgentLimit = (byte) maxAgents;
123 126
124 m_scene.RegionInfo.RegionSettings.ObjectBonus = objectBonusFactor; 127 Scene.RegionInfo.RegionSettings.ObjectBonus = objectBonusFactor;
125 128
126 if (matureLevel <= 13) 129 if (matureLevel <= 13)
127 m_scene.RegionInfo.RegionSettings.Maturity = 0; 130 Scene.RegionInfo.RegionSettings.Maturity = 0;
128 else if (matureLevel <= 21) 131 else if (matureLevel <= 21)
129 m_scene.RegionInfo.RegionSettings.Maturity = 1; 132 Scene.RegionInfo.RegionSettings.Maturity = 1;
130 else 133 else
131 m_scene.RegionInfo.RegionSettings.Maturity = 2; 134 Scene.RegionInfo.RegionSettings.Maturity = 2;
132 135
133 if (restrictPushObject) 136 if (restrictPushObject)
134 m_scene.RegionInfo.RegionSettings.RestrictPushing = true; 137 Scene.RegionInfo.RegionSettings.RestrictPushing = true;
135 else 138 else
136 m_scene.RegionInfo.RegionSettings.RestrictPushing = false; 139 Scene.RegionInfo.RegionSettings.RestrictPushing = false;
137 140
138 if (allowParcelChanges) 141 if (allowParcelChanges)
139 m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = true; 142 Scene.RegionInfo.RegionSettings.AllowLandJoinDivide = true;
140 else 143 else
141 m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = false; 144 Scene.RegionInfo.RegionSettings.AllowLandJoinDivide = false;
142 145
143 m_scene.RegionInfo.RegionSettings.Save(); 146 Scene.RegionInfo.RegionSettings.Save();
144 TriggerRegionInfoChange(); 147 TriggerRegionInfoChange();
145 148
146 sendRegionInfoPacketToAll(); 149 sendRegionInfoPacketToAll();
@@ -154,19 +157,19 @@ namespace OpenSim.Region.CoreModules.World.Estate
154 switch (corner) 157 switch (corner)
155 { 158 {
156 case 0: 159 case 0:
157 m_scene.RegionInfo.RegionSettings.TerrainTexture1 = texture; 160 Scene.RegionInfo.RegionSettings.TerrainTexture1 = texture;
158 break; 161 break;
159 case 1: 162 case 1:
160 m_scene.RegionInfo.RegionSettings.TerrainTexture2 = texture; 163 Scene.RegionInfo.RegionSettings.TerrainTexture2 = texture;
161 break; 164 break;
162 case 2: 165 case 2:
163 m_scene.RegionInfo.RegionSettings.TerrainTexture3 = texture; 166 Scene.RegionInfo.RegionSettings.TerrainTexture3 = texture;
164 break; 167 break;
165 case 3: 168 case 3:
166 m_scene.RegionInfo.RegionSettings.TerrainTexture4 = texture; 169 Scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
167 break; 170 break;
168 } 171 }
169 m_scene.RegionInfo.RegionSettings.Save(); 172 Scene.RegionInfo.RegionSettings.Save();
170 TriggerRegionInfoChange(); 173 TriggerRegionInfoChange();
171 sendRegionInfoPacketToAll(); 174 sendRegionInfoPacketToAll();
172 } 175 }
@@ -176,23 +179,23 @@ namespace OpenSim.Region.CoreModules.World.Estate
176 switch (corner) 179 switch (corner)
177 { 180 {
178 case 0: 181 case 0:
179 m_scene.RegionInfo.RegionSettings.Elevation1SW = lowValue; 182 Scene.RegionInfo.RegionSettings.Elevation1SW = lowValue;
180 m_scene.RegionInfo.RegionSettings.Elevation2SW = highValue; 183 Scene.RegionInfo.RegionSettings.Elevation2SW = highValue;
181 break; 184 break;
182 case 1: 185 case 1:
183 m_scene.RegionInfo.RegionSettings.Elevation1NW = lowValue; 186 Scene.RegionInfo.RegionSettings.Elevation1NW = lowValue;
184 m_scene.RegionInfo.RegionSettings.Elevation2NW = highValue; 187 Scene.RegionInfo.RegionSettings.Elevation2NW = highValue;
185 break; 188 break;
186 case 2: 189 case 2:
187 m_scene.RegionInfo.RegionSettings.Elevation1SE = lowValue; 190 Scene.RegionInfo.RegionSettings.Elevation1SE = lowValue;
188 m_scene.RegionInfo.RegionSettings.Elevation2SE = highValue; 191 Scene.RegionInfo.RegionSettings.Elevation2SE = highValue;
189 break; 192 break;
190 case 3: 193 case 3:
191 m_scene.RegionInfo.RegionSettings.Elevation1NE = lowValue; 194 Scene.RegionInfo.RegionSettings.Elevation1NE = lowValue;
192 m_scene.RegionInfo.RegionSettings.Elevation2NE = highValue; 195 Scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
193 break; 196 break;
194 } 197 }
195 m_scene.RegionInfo.RegionSettings.Save(); 198 Scene.RegionInfo.RegionSettings.Save();
196 TriggerRegionInfoChange(); 199 TriggerRegionInfoChange();
197 sendRegionInfoPacketToAll(); 200 sendRegionInfoPacketToAll();
198 } 201 }
@@ -208,30 +211,30 @@ namespace OpenSim.Region.CoreModules.World.Estate
208 bool UseGlobal, bool EstateFixedSun, float EstateSunHour) 211 bool UseGlobal, bool EstateFixedSun, float EstateSunHour)
209 { 212 {
210 // Water Height 213 // Water Height
211 m_scene.RegionInfo.RegionSettings.WaterHeight = WaterHeight; 214 Scene.RegionInfo.RegionSettings.WaterHeight = WaterHeight;
212 215
213 // Terraforming limits 216 // Terraforming limits
214 m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit = TerrainRaiseLimit; 217 Scene.RegionInfo.RegionSettings.TerrainRaiseLimit = TerrainRaiseLimit;
215 m_scene.RegionInfo.RegionSettings.TerrainLowerLimit = TerrainLowerLimit; 218 Scene.RegionInfo.RegionSettings.TerrainLowerLimit = TerrainLowerLimit;
216 219
217 // Time of day / fixed sun 220 // Time of day / fixed sun
218 m_scene.RegionInfo.RegionSettings.UseEstateSun = UseEstateSun; 221 Scene.RegionInfo.RegionSettings.UseEstateSun = UseEstateSun;
219 m_scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun; 222 Scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun;
220 m_scene.RegionInfo.RegionSettings.SunPosition = SunHour; 223 Scene.RegionInfo.RegionSettings.SunPosition = SunHour;
221 224
222 m_scene.TriggerEstateSunUpdate(); 225 Scene.TriggerEstateSunUpdate();
223 226
224 //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString()); 227 //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString());
225 //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString()); 228 //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString());
226 229
227 sendRegionInfoPacketToAll(); 230 sendRegionInfoPacketToAll();
228 m_scene.RegionInfo.RegionSettings.Save(); 231 Scene.RegionInfo.RegionSettings.Save();
229 TriggerRegionInfoChange(); 232 TriggerRegionInfoChange();
230 } 233 }
231 234
232 private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds) 235 private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
233 { 236 {
234 IRestartModule restartModule = m_scene.RequestModuleInterface<IRestartModule>(); 237 IRestartModule restartModule = Scene.RequestModuleInterface<IRestartModule>();
235 if (restartModule != null) 238 if (restartModule != null)
236 { 239 {
237 List<int> times = new List<int>(); 240 List<int> times = new List<int>();
@@ -252,8 +255,8 @@ namespace OpenSim.Region.CoreModules.World.Estate
252 255
253 private void handleChangeEstateCovenantRequest(IClientAPI remoteClient, UUID estateCovenantID) 256 private void handleChangeEstateCovenantRequest(IClientAPI remoteClient, UUID estateCovenantID)
254 { 257 {
255 m_scene.RegionInfo.RegionSettings.Covenant = estateCovenantID; 258 Scene.RegionInfo.RegionSettings.Covenant = estateCovenantID;
256 m_scene.RegionInfo.RegionSettings.Save(); 259 Scene.RegionInfo.RegionSettings.Save();
257 TriggerRegionInfoChange(); 260 TriggerRegionInfoChange();
258 } 261 }
259 262
@@ -261,17 +264,17 @@ namespace OpenSim.Region.CoreModules.World.Estate
261 { 264 {
262 // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc. 265 // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc.
263 266
264 if (user == m_scene.RegionInfo.EstateSettings.EstateOwner) 267 if (user == Scene.RegionInfo.EstateSettings.EstateOwner)
265 return; // never process EO 268 return; // never process EO
266 269
267 if ((estateAccessType & 4) != 0) // User add 270 if ((estateAccessType & 4) != 0) // User add
268 { 271 {
269 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 272 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
270 { 273 {
271 m_scene.RegionInfo.EstateSettings.AddEstateUser(user); 274 Scene.RegionInfo.EstateSettings.AddEstateUser(user);
272 m_scene.RegionInfo.EstateSettings.Save(); 275 Scene.RegionInfo.EstateSettings.Save();
273 TriggerEstateInfoChange(); 276 TriggerEstateInfoChange();
274 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, m_scene.RegionInfo.EstateSettings.EstateAccess, m_scene.RegionInfo.EstateSettings.EstateID); 277 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID);
275 } 278 }
276 else 279 else
277 { 280 {
@@ -281,13 +284,13 @@ namespace OpenSim.Region.CoreModules.World.Estate
281 } 284 }
282 if ((estateAccessType & 8) != 0) // User remove 285 if ((estateAccessType & 8) != 0) // User remove
283 { 286 {
284 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 287 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
285 { 288 {
286 m_scene.RegionInfo.EstateSettings.RemoveEstateUser(user); 289 Scene.RegionInfo.EstateSettings.RemoveEstateUser(user);
287 m_scene.RegionInfo.EstateSettings.Save(); 290 Scene.RegionInfo.EstateSettings.Save();
288 TriggerEstateInfoChange(); 291 TriggerEstateInfoChange();
289 292
290 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, m_scene.RegionInfo.EstateSettings.EstateAccess, m_scene.RegionInfo.EstateSettings.EstateID); 293 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AccessOptions, Scene.RegionInfo.EstateSettings.EstateAccess, Scene.RegionInfo.EstateSettings.EstateID);
291 } 294 }
292 else 295 else
293 { 296 {
@@ -296,12 +299,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
296 } 299 }
297 if ((estateAccessType & 16) != 0) // Group add 300 if ((estateAccessType & 16) != 0) // Group add
298 { 301 {
299 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 302 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
300 { 303 {
301 m_scene.RegionInfo.EstateSettings.AddEstateGroup(user); 304 Scene.RegionInfo.EstateSettings.AddEstateGroup(user);
302 m_scene.RegionInfo.EstateSettings.Save(); 305 Scene.RegionInfo.EstateSettings.Save();
303 TriggerEstateInfoChange(); 306 TriggerEstateInfoChange();
304 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, m_scene.RegionInfo.EstateSettings.EstateGroups, m_scene.RegionInfo.EstateSettings.EstateID); 307 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID);
305 } 308 }
306 else 309 else
307 { 310 {
@@ -310,13 +313,13 @@ namespace OpenSim.Region.CoreModules.World.Estate
310 } 313 }
311 if ((estateAccessType & 32) != 0) // Group remove 314 if ((estateAccessType & 32) != 0) // Group remove
312 { 315 {
313 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 316 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
314 { 317 {
315 m_scene.RegionInfo.EstateSettings.RemoveEstateGroup(user); 318 Scene.RegionInfo.EstateSettings.RemoveEstateGroup(user);
316 m_scene.RegionInfo.EstateSettings.Save(); 319 Scene.RegionInfo.EstateSettings.Save();
317 TriggerEstateInfoChange(); 320 TriggerEstateInfoChange();
318 321
319 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, m_scene.RegionInfo.EstateSettings.EstateGroups, m_scene.RegionInfo.EstateSettings.EstateID); 322 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.AllowedGroups, Scene.RegionInfo.EstateSettings.EstateGroups, Scene.RegionInfo.EstateSettings.EstateID);
320 } 323 }
321 else 324 else
322 { 325 {
@@ -325,9 +328,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
325 } 328 }
326 if ((estateAccessType & 64) != 0) // Ban add 329 if ((estateAccessType & 64) != 0) // Ban add
327 { 330 {
328 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions()) 331 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || Scene.Permissions.BypassPermissions())
329 { 332 {
330 EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; 333 EstateBan[] banlistcheck = Scene.RegionInfo.EstateSettings.EstateBans;
331 334
332 bool alreadyInList = false; 335 bool alreadyInList = false;
333 336
@@ -346,20 +349,20 @@ namespace OpenSim.Region.CoreModules.World.Estate
346 EstateBan item = new EstateBan(); 349 EstateBan item = new EstateBan();
347 350
348 item.BannedUserID = user; 351 item.BannedUserID = user;
349 item.EstateID = m_scene.RegionInfo.EstateSettings.EstateID; 352 item.EstateID = Scene.RegionInfo.EstateSettings.EstateID;
350 item.BannedHostAddress = "0.0.0.0"; 353 item.BannedHostAddress = "0.0.0.0";
351 item.BannedHostIPMask = "0.0.0.0"; 354 item.BannedHostIPMask = "0.0.0.0";
352 355
353 m_scene.RegionInfo.EstateSettings.AddBan(item); 356 Scene.RegionInfo.EstateSettings.AddBan(item);
354 m_scene.RegionInfo.EstateSettings.Save(); 357 Scene.RegionInfo.EstateSettings.Save();
355 TriggerEstateInfoChange(); 358 TriggerEstateInfoChange();
356 359
357 ScenePresence s = m_scene.GetScenePresence(user); 360 ScenePresence s = Scene.GetScenePresence(user);
358 if (s != null) 361 if (s != null)
359 { 362 {
360 if (!s.IsChildAgent) 363 if (!s.IsChildAgent)
361 { 364 {
362 m_scene.TeleportClientHome(user, s.ControllingClient); 365 Scene.TeleportClientHome(user, s.ControllingClient);
363 } 366 }
364 } 367 }
365 368
@@ -369,7 +372,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
369 remote_client.SendAlertMessage("User is already on the region ban list"); 372 remote_client.SendAlertMessage("User is already on the region ban list");
370 } 373 }
371 //m_scene.RegionInfo.regionBanlist.Add(Manager(user); 374 //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
372 remote_client.SendBannedUserList(invoice, m_scene.RegionInfo.EstateSettings.EstateBans, m_scene.RegionInfo.EstateSettings.EstateID); 375 remote_client.SendBannedUserList(invoice, Scene.RegionInfo.EstateSettings.EstateBans, Scene.RegionInfo.EstateSettings.EstateID);
373 } 376 }
374 else 377 else
375 { 378 {
@@ -378,9 +381,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
378 } 381 }
379 if ((estateAccessType & 128) != 0) // Ban remove 382 if ((estateAccessType & 128) != 0) // Ban remove
380 { 383 {
381 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || m_scene.Permissions.BypassPermissions()) 384 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, false) || Scene.Permissions.BypassPermissions())
382 { 385 {
383 EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; 386 EstateBan[] banlistcheck = Scene.RegionInfo.EstateSettings.EstateBans;
384 387
385 bool alreadyInList = false; 388 bool alreadyInList = false;
386 EstateBan listitem = null; 389 EstateBan listitem = null;
@@ -393,20 +396,21 @@ namespace OpenSim.Region.CoreModules.World.Estate
393 listitem = banlistcheck[i]; 396 listitem = banlistcheck[i];
394 break; 397 break;
395 } 398 }
396
397 } 399 }
400
398 if (alreadyInList && listitem != null) 401 if (alreadyInList && listitem != null)
399 { 402 {
400 m_scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID); 403 Scene.RegionInfo.EstateSettings.RemoveBan(listitem.BannedUserID);
401 m_scene.RegionInfo.EstateSettings.Save(); 404 Scene.RegionInfo.EstateSettings.Save();
402 TriggerEstateInfoChange(); 405 TriggerEstateInfoChange();
403 } 406 }
404 else 407 else
405 { 408 {
406 remote_client.SendAlertMessage("User is not on the region ban list"); 409 remote_client.SendAlertMessage("User is not on the region ban list");
407 } 410 }
411
408 //m_scene.RegionInfo.regionBanlist.Add(Manager(user); 412 //m_scene.RegionInfo.regionBanlist.Add(Manager(user);
409 remote_client.SendBannedUserList(invoice, m_scene.RegionInfo.EstateSettings.EstateBans, m_scene.RegionInfo.EstateSettings.EstateID); 413 remote_client.SendBannedUserList(invoice, Scene.RegionInfo.EstateSettings.EstateBans, Scene.RegionInfo.EstateSettings.EstateID);
410 } 414 }
411 else 415 else
412 { 416 {
@@ -415,12 +419,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
415 } 419 }
416 if ((estateAccessType & 256) != 0) // Manager add 420 if ((estateAccessType & 256) != 0) // Manager add
417 { 421 {
418 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 422 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
419 { 423 {
420 m_scene.RegionInfo.EstateSettings.AddEstateManager(user); 424 Scene.RegionInfo.EstateSettings.AddEstateManager(user);
421 m_scene.RegionInfo.EstateSettings.Save(); 425 Scene.RegionInfo.EstateSettings.Save();
422 TriggerEstateInfoChange(); 426 TriggerEstateInfoChange();
423 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateID); 427 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID);
424 } 428 }
425 else 429 else
426 { 430 {
@@ -429,13 +433,13 @@ namespace OpenSim.Region.CoreModules.World.Estate
429 } 433 }
430 if ((estateAccessType & 512) != 0) // Manager remove 434 if ((estateAccessType & 512) != 0) // Manager remove
431 { 435 {
432 if (m_scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || m_scene.Permissions.BypassPermissions()) 436 if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true) || Scene.Permissions.BypassPermissions())
433 { 437 {
434 m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user); 438 Scene.RegionInfo.EstateSettings.RemoveEstateManager(user);
435 m_scene.RegionInfo.EstateSettings.Save(); 439 Scene.RegionInfo.EstateSettings.Save();
436 TriggerEstateInfoChange(); 440 TriggerEstateInfoChange();
437 441
438 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateManagers, m_scene.RegionInfo.EstateSettings.EstateID); 442 remote_client.SendEstateList(invoice, (int)Constants.EstateAccessCodex.EstateManagers, Scene.RegionInfo.EstateSettings.EstateManagers, Scene.RegionInfo.EstateSettings.EstateID);
439 } 443 }
440 else 444 else
441 { 445 {
@@ -447,7 +451,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
447 private void SendSimulatorBlueBoxMessage( 451 private void SendSimulatorBlueBoxMessage(
448 IClientAPI remote_client, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message) 452 IClientAPI remote_client, UUID invoice, UUID senderID, UUID sessionID, string senderName, string message)
449 { 453 {
450 IDialogModule dm = m_scene.RequestModuleInterface<IDialogModule>(); 454 IDialogModule dm = Scene.RequestModuleInterface<IDialogModule>();
451 455
452 if (dm != null) 456 if (dm != null)
453 dm.SendNotificationToUsersInRegion(senderID, senderName, message); 457 dm.SendNotificationToUsersInRegion(senderID, senderName, message);
@@ -462,61 +466,62 @@ namespace OpenSim.Region.CoreModules.World.Estate
462 private void handleEstateDebugRegionRequest(IClientAPI remote_client, UUID invoice, UUID senderID, bool scripted, bool collisionEvents, bool physics) 466 private void handleEstateDebugRegionRequest(IClientAPI remote_client, UUID invoice, UUID senderID, bool scripted, bool collisionEvents, bool physics)
463 { 467 {
464 if (physics) 468 if (physics)
465 m_scene.RegionInfo.RegionSettings.DisablePhysics = true; 469 Scene.RegionInfo.RegionSettings.DisablePhysics = true;
466 else 470 else
467 m_scene.RegionInfo.RegionSettings.DisablePhysics = false; 471 Scene.RegionInfo.RegionSettings.DisablePhysics = false;
468 472
469 if (scripted) 473 if (scripted)
470 m_scene.RegionInfo.RegionSettings.DisableScripts = true; 474 Scene.RegionInfo.RegionSettings.DisableScripts = true;
471 else 475 else
472 m_scene.RegionInfo.RegionSettings.DisableScripts = false; 476 Scene.RegionInfo.RegionSettings.DisableScripts = false;
473 477
474 if (collisionEvents) 478 if (collisionEvents)
475 m_scene.RegionInfo.RegionSettings.DisableCollisions = true; 479 Scene.RegionInfo.RegionSettings.DisableCollisions = true;
476 else 480 else
477 m_scene.RegionInfo.RegionSettings.DisableCollisions = false; 481 Scene.RegionInfo.RegionSettings.DisableCollisions = false;
478 482
479 483
480 m_scene.RegionInfo.RegionSettings.Save(); 484 Scene.RegionInfo.RegionSettings.Save();
481 TriggerRegionInfoChange(); 485 TriggerRegionInfoChange();
482 486
483 m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics); 487 Scene.SetSceneCoreDebug(scripted, collisionEvents, physics);
484 } 488 }
485 489
486 private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID, UUID prey) 490 private void handleEstateTeleportOneUserHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID, UUID prey)
487 { 491 {
488 if (!m_scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) 492 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false))
489 return; 493 return;
490 494
491 if (prey != UUID.Zero) 495 if (prey != UUID.Zero)
492 { 496 {
493 ScenePresence s = m_scene.GetScenePresence(prey); 497 ScenePresence s = Scene.GetScenePresence(prey);
494 if (s != null) 498 if (s != null)
495 { 499 {
496 m_scene.TeleportClientHome(prey, s.ControllingClient); 500 Scene.TeleportClientHome(prey, s.ControllingClient);
497 } 501 }
498 } 502 }
499 } 503 }
500 504
501 private void handleEstateTeleportAllUsersHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID) 505 private void handleEstateTeleportAllUsersHomeRequest(IClientAPI remover_client, UUID invoice, UUID senderID)
502 { 506 {
503 if (!m_scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) 507 if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false))
504 return; 508 return;
505 509
506 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 510 Scene.ForEachScenePresence(delegate(ScenePresence sp)
507 { 511 {
508 if (sp.UUID != senderID) 512 if (sp.UUID != senderID)
509 { 513 {
510 ScenePresence p = m_scene.GetScenePresence(sp.UUID); 514 ScenePresence p = Scene.GetScenePresence(sp.UUID);
511 // make sure they are still there, we could be working down a long list 515 // make sure they are still there, we could be working down a long list
512 // Also make sure they are actually in the region 516 // Also make sure they are actually in the region
513 if (p != null && !p.IsChildAgent) 517 if (p != null && !p.IsChildAgent)
514 { 518 {
515 m_scene.TeleportClientHome(p.UUID, p.ControllingClient); 519 Scene.TeleportClientHome(p.UUID, p.ControllingClient);
516 } 520 }
517 } 521 }
518 }); 522 });
519 } 523 }
524
520 private void AbortTerrainXferHandler(IClientAPI remoteClient, ulong XferID) 525 private void AbortTerrainXferHandler(IClientAPI remoteClient, ulong XferID)
521 { 526 {
522 if (TerrainUploader != null) 527 if (TerrainUploader != null)
@@ -547,11 +552,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
547 TerrainUploader = null; 552 TerrainUploader = null;
548 } 553 }
549 remoteClient.SendAlertMessage("Terrain Upload Complete. Loading...."); 554 remoteClient.SendAlertMessage("Terrain Upload Complete. Loading....");
550 ITerrainModule terr = m_scene.RequestModuleInterface<ITerrainModule>(); 555 ITerrainModule terr = Scene.RequestModuleInterface<ITerrainModule>();
551 556
552 if (terr != null) 557 if (terr != null)
553 { 558 {
554 m_log.Warn("[CLIENT]: Got Request to Send Terrain in region " + m_scene.RegionInfo.RegionName); 559 m_log.Warn("[CLIENT]: Got Request to Send Terrain in region " + Scene.RegionInfo.RegionName);
555 560
556 try 561 try
557 { 562 {
@@ -597,7 +602,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
597 602
598 private void handleUploadTerrain(IClientAPI remote_client, string clientFileName) 603 private void handleUploadTerrain(IClientAPI remote_client, string clientFileName)
599 { 604 {
600
601 if (TerrainUploader == null) 605 if (TerrainUploader == null)
602 { 606 {
603 607
@@ -615,16 +619,16 @@ namespace OpenSim.Region.CoreModules.World.Estate
615 { 619 {
616 remote_client.SendAlertMessage("Another Terrain Upload is in progress. Please wait your turn!"); 620 remote_client.SendAlertMessage("Another Terrain Upload is in progress. Please wait your turn!");
617 } 621 }
618
619 } 622 }
623
620 private void handleTerrainRequest(IClientAPI remote_client, string clientFileName) 624 private void handleTerrainRequest(IClientAPI remote_client, string clientFileName)
621 { 625 {
622 // Save terrain here 626 // Save terrain here
623 ITerrainModule terr = m_scene.RequestModuleInterface<ITerrainModule>(); 627 ITerrainModule terr = Scene.RequestModuleInterface<ITerrainModule>();
624 628
625 if (terr != null) 629 if (terr != null)
626 { 630 {
627 m_log.Warn("[CLIENT]: Got Request to Send Terrain in region " + m_scene.RegionInfo.RegionName); 631 m_log.Warn("[CLIENT]: Got Request to Send Terrain in region " + Scene.RegionInfo.RegionName);
628 if (File.Exists(Util.dataDir() + "/terrain.raw")) 632 if (File.Exists(Util.dataDir() + "/terrain.raw"))
629 { 633 {
630 File.Delete(Util.dataDir() + "/terrain.raw"); 634 File.Delete(Util.dataDir() + "/terrain.raw");
@@ -635,7 +639,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
635 byte[] bdata = new byte[input.Length]; 639 byte[] bdata = new byte[input.Length];
636 input.Read(bdata, 0, (int)input.Length); 640 input.Read(bdata, 0, (int)input.Length);
637 remote_client.SendAlertMessage("Terrain file written, starting download..."); 641 remote_client.SendAlertMessage("Terrain file written, starting download...");
638 m_scene.XferManager.AddNewFile("terrain.raw", bdata); 642 Scene.XferManager.AddNewFile("terrain.raw", bdata);
639 // Tell client about it 643 // Tell client about it
640 m_log.Warn("[CLIENT]: Sending Terrain to " + remote_client.Name); 644 m_log.Warn("[CLIENT]: Sending Terrain to " + remote_client.Name);
641 remote_client.SendInitiateDownload("terrain.raw", clientFileName); 645 remote_client.SendInitiateDownload("terrain.raw", clientFileName);
@@ -645,35 +649,35 @@ namespace OpenSim.Region.CoreModules.World.Estate
645 private void HandleRegionInfoRequest(IClientAPI remote_client) 649 private void HandleRegionInfoRequest(IClientAPI remote_client)
646 { 650 {
647 RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs(); 651 RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs();
648 args.billableFactor = m_scene.RegionInfo.EstateSettings.BillableFactor; 652 args.billableFactor = Scene.RegionInfo.EstateSettings.BillableFactor;
649 args.estateID = m_scene.RegionInfo.EstateSettings.EstateID; 653 args.estateID = Scene.RegionInfo.EstateSettings.EstateID;
650 args.maxAgents = (byte)m_scene.RegionInfo.RegionSettings.AgentLimit; 654 args.maxAgents = (byte)Scene.RegionInfo.RegionSettings.AgentLimit;
651 args.objectBonusFactor = (float)m_scene.RegionInfo.RegionSettings.ObjectBonus; 655 args.objectBonusFactor = (float)Scene.RegionInfo.RegionSettings.ObjectBonus;
652 args.parentEstateID = m_scene.RegionInfo.EstateSettings.ParentEstateID; 656 args.parentEstateID = Scene.RegionInfo.EstateSettings.ParentEstateID;
653 args.pricePerMeter = m_scene.RegionInfo.EstateSettings.PricePerMeter; 657 args.pricePerMeter = Scene.RegionInfo.EstateSettings.PricePerMeter;
654 args.redirectGridX = m_scene.RegionInfo.EstateSettings.RedirectGridX; 658 args.redirectGridX = Scene.RegionInfo.EstateSettings.RedirectGridX;
655 args.redirectGridY = m_scene.RegionInfo.EstateSettings.RedirectGridY; 659 args.redirectGridY = Scene.RegionInfo.EstateSettings.RedirectGridY;
656 args.regionFlags = GetRegionFlags(); 660 args.regionFlags = GetRegionFlags();
657 args.simAccess = m_scene.RegionInfo.AccessLevel; 661 args.simAccess = Scene.RegionInfo.AccessLevel;
658 args.sunHour = (float)m_scene.RegionInfo.RegionSettings.SunPosition; 662 args.sunHour = (float)Scene.RegionInfo.RegionSettings.SunPosition;
659 args.terrainLowerLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit; 663 args.terrainLowerLimit = (float)Scene.RegionInfo.RegionSettings.TerrainLowerLimit;
660 args.terrainRaiseLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit; 664 args.terrainRaiseLimit = (float)Scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
661 args.useEstateSun = m_scene.RegionInfo.RegionSettings.UseEstateSun; 665 args.useEstateSun = Scene.RegionInfo.RegionSettings.UseEstateSun;
662 args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; 666 args.waterHeight = (float)Scene.RegionInfo.RegionSettings.WaterHeight;
663 args.simName = m_scene.RegionInfo.RegionName; 667 args.simName = Scene.RegionInfo.RegionName;
664 args.regionType = m_scene.RegionInfo.RegionType; 668 args.regionType = Scene.RegionInfo.RegionType;
665 669
666 remote_client.SendRegionInfoToEstateMenu(args); 670 remote_client.SendRegionInfoToEstateMenu(args);
667 } 671 }
668 672
669 private void HandleEstateCovenantRequest(IClientAPI remote_client) 673 private void HandleEstateCovenantRequest(IClientAPI remote_client)
670 { 674 {
671 remote_client.SendEstateCovenantInformation(m_scene.RegionInfo.RegionSettings.Covenant); 675 remote_client.SendEstateCovenantInformation(Scene.RegionInfo.RegionSettings.Covenant);
672 } 676 }
673 677
674 private void HandleLandStatRequest(int parcelID, uint reportType, uint requestFlags, string filter, IClientAPI remoteClient) 678 private void HandleLandStatRequest(int parcelID, uint reportType, uint requestFlags, string filter, IClientAPI remoteClient)
675 { 679 {
676 if (!m_scene.Permissions.CanIssueEstateCommand(remoteClient.AgentId, false)) 680 if (!Scene.Permissions.CanIssueEstateCommand(remoteClient.AgentId, false))
677 return; 681 return;
678 682
679 Dictionary<uint, float> SceneData = new Dictionary<uint,float>(); 683 Dictionary<uint, float> SceneData = new Dictionary<uint,float>();
@@ -681,11 +685,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
681 685
682 if (reportType == 1) 686 if (reportType == 1)
683 { 687 {
684 SceneData = m_scene.PhysicsScene.GetTopColliders(); 688 SceneData = Scene.PhysicsScene.GetTopColliders();
685 } 689 }
686 else if (reportType == 0) 690 else if (reportType == 0)
687 { 691 {
688 SceneData = m_scene.SceneGraph.GetTopScripts(); 692 SceneData = Scene.SceneGraph.GetTopScripts();
689 } 693 }
690 694
691 List<LandStatReportItem> SceneReport = new List<LandStatReportItem>(); 695 List<LandStatReportItem> SceneReport = new List<LandStatReportItem>();
@@ -693,7 +697,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
693 { 697 {
694 foreach (uint obj in SceneData.Keys) 698 foreach (uint obj in SceneData.Keys)
695 { 699 {
696 SceneObjectPart prt = m_scene.GetSceneObjectPart(obj); 700 SceneObjectPart prt = Scene.GetSceneObjectPart(obj);
697 if (prt != null) 701 if (prt != null)
698 { 702 {
699 if (prt.ParentGroup != null) 703 if (prt.ParentGroup != null)
@@ -765,7 +769,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
765 { 769 {
766 // string lookupname = m_scene.CommsManager.UUIDNameRequestString(uuidarr[i]); 770 // string lookupname = m_scene.CommsManager.UUIDNameRequestString(uuidarr[i]);
767 771
768 IUserManagement userManager = m_scene.RequestModuleInterface<IUserManagement>(); 772 IUserManagement userManager = Scene.RequestModuleInterface<IUserManagement>();
769 if (userManager != null) 773 if (userManager != null)
770 userManager.GetUserName(uuidarr[i]); 774 userManager.GetUserName(uuidarr[i]);
771 775
@@ -780,7 +784,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
780 784
781 public void sendRegionInfoPacketToAll() 785 public void sendRegionInfoPacketToAll()
782 { 786 {
783 m_scene.ForEachScenePresence(delegate(ScenePresence sp) 787 Scene.ForEachScenePresence(delegate(ScenePresence sp)
784 { 788 {
785 if (!sp.IsChildAgent) 789 if (!sp.IsChildAgent)
786 HandleRegionInfoRequest(sp.ControllingClient); 790 HandleRegionInfoRequest(sp.ControllingClient);
@@ -791,99 +795,99 @@ namespace OpenSim.Region.CoreModules.World.Estate
791 { 795 {
792 RegionHandshakeArgs args = new RegionHandshakeArgs(); 796 RegionHandshakeArgs args = new RegionHandshakeArgs();
793 797
794 args.isEstateManager = m_scene.RegionInfo.EstateSettings.IsEstateManager(remoteClient.AgentId); 798 args.isEstateManager = Scene.RegionInfo.EstateSettings.IsEstateManager(remoteClient.AgentId);
795 if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero && m_scene.RegionInfo.EstateSettings.EstateOwner == remoteClient.AgentId) 799 if (Scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero && Scene.RegionInfo.EstateSettings.EstateOwner == remoteClient.AgentId)
796 args.isEstateManager = true; 800 args.isEstateManager = true;
797 801
798 args.billableFactor = m_scene.RegionInfo.EstateSettings.BillableFactor; 802 args.billableFactor = Scene.RegionInfo.EstateSettings.BillableFactor;
799 args.terrainStartHeight0 = (float)m_scene.RegionInfo.RegionSettings.Elevation1SW; 803 args.terrainStartHeight0 = (float)Scene.RegionInfo.RegionSettings.Elevation1SW;
800 args.terrainHeightRange0 = (float)m_scene.RegionInfo.RegionSettings.Elevation2SW; 804 args.terrainHeightRange0 = (float)Scene.RegionInfo.RegionSettings.Elevation2SW;
801 args.terrainStartHeight1 = (float)m_scene.RegionInfo.RegionSettings.Elevation1NW; 805 args.terrainStartHeight1 = (float)Scene.RegionInfo.RegionSettings.Elevation1NW;
802 args.terrainHeightRange1 = (float)m_scene.RegionInfo.RegionSettings.Elevation2NW; 806 args.terrainHeightRange1 = (float)Scene.RegionInfo.RegionSettings.Elevation2NW;
803 args.terrainStartHeight2 = (float)m_scene.RegionInfo.RegionSettings.Elevation1SE; 807 args.terrainStartHeight2 = (float)Scene.RegionInfo.RegionSettings.Elevation1SE;
804 args.terrainHeightRange2 = (float)m_scene.RegionInfo.RegionSettings.Elevation2SE; 808 args.terrainHeightRange2 = (float)Scene.RegionInfo.RegionSettings.Elevation2SE;
805 args.terrainStartHeight3 = (float)m_scene.RegionInfo.RegionSettings.Elevation1NE; 809 args.terrainStartHeight3 = (float)Scene.RegionInfo.RegionSettings.Elevation1NE;
806 args.terrainHeightRange3 = (float)m_scene.RegionInfo.RegionSettings.Elevation2NE; 810 args.terrainHeightRange3 = (float)Scene.RegionInfo.RegionSettings.Elevation2NE;
807 args.simAccess = m_scene.RegionInfo.AccessLevel; 811 args.simAccess = Scene.RegionInfo.AccessLevel;
808 args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; 812 args.waterHeight = (float)Scene.RegionInfo.RegionSettings.WaterHeight;
809 args.regionFlags = GetRegionFlags(); 813 args.regionFlags = GetRegionFlags();
810 args.regionName = m_scene.RegionInfo.RegionName; 814 args.regionName = Scene.RegionInfo.RegionName;
811 args.SimOwner = m_scene.RegionInfo.EstateSettings.EstateOwner; 815 args.SimOwner = Scene.RegionInfo.EstateSettings.EstateOwner;
812 816
813 args.terrainBase0 = UUID.Zero; 817 args.terrainBase0 = UUID.Zero;
814 args.terrainBase1 = UUID.Zero; 818 args.terrainBase1 = UUID.Zero;
815 args.terrainBase2 = UUID.Zero; 819 args.terrainBase2 = UUID.Zero;
816 args.terrainBase3 = UUID.Zero; 820 args.terrainBase3 = UUID.Zero;
817 args.terrainDetail0 = m_scene.RegionInfo.RegionSettings.TerrainTexture1; 821 args.terrainDetail0 = Scene.RegionInfo.RegionSettings.TerrainTexture1;
818 args.terrainDetail1 = m_scene.RegionInfo.RegionSettings.TerrainTexture2; 822 args.terrainDetail1 = Scene.RegionInfo.RegionSettings.TerrainTexture2;
819 args.terrainDetail2 = m_scene.RegionInfo.RegionSettings.TerrainTexture3; 823 args.terrainDetail2 = Scene.RegionInfo.RegionSettings.TerrainTexture3;
820 args.terrainDetail3 = m_scene.RegionInfo.RegionSettings.TerrainTexture4; 824 args.terrainDetail3 = Scene.RegionInfo.RegionSettings.TerrainTexture4;
821 825
822 remoteClient.SendRegionHandshake(m_scene.RegionInfo,args); 826 remoteClient.SendRegionHandshake(Scene.RegionInfo,args);
823 } 827 }
824 828
825 public void sendRegionHandshakeToAll() 829 public void sendRegionHandshakeToAll()
826 { 830 {
827 m_scene.ForEachClient(sendRegionHandshake); 831 Scene.ForEachClient(sendRegionHandshake);
828 } 832 }
829 833
830 public void handleEstateChangeInfo(IClientAPI remoteClient, UUID invoice, UUID senderID, UInt32 parms1, UInt32 parms2) 834 public void handleEstateChangeInfo(IClientAPI remoteClient, UUID invoice, UUID senderID, UInt32 parms1, UInt32 parms2)
831 { 835 {
832 if (parms2 == 0) 836 if (parms2 == 0)
833 { 837 {
834 m_scene.RegionInfo.EstateSettings.UseGlobalTime = true; 838 Scene.RegionInfo.EstateSettings.UseGlobalTime = true;
835 m_scene.RegionInfo.EstateSettings.SunPosition = 0.0; 839 Scene.RegionInfo.EstateSettings.SunPosition = 0.0;
836 } 840 }
837 else 841 else
838 { 842 {
839 m_scene.RegionInfo.EstateSettings.UseGlobalTime = false; 843 Scene.RegionInfo.EstateSettings.UseGlobalTime = false;
840 m_scene.RegionInfo.EstateSettings.SunPosition = (parms2 - 0x1800)/1024.0; 844 Scene.RegionInfo.EstateSettings.SunPosition = (parms2 - 0x1800)/1024.0;
841 } 845 }
842 846
843 if ((parms1 & 0x00000010) != 0) 847 if ((parms1 & 0x00000010) != 0)
844 m_scene.RegionInfo.EstateSettings.FixedSun = true; 848 Scene.RegionInfo.EstateSettings.FixedSun = true;
845 else 849 else
846 m_scene.RegionInfo.EstateSettings.FixedSun = false; 850 Scene.RegionInfo.EstateSettings.FixedSun = false;
847 851
848 if ((parms1 & 0x00008000) != 0) 852 if ((parms1 & 0x00008000) != 0)
849 m_scene.RegionInfo.EstateSettings.PublicAccess = true; 853 Scene.RegionInfo.EstateSettings.PublicAccess = true;
850 else 854 else
851 m_scene.RegionInfo.EstateSettings.PublicAccess = false; 855 Scene.RegionInfo.EstateSettings.PublicAccess = false;
852 856
853 if ((parms1 & 0x10000000) != 0) 857 if ((parms1 & 0x10000000) != 0)
854 m_scene.RegionInfo.EstateSettings.AllowVoice = true; 858 Scene.RegionInfo.EstateSettings.AllowVoice = true;
855 else 859 else
856 m_scene.RegionInfo.EstateSettings.AllowVoice = false; 860 Scene.RegionInfo.EstateSettings.AllowVoice = false;
857 861
858 if ((parms1 & 0x00100000) != 0) 862 if ((parms1 & 0x00100000) != 0)
859 m_scene.RegionInfo.EstateSettings.AllowDirectTeleport = true; 863 Scene.RegionInfo.EstateSettings.AllowDirectTeleport = true;
860 else 864 else
861 m_scene.RegionInfo.EstateSettings.AllowDirectTeleport = false; 865 Scene.RegionInfo.EstateSettings.AllowDirectTeleport = false;
862 866
863 if ((parms1 & 0x00800000) != 0) 867 if ((parms1 & 0x00800000) != 0)
864 m_scene.RegionInfo.EstateSettings.DenyAnonymous = true; 868 Scene.RegionInfo.EstateSettings.DenyAnonymous = true;
865 else 869 else
866 m_scene.RegionInfo.EstateSettings.DenyAnonymous = false; 870 Scene.RegionInfo.EstateSettings.DenyAnonymous = false;
867 871
868 if ((parms1 & 0x01000000) != 0) 872 if ((parms1 & 0x01000000) != 0)
869 m_scene.RegionInfo.EstateSettings.DenyIdentified = true; 873 Scene.RegionInfo.EstateSettings.DenyIdentified = true;
870 else 874 else
871 m_scene.RegionInfo.EstateSettings.DenyIdentified = false; 875 Scene.RegionInfo.EstateSettings.DenyIdentified = false;
872 876
873 if ((parms1 & 0x02000000) != 0) 877 if ((parms1 & 0x02000000) != 0)
874 m_scene.RegionInfo.EstateSettings.DenyTransacted = true; 878 Scene.RegionInfo.EstateSettings.DenyTransacted = true;
875 else 879 else
876 m_scene.RegionInfo.EstateSettings.DenyTransacted = false; 880 Scene.RegionInfo.EstateSettings.DenyTransacted = false;
877 881
878 if ((parms1 & 0x40000000) != 0) 882 if ((parms1 & 0x40000000) != 0)
879 m_scene.RegionInfo.EstateSettings.DenyMinors = true; 883 Scene.RegionInfo.EstateSettings.DenyMinors = true;
880 else 884 else
881 m_scene.RegionInfo.EstateSettings.DenyMinors = false; 885 Scene.RegionInfo.EstateSettings.DenyMinors = false;
882 886
883 m_scene.RegionInfo.EstateSettings.Save(); 887 Scene.RegionInfo.EstateSettings.Save();
884 TriggerEstateInfoChange(); 888 TriggerEstateInfoChange();
885 889
886 m_scene.TriggerEstateSunUpdate(); 890 Scene.TriggerEstateSunUpdate();
887 891
888 sendDetailedEstateData(remoteClient, invoice); 892 sendDetailedEstateData(remoteClient, invoice);
889 } 893 }
@@ -893,121 +897,21 @@ namespace OpenSim.Region.CoreModules.World.Estate
893 #region IRegionModule Members 897 #region IRegionModule Members
894 898
895 public void Initialise(Scene scene, IConfigSource source) 899 public void Initialise(Scene scene, IConfigSource source)
896 { 900 {
897 m_scene = scene; 901 Scene = scene;
898 m_scene.RegisterModuleInterface<IEstateModule>(this); 902 Scene.RegisterModuleInterface<IEstateModule>(this);
899 m_scene.EventManager.OnNewClient += EventManager_OnNewClient; 903 Scene.EventManager.OnNewClient += EventManager_OnNewClient;
900 m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight; 904 Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
901 905
902 m_scene.AddCommand(this, "set terrain texture", 906 m_commands = new EstateManagementCommands(this);
903 "set terrain texture <number> <uuid> [<x>] [<y>]", 907 m_commands.Initialise();
904 "Sets the terrain <number> to <uuid>, if <x> or <y> are specified, it will only " +
905 "set it on regions with a matching coordinate. Specify -1 in <x> or <y> to wildcard" +
906 " that coordinate.",
907 consoleSetTerrainTexture);
908
909 m_scene.AddCommand(this, "set terrain heights",
910 "set terrain heights <corner> <min> <max> [<x>] [<y>]",
911 "Sets the terrain texture heights on corner #<corner> to <min>/<max>, if <x> or <y> are specified, it will only " +
912 "set it on regions with a matching coordinate. Specify -1 in <x> or <y> to wildcard" +
913 " that coordinate. Corner # SW = 0, NW = 1, SE = 2, NE = 3.",
914 consoleSetTerrainHeights);
915 }
916
917 #region Console Commands
918
919 public void consoleSetTerrainTexture(string module, string[] args)
920 {
921 string num = args[3];
922 string uuid = args[4];
923 int x = (args.Length > 5 ? int.Parse(args[5]) : -1);
924 int y = (args.Length > 6 ? int.Parse(args[6]) : -1);
925
926 if (x == -1 || m_scene.RegionInfo.RegionLocX == x)
927 {
928 if (y == -1 || m_scene.RegionInfo.RegionLocY == y)
929 {
930 int corner = int.Parse(num);
931 UUID texture = UUID.Parse(uuid);
932
933 m_log.Debug("[ESTATEMODULE] Setting terrain textures for " + m_scene.RegionInfo.RegionName +
934 string.Format(" (C#{0} = {1})", corner, texture));
935
936 switch (corner)
937 {
938 case 0:
939 m_scene.RegionInfo.RegionSettings.TerrainTexture1 = texture;
940 break;
941 case 1:
942 m_scene.RegionInfo.RegionSettings.TerrainTexture2 = texture;
943 break;
944 case 2:
945 m_scene.RegionInfo.RegionSettings.TerrainTexture3 = texture;
946 break;
947 case 3:
948 m_scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
949 break;
950 }
951 m_scene.RegionInfo.RegionSettings.Save();
952 TriggerRegionInfoChange();
953 sendRegionInfoPacketToAll();
954
955 }
956 }
957 }
958
959 public void consoleSetTerrainHeights(string module, string[] args)
960 {
961 string num = args[3];
962 string min = args[4];
963 string max = args[5];
964 int x = (args.Length > 6 ? int.Parse(args[6]) : -1);
965 int y = (args.Length > 7 ? int.Parse(args[7]) : -1);
966
967 if (x == -1 || m_scene.RegionInfo.RegionLocX == x)
968 {
969 if (y == -1 || m_scene.RegionInfo.RegionLocY == y)
970 {
971 int corner = int.Parse(num);
972 float lowValue = float.Parse(min, Culture.NumberFormatInfo);
973 float highValue = float.Parse(max, Culture.NumberFormatInfo);
974
975 m_log.Debug("[ESTATEMODULE] Setting terrain heights " + m_scene.RegionInfo.RegionName +
976 string.Format(" (C{0}, {1}-{2}", corner, lowValue, highValue));
977
978 switch (corner)
979 {
980 case 0:
981 m_scene.RegionInfo.RegionSettings.Elevation1SW = lowValue;
982 m_scene.RegionInfo.RegionSettings.Elevation2SW = highValue;
983 break;
984 case 1:
985 m_scene.RegionInfo.RegionSettings.Elevation1NW = lowValue;
986 m_scene.RegionInfo.RegionSettings.Elevation2NW = highValue;
987 break;
988 case 2:
989 m_scene.RegionInfo.RegionSettings.Elevation1SE = lowValue;
990 m_scene.RegionInfo.RegionSettings.Elevation2SE = highValue;
991 break;
992 case 3:
993 m_scene.RegionInfo.RegionSettings.Elevation1NE = lowValue;
994 m_scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
995 break;
996 }
997 m_scene.RegionInfo.RegionSettings.Save();
998 TriggerRegionInfoChange();
999 sendRegionHandshakeToAll();
1000 }
1001 }
1002 } 908 }
1003 909
1004 #endregion
1005
1006 public void PostInitialise() 910 public void PostInitialise()
1007 { 911 {
1008 // Sets up the sun module based no the saved Estate and Region Settings 912 // Sets up the sun module based no the saved Estate and Region Settings
1009 // DO NOT REMOVE or the sun will stop working 913 // DO NOT REMOVE or the sun will stop working
1010 m_scene.TriggerEstateSunUpdate(); 914 Scene.TriggerEstateSunUpdate();
1011 } 915 }
1012 916
1013 public void Close() 917 public void Close()
@@ -1031,14 +935,14 @@ namespace OpenSim.Region.CoreModules.World.Estate
1031 public void changeWaterHeight(float height) 935 public void changeWaterHeight(float height)
1032 { 936 {
1033 setRegionTerrainSettings(height, 937 setRegionTerrainSettings(height,
1034 (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit, 938 (float)Scene.RegionInfo.RegionSettings.TerrainRaiseLimit,
1035 (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit, 939 (float)Scene.RegionInfo.RegionSettings.TerrainLowerLimit,
1036 m_scene.RegionInfo.RegionSettings.UseEstateSun, 940 Scene.RegionInfo.RegionSettings.UseEstateSun,
1037 m_scene.RegionInfo.RegionSettings.FixedSun, 941 Scene.RegionInfo.RegionSettings.FixedSun,
1038 (float)m_scene.RegionInfo.RegionSettings.SunPosition, 942 (float)Scene.RegionInfo.RegionSettings.SunPosition,
1039 m_scene.RegionInfo.EstateSettings.UseGlobalTime, 943 Scene.RegionInfo.EstateSettings.UseGlobalTime,
1040 m_scene.RegionInfo.EstateSettings.FixedSun, 944 Scene.RegionInfo.EstateSettings.FixedSun,
1041 (float)m_scene.RegionInfo.EstateSettings.SunPosition); 945 (float)Scene.RegionInfo.EstateSettings.SunPosition);
1042 946
1043 sendRegionInfoPacketToAll(); 947 sendRegionInfoPacketToAll();
1044 } 948 }
@@ -1078,32 +982,32 @@ namespace OpenSim.Region.CoreModules.World.Estate
1078 982
1079 // Fully implemented 983 // Fully implemented
1080 // 984 //
1081 if (m_scene.RegionInfo.RegionSettings.AllowDamage) 985 if (Scene.RegionInfo.RegionSettings.AllowDamage)
1082 flags |= RegionFlags.AllowDamage; 986 flags |= RegionFlags.AllowDamage;
1083 if (m_scene.RegionInfo.RegionSettings.BlockTerraform) 987 if (Scene.RegionInfo.RegionSettings.BlockTerraform)
1084 flags |= RegionFlags.BlockTerraform; 988 flags |= RegionFlags.BlockTerraform;
1085 if (!m_scene.RegionInfo.RegionSettings.AllowLandResell) 989 if (!Scene.RegionInfo.RegionSettings.AllowLandResell)
1086 flags |= RegionFlags.BlockLandResell; 990 flags |= RegionFlags.BlockLandResell;
1087 if (m_scene.RegionInfo.RegionSettings.DisableCollisions) 991 if (Scene.RegionInfo.RegionSettings.DisableCollisions)
1088 flags |= RegionFlags.SkipCollisions; 992 flags |= RegionFlags.SkipCollisions;
1089 if (m_scene.RegionInfo.RegionSettings.DisableScripts) 993 if (Scene.RegionInfo.RegionSettings.DisableScripts)
1090 flags |= RegionFlags.SkipScripts; 994 flags |= RegionFlags.SkipScripts;
1091 if (m_scene.RegionInfo.RegionSettings.DisablePhysics) 995 if (Scene.RegionInfo.RegionSettings.DisablePhysics)
1092 flags |= RegionFlags.SkipPhysics; 996 flags |= RegionFlags.SkipPhysics;
1093 if (m_scene.RegionInfo.RegionSettings.BlockFly) 997 if (Scene.RegionInfo.RegionSettings.BlockFly)
1094 flags |= RegionFlags.NoFly; 998 flags |= RegionFlags.NoFly;
1095 if (m_scene.RegionInfo.RegionSettings.RestrictPushing) 999 if (Scene.RegionInfo.RegionSettings.RestrictPushing)
1096 flags |= RegionFlags.RestrictPushObject; 1000 flags |= RegionFlags.RestrictPushObject;
1097 if (m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide) 1001 if (Scene.RegionInfo.RegionSettings.AllowLandJoinDivide)
1098 flags |= RegionFlags.AllowParcelChanges; 1002 flags |= RegionFlags.AllowParcelChanges;
1099 if (m_scene.RegionInfo.RegionSettings.BlockShowInSearch) 1003 if (Scene.RegionInfo.RegionSettings.BlockShowInSearch)
1100 flags |= RegionFlags.BlockParcelSearch; 1004 flags |= RegionFlags.BlockParcelSearch;
1101 1005
1102 if (m_scene.RegionInfo.RegionSettings.FixedSun) 1006 if (Scene.RegionInfo.RegionSettings.FixedSun)
1103 flags |= RegionFlags.SunFixed; 1007 flags |= RegionFlags.SunFixed;
1104 if (m_scene.RegionInfo.RegionSettings.Sandbox) 1008 if (Scene.RegionInfo.RegionSettings.Sandbox)
1105 flags |= RegionFlags.Sandbox; 1009 flags |= RegionFlags.Sandbox;
1106 if (m_scene.RegionInfo.EstateSettings.AllowVoice) 1010 if (Scene.RegionInfo.EstateSettings.AllowVoice)
1107 flags |= RegionFlags.AllowVoice; 1011 flags |= RegionFlags.AllowVoice;
1108 1012
1109 // Fudge these to always on, so the menu options activate 1013 // Fudge these to always on, so the menu options activate
@@ -1125,32 +1029,32 @@ namespace OpenSim.Region.CoreModules.World.Estate
1125 { 1029 {
1126 RegionFlags flags = RegionFlags.None; 1030 RegionFlags flags = RegionFlags.None;
1127 1031
1128 if (m_scene.RegionInfo.EstateSettings.FixedSun) 1032 if (Scene.RegionInfo.EstateSettings.FixedSun)
1129 flags |= RegionFlags.SunFixed; 1033 flags |= RegionFlags.SunFixed;
1130 if (m_scene.RegionInfo.EstateSettings.PublicAccess) 1034 if (Scene.RegionInfo.EstateSettings.PublicAccess)
1131 flags |= (RegionFlags.PublicAllowed | 1035 flags |= (RegionFlags.PublicAllowed |
1132 RegionFlags.ExternallyVisible); 1036 RegionFlags.ExternallyVisible);
1133 if (m_scene.RegionInfo.EstateSettings.AllowVoice) 1037 if (Scene.RegionInfo.EstateSettings.AllowVoice)
1134 flags |= RegionFlags.AllowVoice; 1038 flags |= RegionFlags.AllowVoice;
1135 if (m_scene.RegionInfo.EstateSettings.AllowDirectTeleport) 1039 if (Scene.RegionInfo.EstateSettings.AllowDirectTeleport)
1136 flags |= RegionFlags.AllowDirectTeleport; 1040 flags |= RegionFlags.AllowDirectTeleport;
1137 if (m_scene.RegionInfo.EstateSettings.DenyAnonymous) 1041 if (Scene.RegionInfo.EstateSettings.DenyAnonymous)
1138 flags |= RegionFlags.DenyAnonymous; 1042 flags |= RegionFlags.DenyAnonymous;
1139 if (m_scene.RegionInfo.EstateSettings.DenyIdentified) 1043 if (Scene.RegionInfo.EstateSettings.DenyIdentified)
1140 flags |= RegionFlags.DenyIdentified; 1044 flags |= RegionFlags.DenyIdentified;
1141 if (m_scene.RegionInfo.EstateSettings.DenyTransacted) 1045 if (Scene.RegionInfo.EstateSettings.DenyTransacted)
1142 flags |= RegionFlags.DenyTransacted; 1046 flags |= RegionFlags.DenyTransacted;
1143 if (m_scene.RegionInfo.EstateSettings.AbuseEmailToEstateOwner) 1047 if (Scene.RegionInfo.EstateSettings.AbuseEmailToEstateOwner)
1144 flags |= RegionFlags.AbuseEmailToEstateOwner; 1048 flags |= RegionFlags.AbuseEmailToEstateOwner;
1145 if (m_scene.RegionInfo.EstateSettings.BlockDwell) 1049 if (Scene.RegionInfo.EstateSettings.BlockDwell)
1146 flags |= RegionFlags.BlockDwell; 1050 flags |= RegionFlags.BlockDwell;
1147 if (m_scene.RegionInfo.EstateSettings.EstateSkipScripts) 1051 if (Scene.RegionInfo.EstateSettings.EstateSkipScripts)
1148 flags |= RegionFlags.EstateSkipScripts; 1052 flags |= RegionFlags.EstateSkipScripts;
1149 if (m_scene.RegionInfo.EstateSettings.ResetHomeOnTeleport) 1053 if (Scene.RegionInfo.EstateSettings.ResetHomeOnTeleport)
1150 flags |= RegionFlags.ResetHomeOnTeleport; 1054 flags |= RegionFlags.ResetHomeOnTeleport;
1151 if (m_scene.RegionInfo.EstateSettings.TaxFree) 1055 if (Scene.RegionInfo.EstateSettings.TaxFree)
1152 flags |= RegionFlags.TaxFree; 1056 flags |= RegionFlags.TaxFree;
1153 if (m_scene.RegionInfo.EstateSettings.DenyMinors) 1057 if (Scene.RegionInfo.EstateSettings.DenyMinors)
1154 flags |= (RegionFlags)(1 << 30); 1058 flags |= (RegionFlags)(1 << 30);
1155 1059
1156 return (uint)flags; 1060 return (uint)flags;
@@ -1158,38 +1062,38 @@ namespace OpenSim.Region.CoreModules.World.Estate
1158 1062
1159 public bool IsManager(UUID avatarID) 1063 public bool IsManager(UUID avatarID)
1160 { 1064 {
1161 if (avatarID == m_scene.RegionInfo.EstateSettings.EstateOwner) 1065 if (avatarID == Scene.RegionInfo.EstateSettings.EstateOwner)
1162 return true; 1066 return true;
1163 1067
1164 List<UUID> ems = new List<UUID>(m_scene.RegionInfo.EstateSettings.EstateManagers); 1068 List<UUID> ems = new List<UUID>(Scene.RegionInfo.EstateSettings.EstateManagers);
1165 if (ems.Contains(avatarID)) 1069 if (ems.Contains(avatarID))
1166 return true; 1070 return true;
1167 1071
1168 return false; 1072 return false;
1169 } 1073 }
1170 1074
1171 protected void TriggerRegionInfoChange() 1075 public void TriggerRegionInfoChange()
1172 { 1076 {
1173 ChangeDelegate change = OnRegionInfoChange; 1077 ChangeDelegate change = OnRegionInfoChange;
1174 1078
1175 if (change != null) 1079 if (change != null)
1176 change(m_scene.RegionInfo.RegionID); 1080 change(Scene.RegionInfo.RegionID);
1177 } 1081 }
1178 1082
1179 protected void TriggerEstateInfoChange() 1083 public void TriggerEstateInfoChange()
1180 { 1084 {
1181 ChangeDelegate change = OnEstateInfoChange; 1085 ChangeDelegate change = OnEstateInfoChange;
1182 1086
1183 if (change != null) 1087 if (change != null)
1184 change(m_scene.RegionInfo.RegionID); 1088 change(Scene.RegionInfo.RegionID);
1185 } 1089 }
1186 1090
1187 protected void TriggerEstateMessage(UUID fromID, string fromName, string message) 1091 public void TriggerEstateMessage(UUID fromID, string fromName, string message)
1188 { 1092 {
1189 MessageDelegate onmessage = OnEstateMessage; 1093 MessageDelegate onmessage = OnEstateMessage;
1190 1094
1191 if (onmessage != null) 1095 if (onmessage != null)
1192 onmessage(m_scene.RegionInfo.RegionID, fromID, fromName, message); 1096 onmessage(Scene.RegionInfo.RegionID, fromID, fromName, message);
1193 } 1097 }
1194 } 1098 }
1195} 1099}