diff options
11 files changed, 68 insertions, 73 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs index 8ab4391..35a3f43 100644 --- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs | |||
@@ -264,7 +264,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat | |||
264 | } | 264 | } |
265 | 265 | ||
266 | (scene as Scene).EventManager.TriggerOnChatToClients( | 266 | (scene as Scene).EventManager.TriggerOnChatToClients( |
267 | fromID, receiverIDs, message, c.Type, fromPos, fromName, sourceType, ChatAudibleLevel.Fully); | 267 | fromID, receiverIDs, message, c.Type, fromPos, fromName, sourceType, ChatAudibleLevel.Fully); |
268 | } | 268 | } |
269 | 269 | ||
270 | static private Vector3 CenterOfRegion = new Vector3(128, 128, 30); | 270 | static private Vector3 CenterOfRegion = new Vector3(128, 128, 30); |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 5500557..046b05f 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |||
@@ -143,7 +143,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
143 | if (filePath == ArchiveConstants.CONTROL_FILE_PATH) | 143 | if (filePath == ArchiveConstants.CONTROL_FILE_PATH) |
144 | { | 144 | { |
145 | LoadControlFile(filePath, data); | 145 | LoadControlFile(filePath, data); |
146 | } | 146 | } |
147 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) | 147 | else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) |
148 | { | 148 | { |
149 | if (LoadAsset(filePath, data)) | 149 | if (LoadAsset(filePath, data)) |
@@ -479,11 +479,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
479 | /// <param name="path"></param> | 479 | /// <param name="path"></param> |
480 | /// <param name="data"></param> | 480 | /// <param name="data"></param> |
481 | protected void LoadControlFile(string path, byte[] data) | 481 | protected void LoadControlFile(string path, byte[] data) |
482 | { | 482 | { |
483 | XDocument doc = XDocument.Parse(Encoding.ASCII.GetString(data)); | 483 | XDocument doc = XDocument.Parse(Encoding.ASCII.GetString(data)); |
484 | XElement archiveElement = doc.Element("archive"); | 484 | XElement archiveElement = doc.Element("archive"); |
485 | int majorVersion = int.Parse(archiveElement.Attribute("major_version").Value); | 485 | int majorVersion = int.Parse(archiveElement.Attribute("major_version").Value); |
486 | int minorVersion = int.Parse(archiveElement.Attribute("minor_version").Value); | 486 | int minorVersion = int.Parse(archiveElement.Attribute("minor_version").Value); |
487 | string version = string.Format("{0}.{1}", majorVersion, minorVersion); | 487 | string version = string.Format("{0}.{1}", majorVersion, minorVersion); |
488 | 488 | ||
489 | if (majorVersion > MAX_MAJOR_VERSION) | 489 | if (majorVersion > MAX_MAJOR_VERSION) |
@@ -492,7 +492,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
492 | string.Format( | 492 | string.Format( |
493 | "The IAR you are trying to load has major version number of {0} but this version of OpenSim can only load IARs with major version number {1} and below", | 493 | "The IAR you are trying to load has major version number of {0} but this version of OpenSim can only load IARs with major version number {1} and below", |
494 | majorVersion, MAX_MAJOR_VERSION)); | 494 | majorVersion, MAX_MAJOR_VERSION)); |
495 | } | 495 | } |
496 | 496 | ||
497 | m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version); | 497 | m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version); |
498 | } | 498 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 249a8b4..9080e1c 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
213 | public void Execute() | 213 | public void Execute() |
214 | { | 214 | { |
215 | try | 215 | try |
216 | { | 216 | { |
217 | InventoryFolderBase inventoryFolder = null; | 217 | InventoryFolderBase inventoryFolder = null; |
218 | InventoryItemBase inventoryItem = null; | 218 | InventoryItemBase inventoryItem = null; |
219 | InventoryFolderBase rootFolder = m_scene.InventoryService.GetRootFolder(m_userInfo.PrincipalID); | 219 | InventoryFolderBase rootFolder = m_scene.InventoryService.GetRootFolder(m_userInfo.PrincipalID); |
@@ -277,7 +277,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
277 | // Write out control file. This has to be done first so that subsequent loaders will see this file first | 277 | // Write out control file. This has to be done first so that subsequent loaders will see this file first |
278 | // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this | 278 | // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this |
279 | m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile()); | 279 | m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile()); |
280 | m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive."); | 280 | m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive."); |
281 | 281 | ||
282 | if (inventoryFolder != null) | 282 | if (inventoryFolder != null) |
283 | { | 283 | { |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs index 1687d06..3182079 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | |||
@@ -199,13 +199,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
199 | { | 199 | { |
200 | majorVersion = 1; | 200 | majorVersion = 1; |
201 | minorVersion = 0; | 201 | minorVersion = 0; |
202 | } | 202 | } |
203 | */ | 203 | */ |
204 | 204 | ||
205 | m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion); | 205 | m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion); |
206 | // if (majorVersion == 1) | 206 | // if (majorVersion == 1) |
207 | // { | 207 | // { |
208 | // m_log.WarnFormat("[ARCHIVER]: Please be aware that version 1.0 OARs are not compatible with OpenSim 0.7.0.2 and earlier. Please use the --version=0 option if you want to produce a compatible OAR"); | 208 | // m_log.WarnFormat("[ARCHIVER]: Please be aware that version 1.0 OARs are not compatible with OpenSim 0.7.0.2 and earlier. Please use the --version=0 option if you want to produce a compatible OAR"); |
209 | // } | 209 | // } |
210 | 210 | ||
211 | 211 | ||
@@ -232,6 +232,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
232 | sw.Close(); | 232 | sw.Close(); |
233 | 233 | ||
234 | return s; | 234 | return s; |
235 | } | 235 | } |
236 | } | 236 | } |
237 | } | 237 | } |
diff --git a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs index a6dc2ec..cea7c78 100644 --- a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs +++ b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs | |||
@@ -44,10 +44,8 @@ namespace OpenSim.Region.CoreModules | |||
44 | /// it is not based on ~06:00 == Sun Rise. Rather it is based on 00:00 being sun-rise. | 44 | /// it is not based on ~06:00 == Sun Rise. Rather it is based on 00:00 being sun-rise. |
45 | /// </summary> | 45 | /// </summary> |
46 | 46 | ||
47 | |||
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 48 | ||
50 | |||
51 | // | 49 | // |
52 | // Global Constants used to determine where in the sky the sun is | 50 | // Global Constants used to determine where in the sky the sun is |
53 | // | 51 | // |
@@ -108,26 +106,25 @@ namespace OpenSim.Region.CoreModules | |||
108 | private Scene m_scene = null; | 106 | private Scene m_scene = null; |
109 | 107 | ||
110 | // Calculated Once in the lifetime of a region | 108 | // Calculated Once in the lifetime of a region |
111 | private long TicksToEpoch; // Elapsed time for 1/1/1970 | 109 | private long TicksToEpoch; // Elapsed time for 1/1/1970 |
112 | private uint SecondsPerSunCycle; // Length of a virtual day in RW seconds | 110 | private uint SecondsPerSunCycle; // Length of a virtual day in RW seconds |
113 | private uint SecondsPerYear; // Length of a virtual year in RW seconds | 111 | private uint SecondsPerYear; // Length of a virtual year in RW seconds |
114 | private double SunSpeed; // Rate of passage in radians/second | 112 | private double SunSpeed; // Rate of passage in radians/second |
115 | private double SeasonSpeed; // Rate of change for seasonal effects | 113 | private double SeasonSpeed; // Rate of change for seasonal effects |
116 | // private double HoursToRadians; // Rate of change for seasonal effects | 114 | // private double HoursToRadians; // Rate of change for seasonal effects |
117 | private long TicksUTCOffset = 0; // seconds offset from UTC | 115 | private long TicksUTCOffset = 0; // seconds offset from UTC |
118 | // Calculated every update | 116 | // Calculated every update |
119 | private float OrbitalPosition; // Orbital placement at a point in time | 117 | private float OrbitalPosition; // Orbital placement at a point in time |
120 | private double HorizonShift; // Axis offset to skew day and night | 118 | private double HorizonShift; // Axis offset to skew day and night |
121 | private double TotalDistanceTravelled; // Distance since beginning of time (in radians) | 119 | private double TotalDistanceTravelled; // Distance since beginning of time (in radians) |
122 | private double SeasonalOffset; // Seaonal variation of tilt | 120 | private double SeasonalOffset; // Seaonal variation of tilt |
123 | private float Magnitude; // Normal tilt | 121 | private float Magnitude; // Normal tilt |
124 | // private double VWTimeRatio; // VW time as a ratio of real time | 122 | // private double VWTimeRatio; // VW time as a ratio of real time |
125 | 123 | ||
126 | // Working values | 124 | // Working values |
127 | private Vector3 Position = Vector3.Zero; | 125 | private Vector3 Position = Vector3.Zero; |
128 | private Vector3 Velocity = Vector3.Zero; | 126 | private Vector3 Velocity = Vector3.Zero; |
129 | private Quaternion Tilt = new Quaternion(1.0f, 0.0f, 0.0f, 0.0f); | 127 | private Quaternion Tilt = new Quaternion(1.0f, 0.0f, 0.0f, 0.0f); |
130 | |||
131 | 128 | ||
132 | // Used to fix the sun in the sky so it doesn't move based on current time | 129 | // Used to fix the sun in the sky so it doesn't move based on current time |
133 | private bool m_SunFixed = false; | 130 | private bool m_SunFixed = false; |
@@ -135,8 +132,6 @@ namespace OpenSim.Region.CoreModules | |||
135 | 132 | ||
136 | private const int TICKS_PER_SECOND = 10000000; | 133 | private const int TICKS_PER_SECOND = 10000000; |
137 | 134 | ||
138 | |||
139 | |||
140 | // Current time in elapsed seconds since Jan 1st 1970 | 135 | // Current time in elapsed seconds since Jan 1st 1970 |
141 | private ulong CurrentTime | 136 | private ulong CurrentTime |
142 | { | 137 | { |
@@ -149,8 +144,6 @@ namespace OpenSim.Region.CoreModules | |||
149 | // Time in seconds since UTC to use to calculate sun position. | 144 | // Time in seconds since UTC to use to calculate sun position. |
150 | ulong PosTime = 0; | 145 | ulong PosTime = 0; |
151 | 146 | ||
152 | |||
153 | |||
154 | /// <summary> | 147 | /// <summary> |
155 | /// Calculate the sun's orbital position and its velocity. | 148 | /// Calculate the sun's orbital position and its velocity. |
156 | /// </summary> | 149 | /// </summary> |
@@ -202,7 +195,6 @@ namespace OpenSim.Region.CoreModules | |||
202 | PosTime += (ulong)(((CurDayPercentage - 0.5) / .5) * NightSeconds); | 195 | PosTime += (ulong)(((CurDayPercentage - 0.5) / .5) * NightSeconds); |
203 | } | 196 | } |
204 | } | 197 | } |
205 | |||
206 | } | 198 | } |
207 | 199 | ||
208 | TotalDistanceTravelled = SunSpeed * PosTime; // distance measured in radians | 200 | TotalDistanceTravelled = SunSpeed * PosTime; // distance measured in radians |
@@ -251,7 +243,6 @@ namespace OpenSim.Region.CoreModules | |||
251 | Velocity.X = 0; | 243 | Velocity.X = 0; |
252 | Velocity.Y = 0; | 244 | Velocity.Y = 0; |
253 | Velocity.Z = 0; | 245 | Velocity.Z = 0; |
254 | |||
255 | } | 246 | } |
256 | else | 247 | else |
257 | { | 248 | { |
@@ -271,9 +262,7 @@ namespace OpenSim.Region.CoreModules | |||
271 | private float GetCurrentTimeAsLindenSunHour() | 262 | private float GetCurrentTimeAsLindenSunHour() |
272 | { | 263 | { |
273 | if (m_SunFixed) | 264 | if (m_SunFixed) |
274 | { | ||
275 | return m_SunFixedHour + 6; | 265 | return m_SunFixedHour + 6; |
276 | } | ||
277 | 266 | ||
278 | return GetCurrentSunHour() + 6.0f; | 267 | return GetCurrentSunHour() + 6.0f; |
279 | } | 268 | } |
@@ -297,8 +286,6 @@ namespace OpenSim.Region.CoreModules | |||
297 | m_scene.AddCommand(this, String.Format("sun {0}", kvp.Key), String.Format("{0} - {1}", kvp.Key, kvp.Value), "", HandleSunConsoleCommand); | 286 | m_scene.AddCommand(this, String.Format("sun {0}", kvp.Key), String.Format("{0} - {1}", kvp.Key, kvp.Value), "", HandleSunConsoleCommand); |
298 | } | 287 | } |
299 | 288 | ||
300 | |||
301 | |||
302 | TimeZone local = TimeZone.CurrentTimeZone; | 289 | TimeZone local = TimeZone.CurrentTimeZone; |
303 | TicksUTCOffset = local.GetUtcOffset(local.ToLocalTime(DateTime.Now)).Ticks; | 290 | TicksUTCOffset = local.GetUtcOffset(local.ToLocalTime(DateTime.Now)).Ticks; |
304 | m_log.Debug("[SUN]: localtime offset is " + TicksUTCOffset); | 291 | m_log.Debug("[SUN]: localtime offset is " + TicksUTCOffset); |
@@ -325,13 +312,11 @@ namespace OpenSim.Region.CoreModules | |||
325 | // must hard code to ~.5 to match sun position in LL based viewers | 312 | // must hard code to ~.5 to match sun position in LL based viewers |
326 | m_HorizonShift = config.Configs["Sun"].GetDouble("day_night_offset", d_day_night); | 313 | m_HorizonShift = config.Configs["Sun"].GetDouble("day_night_offset", d_day_night); |
327 | 314 | ||
328 | |||
329 | // Scales the sun hours 0...12 vs 12...24, essentially makes daylight hours longer/shorter vs nighttime hours | 315 | // Scales the sun hours 0...12 vs 12...24, essentially makes daylight hours longer/shorter vs nighttime hours |
330 | m_DayTimeSunHourScale = config.Configs["Sun"].GetDouble("day_time_sun_hour_scale", d_DayTimeSunHourScale); | 316 | m_DayTimeSunHourScale = config.Configs["Sun"].GetDouble("day_time_sun_hour_scale", d_DayTimeSunHourScale); |
331 | 317 | ||
332 | // Update frequency in frames | 318 | // Update frequency in frames |
333 | m_UpdateInterval = config.Configs["Sun"].GetInt("update_interval", d_frame_mod); | 319 | m_UpdateInterval = config.Configs["Sun"].GetInt("update_interval", d_frame_mod); |
334 | |||
335 | } | 320 | } |
336 | catch (Exception e) | 321 | catch (Exception e) |
337 | { | 322 | { |
@@ -391,10 +376,8 @@ namespace OpenSim.Region.CoreModules | |||
391 | } | 376 | } |
392 | 377 | ||
393 | scene.RegisterModuleInterface<ISunModule>(this); | 378 | scene.RegisterModuleInterface<ISunModule>(this); |
394 | |||
395 | } | 379 | } |
396 | 380 | ||
397 | |||
398 | public void PostInitialise() | 381 | public void PostInitialise() |
399 | { | 382 | { |
400 | } | 383 | } |
@@ -402,7 +385,7 @@ namespace OpenSim.Region.CoreModules | |||
402 | public void Close() | 385 | public void Close() |
403 | { | 386 | { |
404 | ready = false; | 387 | ready = false; |
405 | 388 | ||
406 | // Remove our hooks | 389 | // Remove our hooks |
407 | m_scene.EventManager.OnFrame -= SunUpdate; | 390 | m_scene.EventManager.OnFrame -= SunUpdate; |
408 | m_scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel; | 391 | m_scene.EventManager.OnAvatarEnteringNewParcel -= AvatarEnteringParcel; |
@@ -419,6 +402,7 @@ namespace OpenSim.Region.CoreModules | |||
419 | { | 402 | { |
420 | get { return false; } | 403 | get { return false; } |
421 | } | 404 | } |
405 | |||
422 | #endregion | 406 | #endregion |
423 | 407 | ||
424 | #region EventManager Events | 408 | #region EventManager Events |
@@ -446,9 +430,7 @@ namespace OpenSim.Region.CoreModules | |||
446 | public void SunUpdate() | 430 | public void SunUpdate() |
447 | { | 431 | { |
448 | if (((m_frame++ % m_UpdateInterval) != 0) || !ready || m_SunFixed || !receivedEstateToolsSunUpdate) | 432 | if (((m_frame++ % m_UpdateInterval) != 0) || !ready || m_SunFixed || !receivedEstateToolsSunUpdate) |
449 | { | ||
450 | return; | 433 | return; |
451 | } | ||
452 | 434 | ||
453 | GenSunPos(); // Generate shared values once | 435 | GenSunPos(); // Generate shared values once |
454 | 436 | ||
@@ -467,7 +449,7 @@ namespace OpenSim.Region.CoreModules | |||
467 | } | 449 | } |
468 | 450 | ||
469 | /// <summary> | 451 | /// <summary> |
470 | /// | 452 | /// |
471 | /// </summary> | 453 | /// </summary> |
472 | /// <param name="regionHandle"></param> | 454 | /// <param name="regionHandle"></param> |
473 | /// <param name="FixedTime">Is the sun's position fixed?</param> | 455 | /// <param name="FixedTime">Is the sun's position fixed?</param> |
@@ -484,7 +466,6 @@ namespace OpenSim.Region.CoreModules | |||
484 | while (FixedSunHour < 0) | 466 | while (FixedSunHour < 0) |
485 | FixedSunHour += 24; | 467 | FixedSunHour += 24; |
486 | 468 | ||
487 | |||
488 | m_SunFixedHour = FixedSunHour; | 469 | m_SunFixedHour = FixedSunHour; |
489 | m_SunFixed = FixedSun; | 470 | m_SunFixed = FixedSun; |
490 | 471 | ||
@@ -499,14 +480,12 @@ namespace OpenSim.Region.CoreModules | |||
499 | // When sun settings are updated, we should update all clients with new settings. | 480 | // When sun settings are updated, we should update all clients with new settings. |
500 | SunUpdateToAllClients(); | 481 | SunUpdateToAllClients(); |
501 | 482 | ||
502 | |||
503 | m_log.DebugFormat("[SUN]: PosTime : {0}", PosTime.ToString()); | 483 | m_log.DebugFormat("[SUN]: PosTime : {0}", PosTime.ToString()); |
504 | } | 484 | } |
505 | } | 485 | } |
506 | 486 | ||
507 | #endregion | 487 | #endregion |
508 | 488 | ||
509 | |||
510 | private void SunUpdateToAllClients() | 489 | private void SunUpdateToAllClients() |
511 | { | 490 | { |
512 | m_scene.ForEachScenePresence(delegate(ScenePresence sp) | 491 | m_scene.ForEachScenePresence(delegate(ScenePresence sp) |
@@ -553,7 +532,6 @@ namespace OpenSim.Region.CoreModules | |||
553 | { | 532 | { |
554 | float ticksleftover = CurrentTime % SecondsPerSunCycle; | 533 | float ticksleftover = CurrentTime % SecondsPerSunCycle; |
555 | 534 | ||
556 | |||
557 | return (24.0f * (ticksleftover / SecondsPerSunCycle)); | 535 | return (24.0f * (ticksleftover / SecondsPerSunCycle)); |
558 | } | 536 | } |
559 | 537 | ||
@@ -666,7 +644,6 @@ namespace OpenSim.Region.CoreModules | |||
666 | 644 | ||
667 | // When sun settings are updated, we should update all clients with new settings. | 645 | // When sun settings are updated, we should update all clients with new settings. |
668 | SunUpdateToAllClients(); | 646 | SunUpdateToAllClients(); |
669 | |||
670 | } | 647 | } |
671 | 648 | ||
672 | return Output; | 649 | return Output; |
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 33069da..f24c53c 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -300,7 +300,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
300 | /// ChatToClientsEvent is triggered via ChatModule (or | 300 | /// ChatToClientsEvent is triggered via ChatModule (or |
301 | /// substitutes thereof) when a chat message is actually sent to clients. Clients will only be sent a | 301 | /// substitutes thereof) when a chat message is actually sent to clients. Clients will only be sent a |
302 | /// received chat message if they satisfy various conditions (within audible range, etc.) | 302 | /// received chat message if they satisfy various conditions (within audible range, etc.) |
303 | /// </summary> | 303 | /// </summary> |
304 | public delegate void ChatToClientsEvent( | 304 | public delegate void ChatToClientsEvent( |
305 | UUID senderID, HashSet<UUID> receiverIDs, | 305 | UUID senderID, HashSet<UUID> receiverIDs, |
306 | string message, ChatTypeEnum type, Vector3 fromPos, string fromName, | 306 | string message, ChatTypeEnum type, Vector3 fromPos, string fromName, |
@@ -1660,8 +1660,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1660 | e.Message, e.StackTrace); | 1660 | e.Message, e.StackTrace); |
1661 | } | 1661 | } |
1662 | } | 1662 | } |
1663 | } | 1663 | } |
1664 | } | 1664 | } |
1665 | 1665 | ||
1666 | public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) | 1666 | public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) |
1667 | { | 1667 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 5428e5d..c3edeb3 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3394,7 +3394,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3394 | m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName); | 3394 | m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName); |
3395 | } | 3395 | } |
3396 | 3396 | ||
3397 | |||
3398 | /// <summary> | 3397 | /// <summary> |
3399 | /// Do the work necessary to initiate a new user connection for a particular scene. | 3398 | /// Do the work necessary to initiate a new user connection for a particular scene. |
3400 | /// At the moment, this consists of setting up the caps infrastructure | 3399 | /// At the moment, this consists of setting up the caps infrastructure |
@@ -3407,6 +3406,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
3407 | /// also return a reason.</returns> | 3406 | /// also return a reason.</returns> |
3408 | public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason) | 3407 | public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason) |
3409 | { | 3408 | { |
3409 | return NewUserConnection(agent, teleportFlags, out reason, true); | ||
3410 | } | ||
3411 | |||
3412 | /// <summary> | ||
3413 | /// Do the work necessary to initiate a new user connection for a particular scene. | ||
3414 | /// At the moment, this consists of setting up the caps infrastructure | ||
3415 | /// The return bool should allow for connections to be refused, but as not all calling paths | ||
3416 | /// take proper notice of it let, we allowed banned users in still. | ||
3417 | /// </summary> | ||
3418 | /// <param name="agent">CircuitData of the agent who is connecting</param> | ||
3419 | /// <param name="reason">Outputs the reason for the false response on this string</param> | ||
3420 | /// <param name="requirePresenceLookup">True for normal presence. False for NPC | ||
3421 | /// or other applications where a full grid/Hypergrid presence may not be required.</param> | ||
3422 | /// <returns>True if the region accepts this agent. False if it does not. False will | ||
3423 | /// also return a reason.</returns> | ||
3424 | public bool NewUserConnection(AgentCircuitData agent, uint teleportFlags, out string reason, bool requirePresenceLookup) | ||
3425 | { | ||
3410 | bool vialogin = ((teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0 || | 3426 | bool vialogin = ((teleportFlags & (uint)Constants.TeleportFlags.ViaLogin) != 0 || |
3411 | (teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0); | 3427 | (teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0); |
3412 | reason = String.Empty; | 3428 | reason = String.Empty; |
@@ -3456,16 +3472,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
3456 | 3472 | ||
3457 | if (sp == null) // We don't have an [child] agent here already | 3473 | if (sp == null) // We don't have an [child] agent here already |
3458 | { | 3474 | { |
3459 | 3475 | if (requirePresenceLookup) | |
3460 | try | ||
3461 | { | 3476 | { |
3462 | if (!VerifyUserPresence(agent, out reason)) | 3477 | try |
3478 | { | ||
3479 | if (!VerifyUserPresence(agent, out reason)) | ||
3480 | return false; | ||
3481 | } | ||
3482 | catch (Exception e) | ||
3483 | { | ||
3484 | m_log.ErrorFormat("[CONNECTION BEGIN]: Exception verifying presence " + e.ToString()); | ||
3463 | return false; | 3485 | return false; |
3464 | } | 3486 | } |
3465 | catch (Exception e) | ||
3466 | { | ||
3467 | m_log.ErrorFormat("[CONNECTION BEGIN]: Exception verifying presence " + e.ToString()); | ||
3468 | return false; | ||
3469 | } | 3487 | } |
3470 | 3488 | ||
3471 | try | 3489 | try |
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index d4e3717..b016065 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -428,11 +428,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
428 | public bool DeleteSceneObject(UUID uuid, bool resultOfObjectLinked) | 428 | public bool DeleteSceneObject(UUID uuid, bool resultOfObjectLinked) |
429 | { | 429 | { |
430 | EntityBase entity; | 430 | EntityBase entity; |
431 | if (!Entities.TryGetValue(uuid, out entity) && entity is SceneObjectGroup) | 431 | if (!Entities.TryGetValue(uuid, out entity) || (!(entity is SceneObjectGroup))) |
432 | return false; | 432 | return false; |
433 | 433 | ||
434 | SceneObjectGroup grp = (SceneObjectGroup)entity; | 434 | SceneObjectGroup grp = (SceneObjectGroup)entity; |
435 | 435 | ||
436 | if (entity == null) | ||
437 | return false; | ||
438 | |||
436 | if (!resultOfObjectLinked) | 439 | if (!resultOfObjectLinked) |
437 | { | 440 | { |
438 | m_numPrim -= grp.PrimCount; | 441 | m_numPrim -= grp.PrimCount; |
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index ad994c9..4aadfdb 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | |||
@@ -804,7 +804,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
804 | private static void ProcessShpTextureEntry(PrimitiveBaseShape shp, XmlTextReader reader) | 804 | private static void ProcessShpTextureEntry(PrimitiveBaseShape shp, XmlTextReader reader) |
805 | { | 805 | { |
806 | byte[] teData = Convert.FromBase64String(reader.ReadElementString("TextureEntry")); | 806 | byte[] teData = Convert.FromBase64String(reader.ReadElementString("TextureEntry")); |
807 | shp.Textures = new Primitive.TextureEntry(teData, 0, teData.Length); | 807 | shp.Textures = new Primitive.TextureEntry(teData, 0, teData.Length); |
808 | } | 808 | } |
809 | 809 | ||
810 | private static void ProcessShpExtraParams(PrimitiveBaseShape shp, XmlTextReader reader) | 810 | private static void ProcessShpExtraParams(PrimitiveBaseShape shp, XmlTextReader reader) |
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsMessagingModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsMessagingModule.cs index 25dba7f..3d34441 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsMessagingModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsMessagingModule.cs | |||
@@ -220,7 +220,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
220 | groupID, groupMembers.Count); | 220 | groupID, groupMembers.Count); |
221 | 221 | ||
222 | foreach (GroupMembersData member in groupMembers) | 222 | foreach (GroupMembersData member in groupMembers) |
223 | { | 223 | { |
224 | if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID, groupID)) | 224 | if (m_groupData.hasAgentDroppedGroupChatSession(member.AgentID, groupID)) |
225 | { | 225 | { |
226 | // Don't deliver messages to people who have dropped this session | 226 | // Don't deliver messages to people who have dropped this session |
@@ -266,7 +266,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
266 | 266 | ||
267 | void OnClientLogin(IClientAPI client) | 267 | void OnClientLogin(IClientAPI client) |
268 | { | 268 | { |
269 | if (m_debugEnabled) m_log.DebugFormat("[GROUPS-MESSAGING]: OnInstantMessage registered for {0}", client.Name); | 269 | if (m_debugEnabled) m_log.DebugFormat("[GROUPS-MESSAGING]: OnInstantMessage registered for {0}", client.Name); |
270 | } | 270 | } |
271 | 271 | ||
272 | private void OnNewClient(IClientAPI client) | 272 | private void OnNewClient(IClientAPI client) |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs index 2ddc31b..f47e71c 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs | |||
@@ -50,7 +50,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
50 | { | 50 | { |
51 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 51 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
52 | private Scene m_scene; | 52 | private Scene m_scene; |
53 | 53 | ||
54 | private readonly Dictionary<UUID,MRMBase> m_scripts = new Dictionary<UUID, MRMBase>(); | 54 | private readonly Dictionary<UUID,MRMBase> m_scripts = new Dictionary<UUID, MRMBase>(); |
55 | 55 | ||
56 | private readonly Dictionary<Type,object> m_extensions = new Dictionary<Type, object>(); | 56 | private readonly Dictionary<Type,object> m_extensions = new Dictionary<Type, object>(); |
@@ -77,7 +77,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
77 | { | 77 | { |
78 | m_log.Info("[MRM] Enabling MRM Module"); | 78 | m_log.Info("[MRM] Enabling MRM Module"); |
79 | m_scene = scene; | 79 | m_scene = scene; |
80 | 80 | ||
81 | // when hidden, we don't listen for client initiated script events | 81 | // when hidden, we don't listen for client initiated script events |
82 | // only making the MRM engine available for region modules | 82 | // only making the MRM engine available for region modules |
83 | if (!source.Configs["MRM"].GetBoolean("Hidden", false)) | 83 | if (!source.Configs["MRM"].GetBoolean("Hidden", false)) |
@@ -85,7 +85,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
85 | scene.EventManager.OnRezScript += EventManager_OnRezScript; | 85 | scene.EventManager.OnRezScript += EventManager_OnRezScript; |
86 | scene.EventManager.OnStopScript += EventManager_OnStopScript; | 86 | scene.EventManager.OnStopScript += EventManager_OnStopScript; |
87 | } | 87 | } |
88 | 88 | ||
89 | scene.EventManager.OnFrame += EventManager_OnFrame; | 89 | scene.EventManager.OnFrame += EventManager_OnFrame; |
90 | 90 | ||
91 | scene.RegisterModuleInterface<IMRMModule>(this); | 91 | scene.RegisterModuleInterface<IMRMModule>(this); |
@@ -304,7 +304,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
304 | 304 | ||
305 | public void PostInitialise() | 305 | public void PostInitialise() |
306 | { | 306 | { |
307 | |||
308 | } | 307 | } |
309 | 308 | ||
310 | public void Close() | 309 | public void Close() |
@@ -350,7 +349,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
350 | if (!Directory.Exists(tmp)) | 349 | if (!Directory.Exists(tmp)) |
351 | Directory.CreateDirectory(tmp); | 350 | Directory.CreateDirectory(tmp); |
352 | 351 | ||
353 | |||
354 | m_log.Info("MRM 2"); | 352 | m_log.Info("MRM 2"); |
355 | 353 | ||
356 | try | 354 | try |
@@ -396,8 +394,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
396 | 394 | ||
397 | parameters.IncludeDebugInformation = true; | 395 | parameters.IncludeDebugInformation = true; |
398 | 396 | ||
399 | string rootPath = | 397 | string rootPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); |
400 | Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory); | ||
401 | 398 | ||
402 | List<string> libraries = new List<string>(); | 399 | List<string> libraries = new List<string>(); |
403 | string[] lines = Script.Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries); | 400 | string[] lines = Script.Split(new string[] {"\n"}, StringSplitOptions.RemoveEmptyEntries); |