From a8913141c081202eb1f988901a4ac0988bbd72a2 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Tue, 24 May 2011 16:03:01 -0400 Subject: Make client event handlers for money only work on root agents --- .../World/MoneyModule/SampleMoneyModule.cs | 36 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs') diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs index b84a34d..952e797 100644 --- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs +++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs @@ -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; } /// -- cgit v1.1