aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2010-02-03 19:04:31 +0000
committerJustin Clark-Casey (justincc)2010-02-03 19:04:31 +0000
commitcd4651041efb277ff101e009806aa9ea75536bb1 (patch)
tree02438754e35d3e06040bdf237bace03489590fe3 /OpenSim/Region
parentadd an IsRoot property to sop (diff)
downloadopensim-SC-cd4651041efb277ff101e009806aa9ea75536bb1.zip
opensim-SC-cd4651041efb277ff101e009806aa9ea75536bb1.tar.gz
opensim-SC-cd4651041efb277ff101e009806aa9ea75536bb1.tar.bz2
opensim-SC-cd4651041efb277ff101e009806aa9ea75536bb1.tar.xz
For each delegate added to events in the EventManager, catch and log but do not propogate any exceptions that come back
This stops exceptions thrown by modules from disrupting the kernel and still allows other delegates to be executed normally
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs1442
1 files changed, 1128 insertions, 314 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index c50082d..2ab393f 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -27,11 +27,13 @@
27 27
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Reflection;
31using log4net;
30using OpenMetaverse; 32using OpenMetaverse;
31using OpenSim.Framework; 33using OpenSim.Framework;
32using OpenSim.Framework.Client; 34using OpenSim.Framework.Client;
33using OpenSim.Region.Framework.Interfaces; 35using OpenSim.Region.Framework.Interfaces;
34using Caps=OpenSim.Framework.Capabilities.Caps; 36using Caps = OpenSim.Framework.Capabilities.Caps;
35using GridRegion = OpenSim.Services.Interfaces.GridRegion; 37using GridRegion = OpenSim.Services.Interfaces.GridRegion;
36 38
37namespace OpenSim.Region.Framework.Scenes 39namespace OpenSim.Region.Framework.Scenes
@@ -41,6 +43,8 @@ namespace OpenSim.Region.Framework.Scenes
41 /// </summary> 43 /// </summary>
42 public class EventManager 44 public class EventManager
43 { 45 {
46 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47
44 public delegate void OnFrameDelegate(); 48 public delegate void OnFrameDelegate();
45 49
46 public event OnFrameDelegate OnFrame; 50 public event OnFrameDelegate OnFrame;
@@ -213,9 +217,9 @@ namespace OpenSim.Region.Framework.Scenes
213 217
214 public event AvatarKillData OnAvatarKilled; 218 public event AvatarKillData OnAvatarKilled;
215 219
216 public delegate void ScriptTimerEvent(uint localID, double timerinterval); 220// public delegate void ScriptTimerEvent(uint localID, double timerinterval);
217 221
218 public event ScriptTimerEvent OnScriptTimerEvent; 222// public event ScriptTimerEvent OnScriptTimerEvent;
219 223
220 public delegate void EstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool EstateSun, float LindenHour); 224 public delegate void EstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool EstateSun, float LindenHour);
221 public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); 225 public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID);
@@ -382,95 +386,12 @@ namespace OpenSim.Region.Framework.Scenes
382 public event LandBuy OnLandBuy; 386 public event LandBuy OnLandBuy;
383 public event LandBuy OnValidateLandBuy; 387 public event LandBuy OnValidateLandBuy;
384 388
385 /* Designated Event Deletage Instances */
386
387 private ScriptChangedEvent handlerScriptChangedEvent = null; //OnScriptChangedEvent;
388 private ScriptAtTargetEvent handlerScriptAtTargetEvent = null;
389 private ScriptNotAtTargetEvent handlerScriptNotAtTargetEvent = null;
390 private ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = null;
391 private ScriptNotAtRotTargetEvent handlerScriptNotAtRotTargetEvent = null;
392 private ClientMovement handlerClientMovement = null; //OnClientMovement;
393 private OnPermissionErrorDelegate handlerPermissionError = null; //OnPermissionError;
394 private OnPluginConsoleDelegate handlerPluginConsole = null; //OnPluginConsole;
395 private OnFrameDelegate handlerFrame = null; //OnFrame;
396 private OnNewClientDelegate handlerNewClient = null; //OnNewClient;
397 private OnClientConnectCoreDelegate handlerClientConnect = null; //OnClientConnect
398 private OnNewPresenceDelegate handlerNewPresence = null; //OnNewPresence;
399 private OnRemovePresenceDelegate handlerRemovePresence = null; //OnRemovePresence;
400 private OnBackupDelegate handlerBackup = null; //OnBackup;
401 private OnParcelPrimCountUpdateDelegate handlerParcelPrimCountUpdate = null; //OnParcelPrimCountUpdate;
402 private MoneyTransferEvent handlerMoneyTransfer = null; //OnMoneyTransfer;
403 private OnParcelPrimCountAddDelegate handlerParcelPrimCountAdd = null; //OnParcelPrimCountAdd;
404 private OnShutdownDelegate handlerShutdown = null; //OnShutdown;
405 private ObjectGrabDelegate handlerObjectGrab = null; //OnObjectGrab;
406 private ObjectGrabDelegate handlerObjectGrabbing = null; //OnObjectGrabbing;
407 private ObjectDeGrabDelegate handlerObjectDeGrab = null; //OnObjectDeGrab;
408 private ScriptResetDelegate handlerScriptReset = null; // OnScriptReset
409 private NewRezScript handlerRezScript = null; //OnRezScript;
410 private RemoveScript handlerRemoveScript = null; //OnRemoveScript;
411 private StartScript handlerStartScript = null; //OnStartScript;
412 private StopScript handlerStopScript = null; //OnStopScript;
413 private SceneGroupMoved handlerSceneGroupMove = null; //OnSceneGroupMove;
414 private SceneGroupGrabed handlerSceneGroupGrab = null; //OnSceneGroupGrab;
415 private SceneGroupSpinStarted handlerSceneGroupSpinStarted = null; //OnSceneGroupSpinStart;
416 private SceneGroupSpun handlerSceneGroupSpin = null; //OnSceneGroupSpin;
417 private LandObjectAdded handlerLandObjectAdded = null; //OnLandObjectAdded;
418 private LandObjectRemoved handlerLandObjectRemoved = null; //OnLandObjectRemoved;
419 private AvatarEnteringNewParcel handlerAvatarEnteringNewParcel = null; //OnAvatarEnteringNewParcel;
420 private IncomingInstantMessage handlerIncomingInstantMessage = null; //OnIncomingInstantMessage;
421 private IncomingInstantMessage handlerUnhandledInstantMessage = null; //OnUnhandledInstantMessage;
422 private ClientClosed handlerClientClosed = null; //OnClientClosed;
423 private OnMakeChildAgentDelegate handlerMakeChildAgent = null; //OnMakeChildAgent;
424 private OnMakeRootAgentDelegate handlerMakeRootAgent = null; //OnMakeRootAgent;
425 private OnTerrainTickDelegate handlerTerrainTick = null; // OnTerainTick;
426 private RegisterCapsEvent handlerRegisterCaps = null; // OnRegisterCaps;
427 private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps;
428 private ChatFromWorldEvent handlerChatFromWorld = null; // OnChatFromWorld;
429 private ChatFromClientEvent handlerChatFromClient = null; // OnChatFromClient;
430 private ChatBroadcastEvent handlerChatBroadcast = null; // OnChatBroadcast;
431 private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null;
432 private RequestChangeWaterHeight handlerRequestChangeWaterHeight = null; //OnRequestChangeWaterHeight
433 private ScriptControlEvent handlerScriptControlEvent = null;
434 private SignificantClientMovement handlerSignificantClientMovement = null;
435
436 private LandBuy handlerLandBuy = null;
437 private LandBuy handlerValidateLandBuy = null;
438 private AvatarKillData handlerAvatarKill = null;
439
440 private NoticeNoLandDataFromStorage handlerNoticeNoLandDataFromStorage = null;
441 private IncomingLandDataFromStorage handlerIncomingLandDataFromStorage = null;
442 private SetAllowForcefulBan handlerSetAllowForcefulBan = null;
443 private RequestParcelPrimCountUpdate handlerRequestParcelPrimCountUpdate = null;
444 private ParcelPrimCountTainted handlerParcelPrimCountTainted = null;
445 private ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = null;
446 // TODO: unused: private ScriptTimerEvent handlerScriptTimerEvent = null;
447 private EstateToolsSunUpdate handlerEstateToolsSunUpdate = null;
448
449 private ScriptColliding handlerCollidingStart = null;
450 private ScriptColliding handlerColliding = null;
451 private ScriptColliding handlerCollidingEnd = null;
452 private ScriptColliding handlerLandCollidingStart = null;
453 private ScriptColliding handlerLandColliding = null;
454 private ScriptColliding handlerLandCollidingEnd = null;
455 private GetScriptRunning handlerGetScriptRunning = null;
456
457 private SunLindenHour handlerCurrentTimeAsLindenSunHour = null;
458 private OnSetRootAgentSceneDelegate handlerSetRootAgentScene = null;
459
460 private OarFileLoaded handlerOarFileLoaded = null;
461 private OarFileSaved handlerOarFileSaved = null;
462
463 private EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = null;
464
465 private Attach handlerOnAttach = null;
466 private RegionUp handlerOnRegionUp = null;
467
468 public void TriggerOnAttach(uint localID, UUID itemID, UUID avatarID) 389 public void TriggerOnAttach(uint localID, UUID itemID, UUID avatarID)
469 { 390 {
470 handlerOnAttach = OnAttach; 391 Attach handlerOnAttach = OnAttach;
471 if (handlerOnAttach != null) 392 if (handlerOnAttach != null)
472 { 393 {
473 foreach (Delegate d in handlerOnAttach.GetInvocationList()) 394 foreach (Attach d in handlerOnAttach.GetInvocationList())
474 { 395 {
475 try 396 try
476 { 397 {
@@ -479,7 +400,7 @@ namespace OpenSim.Region.Framework.Scenes
479 catch (Exception e) 400 catch (Exception e)
480 { 401 {
481 m_log.ErrorFormat( 402 m_log.ErrorFormat(
482 "[EVENT MANAGER]: Delegate for TriggerOnAttach failed - continuing. Error was {0} {1}", 403 "[EVENT MANAGER]: Delegate for TriggerOnAttach failed - continuing. {0} {1}",
483 e.Message, e.StackTrace); 404 e.Message, e.StackTrace);
484 } 405 }
485 } 406 }
@@ -488,525 +409,1240 @@ namespace OpenSim.Region.Framework.Scenes
488 409
489 public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID) 410 public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID)
490 { 411 {
491 handlerGetScriptRunning = OnGetScriptRunning; 412 GetScriptRunning handlerGetScriptRunning = OnGetScriptRunning;
492 if (handlerGetScriptRunning != null) 413 if (handlerGetScriptRunning != null)
493 handlerGetScriptRunning(controllingClient, objectID, itemID); 414 {
415 foreach (GetScriptRunning d in handlerGetScriptRunning.GetInvocationList())
416 {
417 try
418 {
419 d(controllingClient, objectID, itemID);
420 }
421 catch (Exception e)
422 {
423 m_log.ErrorFormat(
424 "[EVENT MANAGER]: Delegate for TriggerGetScriptRunning failed - continuing. {0} {1}",
425 e.Message, e.StackTrace);
426 }
427 }
428 }
494 } 429 }
495 430
496 public void TriggerOnScriptChangedEvent(uint localID, uint change) 431 public void TriggerOnScriptChangedEvent(uint localID, uint change)
497 { 432 {
498 handlerScriptChangedEvent = OnScriptChangedEvent; 433 ScriptChangedEvent handlerScriptChangedEvent = OnScriptChangedEvent;
499 if (handlerScriptChangedEvent != null) 434 if (handlerScriptChangedEvent != null)
500 handlerScriptChangedEvent(localID, change); 435 {
436 foreach (ScriptChangedEvent d in handlerScriptChangedEvent.GetInvocationList())
437 {
438 try
439 {
440 d(localID, change);
441 }
442 catch (Exception e)
443 {
444 m_log.ErrorFormat(
445 "[EVENT MANAGER]: Delegate for TriggerOnScriptChangedEvent failed - continuing. {0} {1}",
446 e.Message, e.StackTrace);
447 }
448 }
449 }
501 } 450 }
502 451
503 public void TriggerOnClientMovement(ScenePresence avatar) 452 public void TriggerOnClientMovement(ScenePresence avatar)
504 { 453 {
505 handlerClientMovement = OnClientMovement; 454 ClientMovement handlerClientMovement = OnClientMovement;
506 if (handlerClientMovement != null) 455 if (handlerClientMovement != null)
507 handlerClientMovement(avatar); 456 {
457 foreach (ClientMovement d in handlerClientMovement.GetInvocationList())
458 {
459 try
460 {
461 d(avatar);
462 }
463 catch (Exception e)
464 {
465 m_log.ErrorFormat(
466 "[EVENT MANAGER]: Delegate for TriggerOnClientMovement failed - continuing. {0} {1}",
467 e.Message, e.StackTrace);
468 }
469 }
470 }
508 } 471 }
509 472
510 public void TriggerPermissionError(UUID user, string reason) 473 public void TriggerPermissionError(UUID user, string reason)
511 { 474 {
512 handlerPermissionError = OnPermissionError; 475 OnPermissionErrorDelegate handlerPermissionError = OnPermissionError;
513 if (handlerPermissionError != null) 476 if (handlerPermissionError != null)
514 handlerPermissionError(user, reason); 477 {
478 foreach (OnPermissionErrorDelegate d in handlerPermissionError.GetInvocationList())
479 {
480 try
481 {
482 d(user, reason);
483 }
484 catch (Exception e)
485 {
486 m_log.ErrorFormat(
487 "[EVENT MANAGER]: Delegate for TriggerPermissionError failed - continuing. {0} {1}",
488 e.Message, e.StackTrace);
489 }
490 }
491 }
515 } 492 }
516 493
517 public void TriggerOnPluginConsole(string[] args) 494 public void TriggerOnPluginConsole(string[] args)
518 { 495 {
519 handlerPluginConsole = OnPluginConsole; 496 OnPluginConsoleDelegate handlerPluginConsole = OnPluginConsole;
520 if (handlerPluginConsole != null) 497 if (handlerPluginConsole != null)
521 handlerPluginConsole(args); 498 {
499 foreach (OnPluginConsoleDelegate d in handlerPluginConsole.GetInvocationList())
500 {
501 try
502 {
503 d(args);
504 }
505 catch (Exception e)
506 {
507 m_log.ErrorFormat(
508 "[EVENT MANAGER]: Delegate for TriggerOnPluginConsole failed - continuing. {0} {1}",
509 e.Message, e.StackTrace);
510 }
511 }
512 }
522 } 513 }
523 514
524 public void TriggerOnFrame() 515 public void TriggerOnFrame()
525 { 516 {
526 handlerFrame = OnFrame; 517 OnFrameDelegate handlerFrame = OnFrame;
527 if (handlerFrame != null) 518 if (handlerFrame != null)
528 { 519 {
529 handlerFrame(); 520 foreach (OnFrameDelegate d in handlerFrame.GetInvocationList())
530 } 521 {
522 try
523 {
524 d();
525 }
526 catch (Exception e)
527 {
528 m_log.ErrorFormat(
529 "[EVENT MANAGER]: Delegate for TriggerOnFrame failed - continuing. {0} {1}",
530 e.Message, e.StackTrace);
531 }
532 }
533 }
531 } 534 }
532 535
533 public void TriggerOnNewClient(IClientAPI client) 536 public void TriggerOnNewClient(IClientAPI client)
534 { 537 {
535 handlerNewClient = OnNewClient; 538 OnNewClientDelegate handlerNewClient = OnNewClient;
536 if (handlerNewClient != null) 539 if (handlerNewClient != null)
537 handlerNewClient(client); 540 {
541 foreach (OnNewClientDelegate d in handlerNewClient.GetInvocationList())
542 {
543 try
544 {
545 d(client);
546 }
547 catch (Exception e)
548 {
549 m_log.ErrorFormat(
550 "[EVENT MANAGER]: Delegate for TriggerOnNewClient failed - continuing. {0} {1}",
551 e.Message, e.StackTrace);
552 }
553 }
554 }
538 555
539 if (client is IClientCore) 556 if (client is IClientCore)
540 { 557 {
541 handlerClientConnect = OnClientConnect; 558 OnClientConnectCoreDelegate handlerClientConnect = OnClientConnect;
542 if (handlerClientConnect != null) 559 if (handlerClientConnect != null)
543 handlerClientConnect((IClientCore)client); 560 {
561 foreach (OnClientConnectCoreDelegate d in handlerClientConnect.GetInvocationList())
562 {
563 try
564 {
565 d((IClientCore)client);
566 }
567 catch (Exception e)
568 {
569 m_log.ErrorFormat(
570 "[EVENT MANAGER]: Delegate for TriggerOnNewClient (IClientCore) failed - continuing. {0} {1}",
571 e.Message, e.StackTrace);
572 }
573 }
574 }
544 } 575 }
545 } 576 }
546 577
547 public void TriggerOnNewPresence(ScenePresence presence) 578 public void TriggerOnNewPresence(ScenePresence presence)
548 { 579 {
549 handlerNewPresence = OnNewPresence; 580 OnNewPresenceDelegate handlerNewPresence = OnNewPresence;
550 if (handlerNewPresence != null) 581 if (handlerNewPresence != null)
551 handlerNewPresence(presence); 582 {
583 foreach (OnNewPresenceDelegate d in handlerNewPresence.GetInvocationList())
584 {
585 try
586 {
587 d(presence);
588 }
589 catch (Exception e)
590 {
591 m_log.ErrorFormat(
592 "[EVENT MANAGER]: Delegate for TriggerOnNewPresence failed - continuing. {0} {1}",
593 e.Message, e.StackTrace);
594 }
595 }
596 }
552 } 597 }
553 598
554 public void TriggerOnRemovePresence(UUID agentId) 599 public void TriggerOnRemovePresence(UUID agentId)
555 { 600 {
556 handlerRemovePresence = OnRemovePresence; 601 OnRemovePresenceDelegate handlerRemovePresence = OnRemovePresence;
557 if (handlerRemovePresence != null) 602 if (handlerRemovePresence != null)
558 { 603 {
559 handlerRemovePresence(agentId); 604 foreach (OnRemovePresenceDelegate d in handlerRemovePresence.GetInvocationList())
560 } 605 {
606 try
607 {
608 d(agentId);
609 }
610 catch (Exception e)
611 {
612 m_log.ErrorFormat(
613 "[EVENT MANAGER]: Delegate for TriggerOnRemovePresence failed - continuing. {0} {1}",
614 e.Message, e.StackTrace);
615 }
616 }
617 }
561 } 618 }
562 619
563 public void TriggerOnBackup(IRegionDataStore dstore) 620 public void TriggerOnBackup(IRegionDataStore dstore)
564 { 621 {
565 handlerBackup = OnBackup; 622 OnBackupDelegate handlerOnAttach = OnBackup;
566 if (handlerBackup != null) 623 if (handlerOnAttach != null)
567 { 624 {
568 handlerBackup(dstore, false); 625 foreach (OnBackupDelegate d in handlerOnAttach.GetInvocationList())
569 } 626 {
627 try
628 {
629 d(dstore, false);
630 }
631 catch (Exception e)
632 {
633 m_log.ErrorFormat(
634 "[EVENT MANAGER]: Delegate for TriggerOnBackup failed - continuing. {0} {1}",
635 e.Message, e.StackTrace);
636 }
637 }
638 }
570 } 639 }
571 640
572 public void TriggerParcelPrimCountUpdate() 641 public void TriggerParcelPrimCountUpdate()
573 { 642 {
574 handlerParcelPrimCountUpdate = OnParcelPrimCountUpdate; 643 OnParcelPrimCountUpdateDelegate handlerParcelPrimCountUpdate = OnParcelPrimCountUpdate;
575 if (handlerParcelPrimCountUpdate != null) 644 if (handlerParcelPrimCountUpdate != null)
576 { 645 {
577 handlerParcelPrimCountUpdate(); 646 foreach (OnParcelPrimCountUpdateDelegate d in handlerParcelPrimCountUpdate.GetInvocationList())
578 } 647 {
648 try
649 {
650 d();
651 }
652 catch (Exception e)
653 {
654 m_log.ErrorFormat(
655 "[EVENT MANAGER]: Delegate for TriggerParcelPrimCountUpdate failed - continuing. {0} {1}",
656 e.Message, e.StackTrace);
657 }
658 }
659 }
579 } 660 }
580 661
581 public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs e) 662 public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs args)
582 { 663 {
583 handlerMoneyTransfer = OnMoneyTransfer; 664 MoneyTransferEvent handlerMoneyTransfer = OnMoneyTransfer;
584 if (handlerMoneyTransfer != null) 665 if (handlerMoneyTransfer != null)
585 { 666 {
586 handlerMoneyTransfer(sender, e); 667 foreach (MoneyTransferEvent d in handlerMoneyTransfer.GetInvocationList())
587 } 668 {
669 try
670 {
671 d(sender, args);
672 }
673 catch (Exception e)
674 {
675 m_log.ErrorFormat(
676 "[EVENT MANAGER]: Delegate for TriggerMoneyTransfer failed - continuing. {0} {1}",
677 e.Message, e.StackTrace);
678 }
679 }
680 }
588 } 681 }
589 682
590 public void TriggerTerrainTick() 683 public void TriggerTerrainTick()
591 { 684 {
592 handlerTerrainTick = OnTerrainTick; 685 OnTerrainTickDelegate handlerTerrainTick = OnTerrainTick;
593 if (handlerTerrainTick != null) 686 if (handlerTerrainTick != null)
594 { 687 {
595 handlerTerrainTick(); 688 foreach (OnTerrainTickDelegate d in handlerTerrainTick.GetInvocationList())
596 } 689 {
690 try
691 {
692 d();
693 }
694 catch (Exception e)
695 {
696 m_log.ErrorFormat(
697 "[EVENT MANAGER]: Delegate for TriggerTerrainTick failed - continuing. {0} {1}",
698 e.Message, e.StackTrace);
699 }
700 }
701 }
597 } 702 }
598 703
599 public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) 704 public void TriggerParcelPrimCountAdd(SceneObjectGroup obj)
600 { 705 {
601 handlerParcelPrimCountAdd = OnParcelPrimCountAdd; 706 OnParcelPrimCountAddDelegate handlerParcelPrimCountAdd = OnParcelPrimCountAdd;
602 if (handlerParcelPrimCountAdd != null) 707 if (handlerParcelPrimCountAdd != null)
603 { 708 {
604 handlerParcelPrimCountAdd(obj); 709 foreach (OnParcelPrimCountAddDelegate d in handlerParcelPrimCountAdd.GetInvocationList())
605 } 710 {
711 try
712 {
713 d(obj);
714 }
715 catch (Exception e)
716 {
717 m_log.ErrorFormat(
718 "[EVENT MANAGER]: Delegate for TriggerParcelPrimCountAdd failed - continuing. {0} {1}",
719 e.Message, e.StackTrace);
720 }
721 }
722 }
606 } 723 }
607 724
608 public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) 725 public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj)
609 { 726 {
610 handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene; 727 ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene;
611 if (handlerObjectBeingRemovedFromScene != null) 728 if (handlerObjectBeingRemovedFromScene != null)
612 { 729 {
613 handlerObjectBeingRemovedFromScene(obj); 730 foreach (ObjectBeingRemovedFromScene d in handlerObjectBeingRemovedFromScene.GetInvocationList())
614 } 731 {
732 try
733 {
734 d(obj);
735 }
736 catch (Exception e)
737 {
738 m_log.ErrorFormat(
739 "[EVENT MANAGER]: Delegate for TriggerObjectBeingRemovedFromScene failed - continuing. {0} {1}",
740 e.Message, e.StackTrace);
741 }
742 }
743 }
615 } 744 }
616 745
617 public void TriggerShutdown() 746 public void TriggerShutdown()
618 { 747 {
619 handlerShutdown = OnShutdown; 748 OnShutdownDelegate handlerShutdown = OnShutdown;
620 if (handlerShutdown != null) 749 if (handlerShutdown != null)
621 handlerShutdown(); 750 {
751 foreach (OnShutdownDelegate d in handlerShutdown.GetInvocationList())
752 {
753 try
754 {
755 d();
756 }
757 catch (Exception e)
758 {
759 m_log.ErrorFormat(
760 "[EVENT MANAGER]: Delegate for TriggerShutdown failed - continuing. {0} {1}",
761 e.Message, e.StackTrace);
762 }
763 }
764 }
622 } 765 }
623 766
624 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 767 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
625 { 768 {
626 handlerObjectGrab = OnObjectGrab; 769 ObjectGrabDelegate handlerObjectGrab = OnObjectGrab;
627 if (handlerObjectGrab != null) 770 if (handlerObjectGrab != null)
628 { 771 {
629 handlerObjectGrab(localID, originalID, offsetPos, remoteClient, surfaceArgs); 772 foreach (ObjectGrabDelegate d in handlerObjectGrab.GetInvocationList())
630 } 773 {
774 try
775 {
776 d(localID, originalID, offsetPos, remoteClient, surfaceArgs);
777 }
778 catch (Exception e)
779 {
780 m_log.ErrorFormat(
781 "[EVENT MANAGER]: Delegate for TriggerObjectGrab failed - continuing. {0} {1}",
782 e.Message, e.StackTrace);
783 }
784 }
785 }
631 } 786 }
632 787
633 public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 788 public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
634 { 789 {
635 handlerObjectGrabbing = OnObjectGrabbing; 790 ObjectGrabDelegate handlerObjectGrabbing = OnObjectGrabbing;
636 if (handlerObjectGrabbing != null) 791 if (handlerObjectGrabbing != null)
637 { 792 {
638 handlerObjectGrabbing(localID, originalID, offsetPos, remoteClient, surfaceArgs); 793 foreach (ObjectGrabDelegate d in handlerObjectGrabbing.GetInvocationList())
639 } 794 {
795 try
796 {
797 d(localID, originalID, offsetPos, remoteClient, surfaceArgs);
798 }
799 catch (Exception e)
800 {
801 m_log.ErrorFormat(
802 "[EVENT MANAGER]: Delegate for TriggerObjectGrabbing failed - continuing. {0} {1}",
803 e.Message, e.StackTrace);
804 }
805 }
806 }
640 } 807 }
641 808
642 public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 809 public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
643 { 810 {
644 handlerObjectDeGrab = OnObjectDeGrab; 811 ObjectDeGrabDelegate handlerObjectDeGrab = OnObjectDeGrab;
645 if (handlerObjectDeGrab != null) 812 if (handlerObjectDeGrab != null)
646 { 813 {
647 handlerObjectDeGrab(localID, originalID, remoteClient, surfaceArgs); 814 foreach (ObjectDeGrabDelegate d in handlerObjectDeGrab.GetInvocationList())
648 } 815 {
816 try
817 {
818 d(localID, originalID, remoteClient, surfaceArgs);
819 }
820 catch (Exception e)
821 {
822 m_log.ErrorFormat(
823 "[EVENT MANAGER]: Delegate for TriggerObjectDeGrab failed - continuing. {0} {1}",
824 e.Message, e.StackTrace);
825 }
826 }
827 }
649 } 828 }
650 829
651 public void TriggerScriptReset(uint localID, UUID itemID) 830 public void TriggerScriptReset(uint localID, UUID itemID)
652 { 831 {
653 handlerScriptReset = OnScriptReset; 832 ScriptResetDelegate handlerScriptReset = OnScriptReset;
654 if (handlerScriptReset != null) 833 if (handlerScriptReset != null)
655 { 834 {
656 handlerScriptReset(localID, itemID); 835 foreach (ScriptResetDelegate d in handlerScriptReset.GetInvocationList())
657 } 836 {
837 try
838 {
839 d(localID, itemID);
840 }
841 catch (Exception e)
842 {
843 m_log.ErrorFormat(
844 "[EVENT MANAGER]: Delegate for TriggerScriptReset failed - continuing. {0} {1}",
845 e.Message, e.StackTrace);
846 }
847 }
848 }
658 } 849 }
659 850
660 public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource) 851 public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource)
661 { 852 {
662 handlerRezScript = OnRezScript; 853 NewRezScript handlerRezScript = OnRezScript;
663 if (handlerRezScript != null) 854 if (handlerRezScript != null)
664 { 855 {
665 handlerRezScript(localID, itemID, script, startParam, 856 foreach (NewRezScript d in handlerRezScript.GetInvocationList())
666 postOnRez, engine, stateSource); 857 {
667 } 858 try
859 {
860 d(localID, itemID, script, startParam, postOnRez, engine, stateSource);
861 }
862 catch (Exception e)
863 {
864 m_log.ErrorFormat(
865 "[EVENT MANAGER]: Delegate for TriggerRezScript failed - continuing. {0} {1}",
866 e.Message, e.StackTrace);
867 }
868 }
869 }
668 } 870 }
669 871
670 public void TriggerStartScript(uint localID, UUID itemID) 872 public void TriggerStartScript(uint localID, UUID itemID)
671 { 873 {
672 handlerStartScript = OnStartScript; 874 StartScript handlerStartScript = OnStartScript;
673 if (handlerStartScript != null) 875 if (handlerStartScript != null)
674 { 876 {
675 handlerStartScript(localID, itemID); 877 foreach (StartScript d in handlerStartScript.GetInvocationList())
676 } 878 {
879 try
880 {
881 d(localID, itemID);
882 }
883 catch (Exception e)
884 {
885 m_log.ErrorFormat(
886 "[EVENT MANAGER]: Delegate for TriggerStartScript failed - continuing. {0} {1}",
887 e.Message, e.StackTrace);
888 }
889 }
890 }
677 } 891 }
678 892
679 public void TriggerStopScript(uint localID, UUID itemID) 893 public void TriggerStopScript(uint localID, UUID itemID)
680 { 894 {
681 handlerStopScript = OnStopScript; 895 StopScript handlerStopScript = OnStopScript;
682 if (handlerStopScript != null) 896 if (handlerStopScript != null)
683 { 897 {
684 handlerStopScript(localID, itemID); 898 foreach (StopScript d in handlerStopScript.GetInvocationList())
685 } 899 {
900 try
901 {
902 d(localID, itemID);
903 }
904 catch (Exception e)
905 {
906 m_log.ErrorFormat(
907 "[EVENT MANAGER]: Delegate for TriggerStopScript failed - continuing. {0} {1}",
908 e.Message, e.StackTrace);
909 }
910 }
911 }
686 } 912 }
687 913
688 public void TriggerRemoveScript(uint localID, UUID itemID) 914 public void TriggerRemoveScript(uint localID, UUID itemID)
689 { 915 {
690 handlerRemoveScript = OnRemoveScript; 916 RemoveScript handlerRemoveScript = OnRemoveScript;
691 if (handlerRemoveScript != null) 917 if (handlerRemoveScript != null)
692 { 918 {
693 handlerRemoveScript(localID, itemID); 919 foreach (RemoveScript d in handlerRemoveScript.GetInvocationList())
694 } 920 {
921 try
922 {
923 d(localID, itemID);
924 }
925 catch (Exception e)
926 {
927 m_log.ErrorFormat(
928 "[EVENT MANAGER]: Delegate for TriggerRemoveScript failed - continuing. {0} {1}",
929 e.Message, e.StackTrace);
930 }
931 }
932 }
695 } 933 }
696 934
697 public bool TriggerGroupMove(UUID groupID, Vector3 delta) 935 public bool TriggerGroupMove(UUID groupID, Vector3 delta)
698 { 936 {
699 handlerSceneGroupMove = OnSceneGroupMove; 937 bool result = true;
700 938
939 SceneGroupMoved handlerSceneGroupMove = OnSceneGroupMove;
701 if (handlerSceneGroupMove != null) 940 if (handlerSceneGroupMove != null)
702 { 941 {
703 return handlerSceneGroupMove(groupID, delta); 942 foreach (SceneGroupMoved d in handlerSceneGroupMove.GetInvocationList())
943 {
944 try
945 {
946 if (d(groupID, delta) == false)
947 result = false;
948 }
949 catch (Exception e)
950 {
951 m_log.ErrorFormat(
952 "[EVENT MANAGER]: Delegate for TriggerOnAttach failed - continuing. {0} {1}",
953 e.Message, e.StackTrace);
954 }
955 }
704 } 956 }
705 return true; 957
958 return result;
706 } 959 }
707 960
708 public bool TriggerGroupSpinStart(UUID groupID) 961 public bool TriggerGroupSpinStart(UUID groupID)
709 { 962 {
710 handlerSceneGroupSpinStarted = OnSceneGroupSpinStart; 963 bool result = true;
711 964
965 SceneGroupSpinStarted handlerSceneGroupSpinStarted = OnSceneGroupSpinStart;
712 if (handlerSceneGroupSpinStarted != null) 966 if (handlerSceneGroupSpinStarted != null)
713 { 967 {
714 return handlerSceneGroupSpinStarted(groupID); 968 foreach (SceneGroupSpinStarted d in handlerSceneGroupSpinStarted.GetInvocationList())
969 {
970 try
971 {
972 if (d(groupID) == false)
973 result = false;
974 }
975 catch (Exception e)
976 {
977 m_log.ErrorFormat(
978 "[EVENT MANAGER]: Delegate for TriggerGroupSpinStart failed - continuing. {0} {1}",
979 e.Message, e.StackTrace);
980 }
981 }
715 } 982 }
716 return true; 983
984 return result;
717 } 985 }
718 986
719 public bool TriggerGroupSpin(UUID groupID, Quaternion rotation) 987 public bool TriggerGroupSpin(UUID groupID, Quaternion rotation)
720 { 988 {
721 handlerSceneGroupSpin = OnSceneGroupSpin; 989 bool result = true;
722 990
991 SceneGroupSpun handlerSceneGroupSpin = OnSceneGroupSpin;
723 if (handlerSceneGroupSpin != null) 992 if (handlerSceneGroupSpin != null)
724 { 993 {
725 return handlerSceneGroupSpin(groupID, rotation); 994 foreach (SceneGroupSpun d in handlerSceneGroupSpin.GetInvocationList())
995 {
996 try
997 {
998 if (d(groupID, rotation) == false)
999 result = false;
1000 }
1001 catch (Exception e)
1002 {
1003 m_log.ErrorFormat(
1004 "[EVENT MANAGER]: Delegate for TriggerGroupSpin failed - continuing. {0} {1}",
1005 e.Message, e.StackTrace);
1006 }
1007 }
726 } 1008 }
727 return true; 1009
1010 return result;
728 } 1011 }
729 1012
730 public void TriggerGroupGrab(UUID groupID, Vector3 offset, UUID userID) 1013 public void TriggerGroupGrab(UUID groupID, Vector3 offset, UUID userID)
731 { 1014 {
732 handlerSceneGroupGrab = OnSceneGroupGrab; 1015 SceneGroupGrabed handlerSceneGroupGrab = OnSceneGroupGrab;
733 if (handlerSceneGroupGrab != null) 1016 if (handlerSceneGroupGrab != null)
734 { 1017 {
735 handlerSceneGroupGrab(groupID, offset, userID); 1018 foreach (SceneGroupGrabed d in handlerSceneGroupGrab.GetInvocationList())
736 } 1019 {
1020 try
1021 {
1022 d(groupID, offset, userID);
1023 }
1024 catch (Exception e)
1025 {
1026 m_log.ErrorFormat(
1027 "[EVENT MANAGER]: Delegate for TriggerGroupGrab failed - continuing. {0} {1}",
1028 e.Message, e.StackTrace);
1029 }
1030 }
1031 }
737 } 1032 }
738 1033
739 public void TriggerLandObjectAdded(ILandObject newParcel) 1034 public void TriggerLandObjectAdded(ILandObject newParcel)
740 { 1035 {
741 handlerLandObjectAdded = OnLandObjectAdded; 1036 LandObjectAdded handlerLandObjectAdded = OnLandObjectAdded;
742
743 if (handlerLandObjectAdded != null) 1037 if (handlerLandObjectAdded != null)
744 { 1038 {
745 handlerLandObjectAdded(newParcel); 1039 foreach (LandObjectAdded d in handlerLandObjectAdded.GetInvocationList())
746 } 1040 {
1041 try
1042 {
1043 d(newParcel);
1044 }
1045 catch (Exception e)
1046 {
1047 m_log.ErrorFormat(
1048 "[EVENT MANAGER]: Delegate for TriggerLandObjectAdded failed - continuing. {0} {1}",
1049 e.Message, e.StackTrace);
1050 }
1051 }
1052 }
747 } 1053 }
748 1054
749 public void TriggerLandObjectRemoved(UUID globalID) 1055 public void TriggerLandObjectRemoved(UUID globalID)
750 { 1056 {
751 handlerLandObjectRemoved = OnLandObjectRemoved; 1057 LandObjectRemoved handlerLandObjectRemoved = OnLandObjectRemoved;
752 if (handlerLandObjectRemoved != null) 1058 if (handlerLandObjectRemoved != null)
753 { 1059 {
754 handlerLandObjectRemoved(globalID); 1060 foreach (LandObjectRemoved d in handlerLandObjectRemoved.GetInvocationList())
755 } 1061 {
1062 try
1063 {
1064 d(globalID);
1065 }
1066 catch (Exception e)
1067 {
1068 m_log.ErrorFormat(
1069 "[EVENT MANAGER]: Delegate for TriggerLandObjectRemoved failed - continuing. {0} {1}",
1070 e.Message, e.StackTrace);
1071 }
1072 }
1073 }
756 } 1074 }
757 1075
758 public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel) 1076 public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel)
759 { 1077 {
760 //triggerLandObjectRemoved(localParcelID);
761
762 TriggerLandObjectAdded(newParcel); 1078 TriggerLandObjectAdded(newParcel);
763 } 1079 }
764 1080
765 public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID) 1081 public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID)
766 { 1082 {
767 handlerAvatarEnteringNewParcel = OnAvatarEnteringNewParcel; 1083 AvatarEnteringNewParcel handlerAvatarEnteringNewParcel = OnAvatarEnteringNewParcel;
768
769 if (handlerAvatarEnteringNewParcel != null) 1084 if (handlerAvatarEnteringNewParcel != null)
770 { 1085 {
771 handlerAvatarEnteringNewParcel(avatar, localLandID, regionID); 1086 foreach (AvatarEnteringNewParcel d in handlerAvatarEnteringNewParcel.GetInvocationList())
772 } 1087 {
1088 try
1089 {
1090 d(avatar, localLandID, regionID);
1091 }
1092 catch (Exception e)
1093 {
1094 m_log.ErrorFormat(
1095 "[EVENT MANAGER]: Delegate for TriggerAvatarEnteringNewParcel failed - continuing. {0} {1}",
1096 e.Message, e.StackTrace);
1097 }
1098 }
1099 }
773 } 1100 }
774 1101
775 public void TriggerIncomingInstantMessage(GridInstantMessage message) 1102 public void TriggerIncomingInstantMessage(GridInstantMessage message)
776 { 1103 {
777 handlerIncomingInstantMessage = OnIncomingInstantMessage; 1104 IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage;
778 if (handlerIncomingInstantMessage != null) 1105 if (handlerIncomingInstantMessage != null)
779 { 1106 {
780 handlerIncomingInstantMessage(message); 1107 foreach (IncomingInstantMessage d in handlerIncomingInstantMessage.GetInvocationList())
781 } 1108 {
1109 try
1110 {
1111 d(message);
1112 }
1113 catch (Exception e)
1114 {
1115 m_log.ErrorFormat(
1116 "[EVENT MANAGER]: Delegate for TriggerIncomingInstantMessage failed - continuing. {0} {1}",
1117 e.Message, e.StackTrace);
1118 }
1119 }
1120 }
782 } 1121 }
783 1122
784 public void TriggerUnhandledInstantMessage(GridInstantMessage message) 1123 public void TriggerUnhandledInstantMessage(GridInstantMessage message)
785 { 1124 {
786 handlerUnhandledInstantMessage = OnUnhandledInstantMessage; 1125 IncomingInstantMessage handlerUnhandledInstantMessage = OnUnhandledInstantMessage;
787 if (handlerUnhandledInstantMessage != null) 1126 if (handlerUnhandledInstantMessage != null)
788 { 1127 {
789 handlerUnhandledInstantMessage(message); 1128 foreach (IncomingInstantMessage d in handlerUnhandledInstantMessage.GetInvocationList())
790 } 1129 {
1130 try
1131 {
1132 d(message);
1133 }
1134 catch (Exception e)
1135 {
1136 m_log.ErrorFormat(
1137 "[EVENT MANAGER]: Delegate for TriggerOnAttach failed - continuing. {0} {1}",
1138 e.Message, e.StackTrace);
1139 }
1140 }
1141 }
791 } 1142 }
792 1143
793 public void TriggerClientClosed(UUID ClientID, Scene scene) 1144 public void TriggerClientClosed(UUID ClientID, Scene scene)
794 { 1145 {
795 handlerClientClosed = OnClientClosed; 1146 ClientClosed handlerClientClosed = OnClientClosed;
796 if (handlerClientClosed != null) 1147 if (handlerClientClosed != null)
797 { 1148 {
798 handlerClientClosed(ClientID, scene); 1149 foreach (ClientClosed d in handlerClientClosed.GetInvocationList())
799 } 1150 {
1151 try
1152 {
1153 d(ClientID, scene);
1154 }
1155 catch (Exception e)
1156 {
1157 m_log.ErrorFormat(
1158 "[EVENT MANAGER]: Delegate for TriggerClientClosed failed - continuing. {0} {1}",
1159 e.Message, e.StackTrace);
1160 }
1161 }
1162 }
800 } 1163 }
801 1164
802 public void TriggerOnMakeChildAgent(ScenePresence presence) 1165 public void TriggerOnMakeChildAgent(ScenePresence presence)
803 { 1166 {
804 handlerMakeChildAgent = OnMakeChildAgent; 1167 OnMakeChildAgentDelegate handlerMakeChildAgent = OnMakeChildAgent;
805 if (handlerMakeChildAgent != null) 1168 if (handlerMakeChildAgent != null)
806 { 1169 {
807 handlerMakeChildAgent(presence); 1170 foreach (OnMakeChildAgentDelegate d in handlerMakeChildAgent.GetInvocationList())
808 } 1171 {
1172 try
1173 {
1174 d(presence);
1175 }
1176 catch (Exception e)
1177 {
1178 m_log.ErrorFormat(
1179 "[EVENT MANAGER]: Delegate for TriggerOnMakeChildAgent failed - continuing. {0} {1}",
1180 e.Message, e.StackTrace);
1181 }
1182 }
1183 }
809 } 1184 }
810 1185
811 public void TriggerOnMakeRootAgent(ScenePresence presence) 1186 public void TriggerOnMakeRootAgent(ScenePresence presence)
812 { 1187 {
813 handlerMakeRootAgent = OnMakeRootAgent; 1188 OnMakeRootAgentDelegate handlerMakeRootAgent = OnMakeRootAgent;
814 if (handlerMakeRootAgent != null) 1189 if (handlerMakeRootAgent != null)
815 { 1190 {
816 handlerMakeRootAgent(presence); 1191 foreach (OnMakeRootAgentDelegate d in handlerMakeRootAgent.GetInvocationList())
817 } 1192 {
1193 try
1194 {
1195 d(presence);
1196 }
1197 catch (Exception e)
1198 {
1199 m_log.ErrorFormat(
1200 "[EVENT MANAGER]: Delegate for TriggerOnMakeRootAgent failed - continuing. {0} {1}",
1201 e.Message, e.StackTrace);
1202 }
1203 }
1204 }
818 } 1205 }
819 1206
820 public void TriggerOnRegisterCaps(UUID agentID, Caps caps) 1207 public void TriggerOnRegisterCaps(UUID agentID, Caps caps)
821 { 1208 {
822 handlerRegisterCaps = OnRegisterCaps; 1209 RegisterCapsEvent handlerRegisterCaps = OnRegisterCaps;
823 if (handlerRegisterCaps != null) 1210 if (handlerRegisterCaps != null)
824 { 1211 {
825 handlerRegisterCaps(agentID, caps); 1212 foreach (RegisterCapsEvent d in handlerRegisterCaps.GetInvocationList())
826 } 1213 {
1214 try
1215 {
1216 d(agentID, caps);
1217 }
1218 catch (Exception e)
1219 {
1220 m_log.ErrorFormat(
1221 "[EVENT MANAGER]: Delegate for TriggerOnRegisterCaps failed - continuing. {0} {1}",
1222 e.Message, e.StackTrace);
1223 }
1224 }
1225 }
827 } 1226 }
828 1227
829 public void TriggerOnDeregisterCaps(UUID agentID, Caps caps) 1228 public void TriggerOnDeregisterCaps(UUID agentID, Caps caps)
830 { 1229 {
831 handlerDeregisterCaps = OnDeregisterCaps; 1230 DeregisterCapsEvent handlerDeregisterCaps = OnDeregisterCaps;
832 if (handlerDeregisterCaps != null) 1231 if (handlerDeregisterCaps != null)
833 { 1232 {
834 handlerDeregisterCaps(agentID, caps); 1233 foreach (DeregisterCapsEvent d in handlerDeregisterCaps.GetInvocationList())
835 } 1234 {
1235 try
1236 {
1237 d(agentID, caps);
1238 }
1239 catch (Exception e)
1240 {
1241 m_log.ErrorFormat(
1242 "[EVENT MANAGER]: Delegate for TriggerOnDeregisterCaps failed - continuing. {0} {1}",
1243 e.Message, e.StackTrace);
1244 }
1245 }
1246 }
836 } 1247 }
837 1248
838 public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel) 1249 public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel)
839 { 1250 {
840 handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete; 1251 NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = OnNewInventoryItemUploadComplete;
841 if (handlerNewInventoryItemUpdateComplete != null) 1252 if (handlerNewInventoryItemUpdateComplete != null)
842 { 1253 {
843 handlerNewInventoryItemUpdateComplete(agentID, AssetID, AssetName, userlevel); 1254 foreach (NewInventoryItemUploadComplete d in handlerNewInventoryItemUpdateComplete.GetInvocationList())
844 } 1255 {
1256 try
1257 {
1258 d(agentID, AssetID, AssetName, userlevel);
1259 }
1260 catch (Exception e)
1261 {
1262 m_log.ErrorFormat(
1263 "[EVENT MANAGER]: Delegate for TriggerOnNewInventoryItemUploadComplete failed - continuing. {0} {1}",
1264 e.Message, e.StackTrace);
1265 }
1266 }
1267 }
845 } 1268 }
846 1269
847 public void TriggerLandBuy(Object sender, LandBuyArgs e) 1270 public void TriggerLandBuy(Object sender, LandBuyArgs args)
848 { 1271 {
849 handlerLandBuy = OnLandBuy; 1272 LandBuy handlerLandBuy = OnLandBuy;
850 if (handlerLandBuy != null) 1273 if (handlerLandBuy != null)
851 { 1274 {
852 handlerLandBuy(sender, e); 1275 foreach (LandBuy d in handlerLandBuy.GetInvocationList())
853 } 1276 {
1277 try
1278 {
1279 d(sender, args);
1280 }
1281 catch (Exception e)
1282 {
1283 m_log.ErrorFormat(
1284 "[EVENT MANAGER]: Delegate for TriggerLandBuy failed - continuing. {0} {1}",
1285 e.Message, e.StackTrace);
1286 }
1287 }
1288 }
854 } 1289 }
855 1290
856 public void TriggerValidateLandBuy(Object sender, LandBuyArgs e) 1291 public void TriggerValidateLandBuy(Object sender, LandBuyArgs args)
857 { 1292 {
858 handlerValidateLandBuy = OnValidateLandBuy; 1293 LandBuy handlerValidateLandBuy = OnValidateLandBuy;
859 if (handlerValidateLandBuy != null) 1294 if (handlerValidateLandBuy != null)
860 { 1295 {
861 handlerValidateLandBuy(sender, e); 1296 foreach (LandBuy d in handlerValidateLandBuy.GetInvocationList())
862 } 1297 {
1298 try
1299 {
1300 d(sender, args);
1301 }
1302 catch (Exception e)
1303 {
1304 m_log.ErrorFormat(
1305 "[EVENT MANAGER]: Delegate for TriggerValidateLandBuy failed - continuing. {0} {1}",
1306 e.Message, e.StackTrace);
1307 }
1308 }
1309 }
863 } 1310 }
864 1311
865 public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos) 1312 public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos)
866 { 1313 {
867 handlerScriptAtTargetEvent = OnScriptAtTargetEvent; 1314 ScriptAtTargetEvent handlerScriptAtTargetEvent = OnScriptAtTargetEvent;
868 if (handlerScriptAtTargetEvent != null) 1315 if (handlerScriptAtTargetEvent != null)
869 { 1316 {
870 handlerScriptAtTargetEvent(localID, handle, targetpos, currentpos); 1317 foreach (ScriptAtTargetEvent d in handlerScriptAtTargetEvent.GetInvocationList())
871 } 1318 {
1319 try
1320 {
1321 d(localID, handle, targetpos, currentpos);
1322 }
1323 catch (Exception e)
1324 {
1325 m_log.ErrorFormat(
1326 "[EVENT MANAGER]: Delegate for TriggerAtTargetEvent failed - continuing. {0} {1}",
1327 e.Message, e.StackTrace);
1328 }
1329 }
1330 }
872 } 1331 }
873 1332
874 public void TriggerNotAtTargetEvent(uint localID) 1333 public void TriggerNotAtTargetEvent(uint localID)
875 { 1334 {
876 handlerScriptNotAtTargetEvent = OnScriptNotAtTargetEvent; 1335 ScriptNotAtTargetEvent handlerScriptNotAtTargetEvent = OnScriptNotAtTargetEvent;
877 if (handlerScriptNotAtTargetEvent != null) 1336 if (handlerScriptNotAtTargetEvent != null)
878 { 1337 {
879 handlerScriptNotAtTargetEvent(localID); 1338 foreach (ScriptNotAtTargetEvent d in handlerScriptNotAtTargetEvent.GetInvocationList())
880 } 1339 {
1340 try
1341 {
1342 d(localID);
1343 }
1344 catch (Exception e)
1345 {
1346 m_log.ErrorFormat(
1347 "[EVENT MANAGER]: Delegate for TriggerNotAtTargetEvent failed - continuing. {0} {1}",
1348 e.Message, e.StackTrace);
1349 }
1350 }
1351 }
881 } 1352 }
882 1353
883 public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot) 1354 public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot)
884 { 1355 {
885 handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent; 1356 ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent;
886 if (handlerScriptAtRotTargetEvent != null) 1357 if (handlerScriptAtRotTargetEvent != null)
887 { 1358 {
888 handlerScriptAtRotTargetEvent(localID, handle, targetrot, currentrot); 1359 foreach (ScriptAtRotTargetEvent d in handlerScriptAtRotTargetEvent.GetInvocationList())
889 } 1360 {
1361 try
1362 {
1363 d(localID, handle, targetrot, currentrot);
1364 }
1365 catch (Exception e)
1366 {
1367 m_log.ErrorFormat(
1368 "[EVENT MANAGER]: Delegate for TriggerAtRotTargetEvent failed - continuing. {0} {1}",
1369 e.Message, e.StackTrace);
1370 }
1371 }
1372 }
890 } 1373 }
891 1374
892 public void TriggerNotAtRotTargetEvent(uint localID) 1375 public void TriggerNotAtRotTargetEvent(uint localID)
893 { 1376 {
894 handlerScriptNotAtRotTargetEvent = OnScriptNotAtRotTargetEvent; 1377 ScriptNotAtRotTargetEvent handlerScriptNotAtRotTargetEvent = OnScriptNotAtRotTargetEvent;
895 if (handlerScriptNotAtRotTargetEvent != null) 1378 if (handlerScriptNotAtRotTargetEvent != null)
896 { 1379 {
897 handlerScriptNotAtRotTargetEvent(localID); 1380 foreach (ScriptNotAtRotTargetEvent d in handlerScriptNotAtRotTargetEvent.GetInvocationList())
898 } 1381 {
1382 try
1383 {
1384 d(localID);
1385 }
1386 catch (Exception e)
1387 {
1388 m_log.ErrorFormat(
1389 "[EVENT MANAGER]: Delegate for TriggerNotAtRotTargetEvent failed - continuing. {0} {1}",
1390 e.Message, e.StackTrace);
1391 }
1392 }
1393 }
899 } 1394 }
900 1395
901 public void TriggerRequestChangeWaterHeight(float height) 1396 public void TriggerRequestChangeWaterHeight(float height)
902 { 1397 {
903 handlerRequestChangeWaterHeight = OnRequestChangeWaterHeight; 1398 RequestChangeWaterHeight handlerRequestChangeWaterHeight = OnRequestChangeWaterHeight;
904 if (handlerRequestChangeWaterHeight != null) 1399 if (handlerRequestChangeWaterHeight != null)
905 { 1400 {
906 handlerRequestChangeWaterHeight(height); 1401 foreach (RequestChangeWaterHeight d in handlerRequestChangeWaterHeight.GetInvocationList())
907 } 1402 {
1403 try
1404 {
1405 d(height);
1406 }
1407 catch (Exception e)
1408 {
1409 m_log.ErrorFormat(
1410 "[EVENT MANAGER]: Delegate for TriggerRequestChangeWaterHeight failed - continuing. {0} {1}",
1411 e.Message, e.StackTrace);
1412 }
1413 }
1414 }
908 } 1415 }
909 1416
910 public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) 1417 public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar)
911 { 1418 {
912 handlerAvatarKill = OnAvatarKilled; 1419 AvatarKillData handlerAvatarKill = OnAvatarKilled;
913 if (handlerAvatarKill != null) 1420 if (handlerAvatarKill != null)
914 { 1421 {
915 handlerAvatarKill(KillerObjectLocalID, DeadAvatar); 1422 foreach (AvatarKillData d in handlerAvatarKill.GetInvocationList())
916 } 1423 {
1424 try
1425 {
1426 d(KillerObjectLocalID, DeadAvatar);
1427 }
1428 catch (Exception e)
1429 {
1430 m_log.ErrorFormat(
1431 "[EVENT MANAGER]: Delegate for TriggerAvatarKill failed - continuing. {0} {1}",
1432 e.Message, e.StackTrace);
1433 }
1434 }
1435 }
917 } 1436 }
918 1437
919 public void TriggerSignificantClientMovement(IClientAPI client) 1438 public void TriggerSignificantClientMovement(IClientAPI client)
920 { 1439 {
921 handlerSignificantClientMovement = OnSignificantClientMovement; 1440 SignificantClientMovement handlerSignificantClientMovement = OnSignificantClientMovement;
922 if (handlerSignificantClientMovement != null) 1441 if (handlerSignificantClientMovement != null)
923 { 1442 {
924 handlerSignificantClientMovement(client); 1443 foreach (SignificantClientMovement d in handlerSignificantClientMovement.GetInvocationList())
925 } 1444 {
1445 try
1446 {
1447 d(client);
1448 }
1449 catch (Exception e)
1450 {
1451 m_log.ErrorFormat(
1452 "[EVENT MANAGER]: Delegate for TriggerSignificantClientMovement failed - continuing. {0} {1}",
1453 e.Message, e.StackTrace);
1454 }
1455 }
1456 }
926 } 1457 }
927 1458
928 public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) 1459 public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat)
929 { 1460 {
930 handlerChatFromWorld = OnChatFromWorld; 1461 ChatFromWorldEvent handlerChatFromWorld = OnChatFromWorld;
931 if (handlerChatFromWorld != null) 1462 if (handlerChatFromWorld != null)
932 { 1463 {
933 handlerChatFromWorld(sender, chat); 1464 foreach (ChatFromWorldEvent d in handlerChatFromWorld.GetInvocationList())
934 } 1465 {
1466 try
1467 {
1468 d(sender, chat);
1469 }
1470 catch (Exception e)
1471 {
1472 m_log.ErrorFormat(
1473 "[EVENT MANAGER]: Delegate for TriggerOnChatFromWorld failed - continuing. {0} {1}",
1474 e.Message, e.StackTrace);
1475 }
1476 }
1477 }
935 } 1478 }
936 1479
937 public void TriggerOnChatFromClient(Object sender, OSChatMessage chat) 1480 public void TriggerOnChatFromClient(Object sender, OSChatMessage chat)
938 { 1481 {
939 handlerChatFromClient = OnChatFromClient; 1482 ChatFromClientEvent handlerChatFromClient = OnChatFromClient;
940 if (handlerChatFromClient != null) 1483 if (handlerChatFromClient != null)
941 { 1484 {
942 handlerChatFromClient(sender, chat); 1485 foreach (ChatFromClientEvent d in handlerChatFromClient.GetInvocationList())
943 } 1486 {
1487 try
1488 {
1489 d(sender, chat);
1490 }
1491 catch (Exception e)
1492 {
1493 m_log.ErrorFormat(
1494 "[EVENT MANAGER]: Delegate for TriggerOnChatFromClient failed - continuing. {0} {1}",
1495 e.Message, e.StackTrace);
1496 }
1497 }
1498 }
944 } 1499 }
945 1500
946 public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) 1501 public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat)
947 { 1502 {
948 handlerChatBroadcast = OnChatBroadcast; 1503 ChatBroadcastEvent handlerChatBroadcast = OnChatBroadcast;
949 if (handlerChatBroadcast != null) 1504 if (handlerChatBroadcast != null)
950 { 1505 {
951 handlerChatBroadcast(sender, chat); 1506 foreach (ChatBroadcastEvent d in handlerChatBroadcast.GetInvocationList())
952 } 1507 {
1508 try
1509 {
1510 d(sender, chat);
1511 }
1512 catch (Exception e)
1513 {
1514 m_log.ErrorFormat(
1515 "[EVENT MANAGER]: Delegate for TriggerOnChatBroadcast failed - continuing. {0} {1}",
1516 e.Message, e.StackTrace);
1517 }
1518 }
1519 }
953 } 1520 }
954 1521
955 internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed) 1522 internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed)
956 { 1523 {
957 handlerScriptControlEvent = OnScriptControlEvent; 1524 ScriptControlEvent handlerScriptControlEvent = OnScriptControlEvent;
958 if (handlerScriptControlEvent != null) 1525 if (handlerScriptControlEvent != null)
959 { 1526 {
960 handlerScriptControlEvent(p, scriptUUID, avatarID, held, _changed); 1527 foreach (ScriptControlEvent d in handlerScriptControlEvent.GetInvocationList())
961 } 1528 {
1529 try
1530 {
1531 d(p, scriptUUID, avatarID, held, _changed);
1532 }
1533 catch (Exception e)
1534 {
1535 m_log.ErrorFormat(
1536 "[EVENT MANAGER]: Delegate for TriggerControlEvent failed - continuing. {0} {1}",
1537 e.Message, e.StackTrace);
1538 }
1539 }
1540 }
962 } 1541 }
963 1542
964 public void TriggerNoticeNoLandDataFromStorage() 1543 public void TriggerNoticeNoLandDataFromStorage()
965 { 1544 {
966 handlerNoticeNoLandDataFromStorage = OnNoticeNoLandDataFromStorage; 1545 NoticeNoLandDataFromStorage handlerNoticeNoLandDataFromStorage = OnNoticeNoLandDataFromStorage;
967 if (handlerNoticeNoLandDataFromStorage != null) 1546 if (handlerNoticeNoLandDataFromStorage != null)
968 { 1547 {
969 handlerNoticeNoLandDataFromStorage(); 1548 foreach (NoticeNoLandDataFromStorage d in handlerNoticeNoLandDataFromStorage.GetInvocationList())
970 1549 {
971 } 1550 try
1551 {
1552 d();
1553 }
1554 catch (Exception e)
1555 {
1556 m_log.ErrorFormat(
1557 "[EVENT MANAGER]: Delegate for TriggerNoticeNoLandDataFromStorage failed - continuing. {0} {1}",
1558 e.Message, e.StackTrace);
1559 }
1560 }
1561 }
972 } 1562 }
973 1563
974 public void TriggerIncomingLandDataFromStorage(List<LandData> landData) 1564 public void TriggerIncomingLandDataFromStorage(List<LandData> landData)
975 { 1565 {
976 handlerIncomingLandDataFromStorage = OnIncomingLandDataFromStorage; 1566 IncomingLandDataFromStorage handlerIncomingLandDataFromStorage = OnIncomingLandDataFromStorage;
977 if (handlerIncomingLandDataFromStorage != null) 1567 if (handlerIncomingLandDataFromStorage != null)
978 { 1568 {
979 handlerIncomingLandDataFromStorage(landData); 1569 foreach (IncomingLandDataFromStorage d in handlerIncomingLandDataFromStorage.GetInvocationList())
980 1570 {
981 } 1571 try
1572 {
1573 d(landData);
1574 }
1575 catch (Exception e)
1576 {
1577 m_log.ErrorFormat(
1578 "[EVENT MANAGER]: Delegate for TriggerIncomingLandDataFromStorage failed - continuing. {0} {1}",
1579 e.Message, e.StackTrace);
1580 }
1581 }
1582 }
982 } 1583 }
983 1584
984 public void TriggerSetAllowForcefulBan(bool allow) 1585 public void TriggerSetAllowForcefulBan(bool allow)
985 { 1586 {
986 handlerSetAllowForcefulBan = OnSetAllowForcefulBan; 1587 SetAllowForcefulBan handlerSetAllowForcefulBan = OnSetAllowForcefulBan;
987 if (handlerSetAllowForcefulBan != null) 1588 if (handlerSetAllowForcefulBan != null)
988 { 1589 {
989 handlerSetAllowForcefulBan(allow); 1590 foreach (SetAllowForcefulBan d in handlerSetAllowForcefulBan.GetInvocationList())
990 1591 {
991 } 1592 try
1593 {
1594 d(allow);
1595 }
1596 catch (Exception e)
1597 {
1598 m_log.ErrorFormat(
1599 "[EVENT MANAGER]: Delegate for TriggerSetAllowForcefulBan failed - continuing. {0} {1}",
1600 e.Message, e.StackTrace);
1601 }
1602 }
1603 }
992 } 1604 }
993 1605
994 public void TriggerRequestParcelPrimCountUpdate() 1606 public void TriggerRequestParcelPrimCountUpdate()
995 { 1607 {
996 handlerRequestParcelPrimCountUpdate = OnRequestParcelPrimCountUpdate; 1608 RequestParcelPrimCountUpdate handlerRequestParcelPrimCountUpdate = OnRequestParcelPrimCountUpdate;
997 if (handlerRequestParcelPrimCountUpdate != null) 1609 if (handlerRequestParcelPrimCountUpdate != null)
998 { 1610 {
999 handlerRequestParcelPrimCountUpdate(); 1611 foreach (RequestParcelPrimCountUpdate d in handlerRequestParcelPrimCountUpdate.GetInvocationList())
1000 } 1612 {
1613 try
1614 {
1615 d();
1616 }
1617 catch (Exception e)
1618 {
1619 m_log.ErrorFormat(
1620 "[EVENT MANAGER]: Delegate for TriggerRequestParcelPrimCountUpdate failed - continuing. {0} {1}",
1621 e.Message, e.StackTrace);
1622 }
1623 }
1624 }
1001 } 1625 }
1002 1626
1003 public void TriggerParcelPrimCountTainted() 1627 public void TriggerParcelPrimCountTainted()
1004 { 1628 {
1005 handlerParcelPrimCountTainted = OnParcelPrimCountTainted; 1629 ParcelPrimCountTainted handlerParcelPrimCountTainted = OnParcelPrimCountTainted;
1006 if (handlerParcelPrimCountTainted != null) 1630 if (handlerParcelPrimCountTainted != null)
1007 { 1631 {
1008 handlerParcelPrimCountTainted(); 1632 foreach (ParcelPrimCountTainted d in handlerParcelPrimCountTainted.GetInvocationList())
1009 } 1633 {
1634 try
1635 {
1636 d();
1637 }
1638 catch (Exception e)
1639 {
1640 m_log.ErrorFormat(
1641 "[EVENT MANAGER]: Delegate for TriggerParcelPrimCountTainted failed - continuing. {0} {1}",
1642 e.Message, e.StackTrace);
1643 }
1644 }
1645 }
1010 } 1646 }
1011 1647
1012 // this lets us keep track of nasty script events like timer, etc. 1648 // this lets us keep track of nasty script events like timer, etc.
@@ -1029,99 +1665,277 @@ namespace OpenSim.Region.Framework.Scenes
1029 /// <param name="FixedSunHour">The hour 0.0 <= FixedSunHour <= 24.0 at which the sun is fixed at. Sun Hour 0 is sun-rise, when Day/Night ratio is 1:1</param> 1665 /// <param name="FixedSunHour">The hour 0.0 <= FixedSunHour <= 24.0 at which the sun is fixed at. Sun Hour 0 is sun-rise, when Day/Night ratio is 1:1</param>
1030 public void TriggerEstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float FixedSunHour) 1666 public void TriggerEstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float FixedSunHour)
1031 { 1667 {
1032 handlerEstateToolsSunUpdate = OnEstateToolsSunUpdate; 1668 EstateToolsSunUpdate handlerEstateToolsSunUpdate = OnEstateToolsSunUpdate;
1033 if (handlerEstateToolsSunUpdate != null) 1669 if (handlerEstateToolsSunUpdate != null)
1034 { 1670 {
1035 handlerEstateToolsSunUpdate(regionHandle, FixedTime, useEstateTime, FixedSunHour); 1671 foreach (EstateToolsSunUpdate d in handlerEstateToolsSunUpdate.GetInvocationList())
1036 } 1672 {
1673 try
1674 {
1675 d(regionHandle, FixedTime, useEstateTime, FixedSunHour);
1676 }
1677 catch (Exception e)
1678 {
1679 m_log.ErrorFormat(
1680 "[EVENT MANAGER]: Delegate for TriggerEstateToolsSunUpdate failed - continuing. {0} {1}",
1681 e.Message, e.StackTrace);
1682 }
1683 }
1684 }
1037 } 1685 }
1038 1686
1039 public float GetCurrentTimeAsSunLindenHour() 1687 public float GetCurrentTimeAsSunLindenHour()
1040 { 1688 {
1041 handlerCurrentTimeAsLindenSunHour = OnGetCurrentTimeAsLindenSunHour; 1689 SunLindenHour handlerCurrentTimeAsLindenSunHour = OnGetCurrentTimeAsLindenSunHour;
1042 if (handlerCurrentTimeAsLindenSunHour != null) 1690 if (handlerCurrentTimeAsLindenSunHour != null)
1043 { 1691 {
1044 return handlerCurrentTimeAsLindenSunHour(); 1692 foreach (SunLindenHour d in handlerCurrentTimeAsLindenSunHour.GetInvocationList())
1693 {
1694 try
1695 {
1696 return d();
1697 }
1698 catch (Exception e)
1699 {
1700 m_log.ErrorFormat(
1701 "[EVENT MANAGER]: Delegate for TriggerOnAttach failed - continuing. {0} {1}",
1702 e.Message, e.StackTrace);
1703 }
1704 }
1045 } 1705 }
1706
1046 return 6; 1707 return 6;
1047 } 1708 }
1048 1709
1049 public void TriggerOarFileLoaded(Guid requestId, string message) 1710 public void TriggerOarFileLoaded(Guid requestId, string message)
1050 { 1711 {
1051 handlerOarFileLoaded = OnOarFileLoaded; 1712 OarFileLoaded handlerOarFileLoaded = OnOarFileLoaded;
1052 if (handlerOarFileLoaded != null) 1713 if (handlerOarFileLoaded != null)
1053 handlerOarFileLoaded(requestId, message); 1714 {
1715 foreach (OarFileLoaded d in handlerOarFileLoaded.GetInvocationList())
1716 {
1717 try
1718 {
1719 d(requestId, message);
1720 }
1721 catch (Exception e)
1722 {
1723 m_log.ErrorFormat(
1724 "[EVENT MANAGER]: Delegate for TriggerOarFileLoaded failed - continuing. {0} {1}",
1725 e.Message, e.StackTrace);
1726 }
1727 }
1728 }
1054 } 1729 }
1055 1730
1056 public void TriggerOarFileSaved(Guid requestId, string message) 1731 public void TriggerOarFileSaved(Guid requestId, string message)
1057 { 1732 {
1058 handlerOarFileSaved = OnOarFileSaved; 1733 OarFileSaved handlerOarFileSaved = OnOarFileSaved;
1059 if (handlerOarFileSaved != null) 1734 if (handlerOarFileSaved != null)
1060 handlerOarFileSaved(requestId, message); 1735 {
1736 foreach (OarFileSaved d in handlerOarFileSaved.GetInvocationList())
1737 {
1738 try
1739 {
1740 d(requestId, message);
1741 }
1742 catch (Exception e)
1743 {
1744 m_log.ErrorFormat(
1745 "[EVENT MANAGER]: Delegate for TriggerOarFileSaved failed - continuing. {0} {1}",
1746 e.Message, e.StackTrace);
1747 }
1748 }
1749 }
1061 } 1750 }
1062 1751
1063 public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) 1752 public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message)
1064 { 1753 {
1065 handlerEmptyScriptCompileQueue = OnEmptyScriptCompileQueue; 1754 EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = OnEmptyScriptCompileQueue;
1066 if (handlerEmptyScriptCompileQueue != null) 1755 if (handlerEmptyScriptCompileQueue != null)
1067 handlerEmptyScriptCompileQueue(numScriptsFailed, message); 1756 {
1757 foreach (EmptyScriptCompileQueue d in handlerEmptyScriptCompileQueue.GetInvocationList())
1758 {
1759 try
1760 {
1761 d(numScriptsFailed, message);
1762 }
1763 catch (Exception e)
1764 {
1765 m_log.ErrorFormat(
1766 "[EVENT MANAGER]: Delegate for TriggerEmptyScriptCompileQueue failed - continuing. {0} {1}",
1767 e.Message, e.StackTrace);
1768 }
1769 }
1770 }
1068 } 1771 }
1069 1772
1070 public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders) 1773 public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders)
1071 { 1774 {
1072 handlerCollidingStart = OnScriptColliderStart; 1775 ScriptColliding handlerCollidingStart = OnScriptColliderStart;
1073 if (handlerCollidingStart != null) 1776 if (handlerCollidingStart != null)
1074 handlerCollidingStart(localId, colliders); 1777 {
1778 foreach (ScriptColliding d in handlerCollidingStart.GetInvocationList())
1779 {
1780 try
1781 {
1782 d(localId, colliders);
1783 }
1784 catch (Exception e)
1785 {
1786 m_log.ErrorFormat(
1787 "[EVENT MANAGER]: Delegate for TriggerScriptCollidingStart failed - continuing. {0} {1}",
1788 e.Message, e.StackTrace);
1789 }
1790 }
1791 }
1075 } 1792 }
1076 1793
1077 public void TriggerScriptColliding(uint localId, ColliderArgs colliders) 1794 public void TriggerScriptColliding(uint localId, ColliderArgs colliders)
1078 { 1795 {
1079 handlerColliding = OnScriptColliding; 1796 ScriptColliding handlerColliding = OnScriptColliding;
1080 if (handlerColliding != null) 1797 if (handlerColliding != null)
1081 handlerColliding(localId, colliders); 1798 {
1799 foreach (ScriptColliding d in handlerColliding.GetInvocationList())
1800 {
1801 try
1802 {
1803 d(localId, colliders);
1804 }
1805 catch (Exception e)
1806 {
1807 m_log.ErrorFormat(
1808 "[EVENT MANAGER]: Delegate for TriggerScriptColliding failed - continuing. {0} {1}",
1809 e.Message, e.StackTrace);
1810 }
1811 }
1812 }
1082 } 1813 }
1083 1814
1084 public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) 1815 public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders)
1085 { 1816 {
1086 handlerCollidingEnd = OnScriptCollidingEnd; 1817 ScriptColliding handlerCollidingEnd = OnScriptCollidingEnd;
1087 if (handlerCollidingEnd != null) 1818 if (handlerCollidingEnd != null)
1088 handlerCollidingEnd(localId, colliders); 1819 {
1820 foreach (ScriptColliding d in handlerCollidingEnd.GetInvocationList())
1821 {
1822 try
1823 {
1824 d(localId, colliders);
1825 }
1826 catch (Exception e)
1827 {
1828 m_log.ErrorFormat(
1829 "[EVENT MANAGER]: Delegate for TriggerScriptCollidingEnd failed - continuing. {0} {1}",
1830 e.Message, e.StackTrace);
1831 }
1832 }
1833 }
1089 } 1834 }
1090 1835
1091 public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders) 1836 public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders)
1092 { 1837 {
1093 handlerLandCollidingStart = OnScriptLandColliderStart; 1838 ScriptColliding handlerLandCollidingStart = OnScriptLandColliderStart;
1094 if (handlerLandCollidingStart != null) 1839 if (handlerLandCollidingStart != null)
1095 handlerLandCollidingStart(localId, colliders); 1840 {
1841 foreach (ScriptColliding d in handlerLandCollidingStart.GetInvocationList())
1842 {
1843 try
1844 {
1845 d(localId, colliders);
1846 }
1847 catch (Exception e)
1848 {
1849 m_log.ErrorFormat(
1850 "[EVENT MANAGER]: Delegate for TriggerScriptLandCollidingStart failed - continuing. {0} {1}",
1851 e.Message, e.StackTrace);
1852 }
1853 }
1854 }
1096 } 1855 }
1097 1856
1098 public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders) 1857 public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders)
1099 { 1858 {
1100 handlerLandColliding = OnScriptLandColliding; 1859 ScriptColliding handlerLandColliding = OnScriptLandColliding;
1101 if (handlerLandColliding != null) 1860 if (handlerLandColliding != null)
1102 handlerLandColliding(localId, colliders); 1861 {
1862 foreach (ScriptColliding d in handlerLandColliding.GetInvocationList())
1863 {
1864 try
1865 {
1866 d(localId, colliders);
1867 }
1868 catch (Exception e)
1869 {
1870 m_log.ErrorFormat(
1871 "[EVENT MANAGER]: Delegate for TriggerScriptLandColliding failed - continuing. {0} {1}",
1872 e.Message, e.StackTrace);
1873 }
1874 }
1875 }
1103 } 1876 }
1104 1877
1105 public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders) 1878 public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders)
1106 { 1879 {
1107 handlerLandCollidingEnd = OnScriptLandColliderEnd; 1880 ScriptColliding handlerLandCollidingEnd = OnScriptLandColliderEnd;
1108 if (handlerLandCollidingEnd != null) 1881 if (handlerLandCollidingEnd != null)
1109 handlerLandCollidingEnd(localId, colliders); 1882 {
1883 foreach (ScriptColliding d in handlerLandCollidingEnd.GetInvocationList())
1884 {
1885 try
1886 {
1887 d(localId, colliders);
1888 }
1889 catch (Exception e)
1890 {
1891 m_log.ErrorFormat(
1892 "[EVENT MANAGER]: Delegate for TriggerScriptLandCollidingEnd failed - continuing. {0} {1}",
1893 e.Message, e.StackTrace);
1894 }
1895 }
1896 }
1110 } 1897 }
1111 1898
1112 public void TriggerSetRootAgentScene(UUID agentID, Scene scene) 1899 public void TriggerSetRootAgentScene(UUID agentID, Scene scene)
1113 { 1900 {
1114 handlerSetRootAgentScene = OnSetRootAgentScene; 1901 OnSetRootAgentSceneDelegate handlerSetRootAgentScene = OnSetRootAgentScene;
1115 if (handlerSetRootAgentScene != null) 1902 if (handlerSetRootAgentScene != null)
1116 handlerSetRootAgentScene(agentID, scene); 1903 {
1904 foreach (OnSetRootAgentSceneDelegate d in handlerSetRootAgentScene.GetInvocationList())
1905 {
1906 try
1907 {
1908 d(agentID, scene);
1909 }
1910 catch (Exception e)
1911 {
1912 m_log.ErrorFormat(
1913 "[EVENT MANAGER]: Delegate for TriggerSetRootAgentScene failed - continuing. {0} {1}",
1914 e.Message, e.StackTrace);
1915 }
1916 }
1917 }
1117 } 1918 }
1118 1919
1119 public void TriggerOnRegionUp(GridRegion otherRegion) 1920 public void TriggerOnRegionUp(GridRegion otherRegion)
1120 { 1921 {
1121 handlerOnRegionUp = OnRegionUp; 1922 RegionUp handlerOnRegionUp = OnRegionUp;
1122 if (handlerOnRegionUp != null) 1923 if (handlerOnRegionUp != null)
1123 handlerOnRegionUp(otherRegion); 1924 {
1925 foreach (RegionUp d in handlerOnRegionUp.GetInvocationList())
1926 {
1927 try
1928 {
1929 d(otherRegion);
1930 }
1931 catch (Exception e)
1932 {
1933 m_log.ErrorFormat(
1934 "[EVENT MANAGER]: Delegate for TriggerOnRegionUp failed - continuing. {0} {1}",
1935 e.Message, e.StackTrace);
1936 }
1937 }
1938 }
1124 } 1939 }
1125
1126 } 1940 }
1127} 1941} \ No newline at end of file