move currency-base-uri simulator feature to global settings, based on [Economy] economy setting on opensim.ini. make sampleMoney honour it
							parent
							
								
									aafc6579a1
								
							
						
					
					
						commit
						c15869438c
					
				|  | @ -84,6 +84,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|         static private UUID m_scriptSyntaxID = UUID.Zero; | ||||
|         static private byte[] m_scriptSyntaxXML = null; | ||||
| 
 | ||||
|         static private string m_economyURL = null; | ||||
| 
 | ||||
|         #region ISharedRegionModule Members | ||||
| 
 | ||||
|         public void Initialise(IConfigSource source) | ||||
|  | @ -115,6 +117,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|                 m_doScriptSyntax = config.GetBoolean("ScriptSyntax", m_doScriptSyntax); | ||||
|             } | ||||
| 
 | ||||
|             m_economyURL = Util.GetConfigVarFromSections<string>(source, "economy", new string[] { "Economy", "GridInfo" }); | ||||
| 
 | ||||
|             ReadScriptSyntax(); | ||||
|             AddDefaultFeatures(); | ||||
|         } | ||||
|  | @ -197,17 +201,18 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|                 extrasMap["AnimationSet"] = true; | ||||
| 
 | ||||
|                 // TODO: Take these out of here into their respective modules, like map-server-url | ||||
|                 if (m_SearchURL != string.Empty) | ||||
|                 if (!string.IsNullOrWhiteSpace(m_SearchURL)) | ||||
|                     extrasMap["search-server-url"] = m_SearchURL; | ||||
|                 if (!string.IsNullOrEmpty(m_DestinationGuideURL)) | ||||
|                     extrasMap["destination-guide-url"] = m_DestinationGuideURL; | ||||
|                 if (m_ExportSupported) | ||||
|                     extrasMap["ExportSupported"] = true; | ||||
|                 if (m_GridURL != string.Empty) | ||||
|                 if (!string.IsNullOrWhiteSpace(m_GridURL)) | ||||
|                     extrasMap["GridURL"] = m_GridURL; | ||||
|                 if (m_GridName != string.Empty) | ||||
|                 if (!string.IsNullOrWhiteSpace(m_GridName)) | ||||
|                     extrasMap["GridName"] = m_GridName; | ||||
| 
 | ||||
|                 if(!string.IsNullOrWhiteSpace(m_economyURL)) | ||||
|                     extrasMap["currency-base-uri"] = Util.AppendEndSlash(m_economyURL); | ||||
|                 if (extrasMap.Count > 0) | ||||
|                     m_features["OpenSimExtras"] = extrasMap; | ||||
|             } | ||||
|  | @ -263,6 +268,19 @@ namespace OpenSim.Region.ClientStack.Linden | |||
|                 return m_features.TryGetValue(name, out value); | ||||
|         } | ||||
| 
 | ||||
|         public bool TryGetOpenSimExtraFeature(string name, out OSD value) | ||||
|         { | ||||
|             value = null; | ||||
|             lock (m_features) | ||||
|             { | ||||
|                 if (!m_features.TryGetValue("OpenSimExtras", out OSD extra)) | ||||
|                     return false; | ||||
|                 if(!(extra is OSDMap)) | ||||
|                     return false; | ||||
|                 return (extra as OSDMap).TryGetValue(name, out value); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public OSDMap GetFeatures() | ||||
|         { | ||||
|             lock (m_features) | ||||
|  |  | |||
|  | @ -43,6 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces | |||
|         void AddOpenSimExtraFeature(string name, OSD value); | ||||
|         bool RemoveFeature(string name); | ||||
|         bool TryGetFeature(string name, out OSD value); | ||||
|         bool TryGetOpenSimExtraFeature(string name, out OSD value); | ||||
|         OSDMap GetFeatures(); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -67,7 +67,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
|         // private UUID EconomyBaseAccount = UUID.Zero; | ||||
| 
 | ||||
|         private Dictionary<string, XmlRpcMethod> m_rpcHandlers; | ||||
|         private string m_economyURL; | ||||
|         private string m_localEconomyURL; | ||||
| 
 | ||||
|         private float EnergyEfficiency = 1f; | ||||
|         // private ObjectPaid handerOnObjectPaid; | ||||
|  | @ -142,10 +142,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
|                 { | ||||
|                     if (m_scenel.Count == 0) | ||||
|                     { | ||||
|                         m_economyURL = scene.RegionInfo.ServerURI; | ||||
|                         if(!string.IsNullOrWhiteSpace(m_economyURL) && m_economyURL[m_economyURL.Length - 1] == '/') | ||||
|                             m_economyURL = m_economyURL.Substring(0, m_economyURL.Length - 1); | ||||
| 
 | ||||
|                         m_localEconomyURL = scene.RegionInfo.ServerURI; | ||||
|                         m_rpcHandlers = new Dictionary<string, XmlRpcMethod>(); | ||||
|                         m_rpcHandlers.Add("getCurrencyQuote", quote_func); | ||||
|                         m_rpcHandlers.Add("buyCurrency", buy_func); | ||||
|  | @ -186,10 +183,12 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
|             if (!m_enabled) | ||||
|                 return; | ||||
| 
 | ||||
|             if (!string.IsNullOrWhiteSpace(m_economyURL)) | ||||
|             ISimulatorFeaturesModule fm = scene.RequestModuleInterface<ISimulatorFeaturesModule>(); | ||||
|             if (fm != null && !string.IsNullOrWhiteSpace(m_localEconomyURL)) | ||||
|             { | ||||
|                 ISimulatorFeaturesModule fm = scene.RequestModuleInterface<ISimulatorFeaturesModule>(); | ||||
|                 fm?.AddOpenSimExtraFeature("currency-base-uri", m_economyURL); | ||||
|                 if(fm.TryGetOpenSimExtraFeature("currency-base-uri", out OSD tmp)) | ||||
|                     return; | ||||
|                 fm.AddOpenSimExtraFeature("currency-base-uri", Util.AppendEndSlash(m_localEconomyURL)); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -278,7 +277,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
|                 m_enabled = false; | ||||
|                 return; | ||||
|             } | ||||
|              | ||||
| 
 | ||||
|             if(economyConfig == null) | ||||
|                 return; | ||||
| 
 | ||||
|  | @ -495,6 +494,8 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
| 
 | ||||
|             Hashtable currencyResponse = new Hashtable(); | ||||
|             currencyResponse.Add("estimatedCost", 0); | ||||
|             currencyResponse.Add("estimatedLocalCost", " 0 Euros"); | ||||
|              | ||||
|             currencyResponse.Add("currencyBuy", amount); | ||||
| 
 | ||||
|             Hashtable quoteResponse = new Hashtable(); | ||||
|  | @ -502,6 +503,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule | |||
|             quoteResponse.Add("currency", currencyResponse); | ||||
|             quoteResponse.Add("confirm", "asdfad9fj39ma9fj"); | ||||
| 
 | ||||
|             //quoteResponse.Add("success", false); | ||||
|             //quoteResponse.Add("errorMessage", "There is currency"); | ||||
|             //quoteResponse.Add("errorURI", "http://opensimulator.org"); | ||||
|             XmlRpcResponse returnval = new XmlRpcResponse(); | ||||
|             returnval.Value = quoteResponse; | ||||
|             return returnval; | ||||
|  |  | |||
|  | @ -916,6 +916,10 @@ | |||
|     ; To use other modules you need to override this setting | ||||
|     ; economymodule = BetaGridLikeMoneyModule | ||||
| 
 | ||||
|     ; the url of the economy service. | ||||
|     ; this must match the grid economy setting (also known as helperURI or CurrencyServer, etc) | ||||
|     ; economy = https://the.currency.machine.fdqn:port/folder/folder... | ||||
| 
 | ||||
|     ;# {SellEnabled} {} {Enable selling for 0?} {true false} true | ||||
|     ; The default economy module only implements just enough to allow free actions (transfer of objects, etc). | ||||
|     ; There is no intention to implement anything further in core OpenSimulator. | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 UbitUmarov
						UbitUmarov