Make client event handlers for money only work on root agents
							parent
							
								
									28c25d8477
								
							
						
					
					
						commit
						a8913141c0
					
				| 
						 | 
				
			
			@ -177,9 +177,37 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
 | 
			
		|||
                scene.EventManager.OnClientClosed += ClientLoggedOut;
 | 
			
		||||
                scene.EventManager.OnValidateLandBuy += ValidateLandBuy;
 | 
			
		||||
                scene.EventManager.OnLandBuy += processLandBuy;
 | 
			
		||||
                scene.EventManager.OnMakeRootAgent += OnMakeRootAgent;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void OnMakeRootAgent(ScenePresence presence)
 | 
			
		||||
        {
 | 
			
		||||
            // Do this only for root agents
 | 
			
		||||
            // Some implementations register $$ for
 | 
			
		||||
            // child agents, then that never goes away
 | 
			
		||||
            // We will send a zero balance when they are
 | 
			
		||||
            // made root.
 | 
			
		||||
            //
 | 
			
		||||
            // Modules overriding this should only deal with
 | 
			
		||||
            // root agents as well.
 | 
			
		||||
            //
 | 
			
		||||
            IClientAPI client = presence.ControllingClient;
 | 
			
		||||
 | 
			
		||||
            client.OnEconomyDataRequest += EconomyDataRequestHandler;
 | 
			
		||||
            client.OnMoneyBalanceRequest += SendMoneyBalance;
 | 
			
		||||
            client.OnRequestPayPrice += requestPayPrice;
 | 
			
		||||
            client.OnObjectBuy += ObjectBuy;
 | 
			
		||||
            client.OnLogout += ClientClosed;
 | 
			
		||||
 | 
			
		||||
            client.SendMoneyBalance (UUID.Random(), true, new byte[0], 0);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void HandleSceneEventManagerOnMakeRootAgent (ScenePresence presence)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void RemoveRegion(Scene scene)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -277,13 +305,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
 | 
			
		|||
        private void OnNewClient(IClientAPI client)
 | 
			
		||||
        {
 | 
			
		||||
            GetClientFunds(client);
 | 
			
		||||
            // Moved the event registrations to fire them when
 | 
			
		||||
            // the agent becomes root
 | 
			
		||||
 | 
			
		||||
            // Subscribe to Money messages
 | 
			
		||||
            client.OnEconomyDataRequest += EconomyDataRequestHandler;
 | 
			
		||||
            client.OnMoneyBalanceRequest += SendMoneyBalance;
 | 
			
		||||
            client.OnRequestPayPrice += requestPayPrice;
 | 
			
		||||
            client.OnObjectBuy += ObjectBuy;
 | 
			
		||||
            client.OnLogout += ClientClosed;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue