aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorDiva Canto2010-07-02 06:36:08 -0700
committerDiva Canto2010-07-02 06:36:08 -0700
commit79c1eb1e394c658bf2f0af0f1e20a9c5f8ea1b53 (patch)
tree94689bae9d0813616dc9f487824d17d8954f0414 /OpenSim
parentFixes mantis #4782 (diff)
parentClean up IMoneyModule and adjust the other modules to the changes (diff)
downloadopensim-SC-79c1eb1e394c658bf2f0af0f1e20a9c5f8ea1b53.zip
opensim-SC-79c1eb1e394c658bf2f0af0f1e20a9c5f8ea1b53.tar.gz
opensim-SC-79c1eb1e394c658bf2f0af0f1e20a9c5f8ea1b53.tar.bz2
opensim-SC-79c1eb1e394c658bf2f0af0f1e20a9c5f8ea1b53.tar.xz
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Capabilities/Caps.cs2
-rw-r--r--OpenSim/Framework/IMoneyModule.cs30
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs2
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs4
-rw-r--r--OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs52
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs6
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginResponse.cs19
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginService.cs4
11 files changed, 53 insertions, 74 deletions
diff --git a/OpenSim/Framework/Capabilities/Caps.cs b/OpenSim/Framework/Capabilities/Caps.cs
index 62a1e17..da953bb 100644
--- a/OpenSim/Framework/Capabilities/Caps.cs
+++ b/OpenSim/Framework/Capabilities/Caps.cs
@@ -814,7 +814,7 @@ namespace OpenSim.Framework.Capabilities
814 814
815 if (mm != null) 815 if (mm != null)
816 { 816 {
817 if (!mm.UploadCovered(client)) 817 if (!mm.UploadCovered(client, mm.UploadCharge))
818 { 818 {
819 if (client != null) 819 if (client != null)
820 client.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); 820 client.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false);
diff --git a/OpenSim/Framework/IMoneyModule.cs b/OpenSim/Framework/IMoneyModule.cs
index 3480960..3d4873d 100644
--- a/OpenSim/Framework/IMoneyModule.cs
+++ b/OpenSim/Framework/IMoneyModule.cs
@@ -35,35 +35,15 @@ namespace OpenSim.Framework
35 bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID, 35 bool ObjectGiveMoney(UUID objectID, UUID fromID, UUID toID,
36 int amount); 36 int amount);
37 37
38 int GetBalance(IClientAPI client); 38 int GetBalance(UUID agentID);
39 void ApplyUploadCharge(UUID agentID); 39 bool UploadCovered(IClientAPI client, int amount);
40 bool UploadCovered(IClientAPI client);
41 void ApplyGroupCreationCharge(UUID agentID);
42 bool GroupCreationCovered(IClientAPI client);
43 bool AmountCovered(IClientAPI client, int amount); 40 bool AmountCovered(IClientAPI client, int amount);
44 void ApplyCharge(UUID agentID, int amount, string text); 41 void ApplyCharge(UUID agentID, int amount, string text);
42 void ApplyUploadCharge(UUID agentID, int amount, string text);
45 43
46 EconomyData GetEconomyData(); 44 int UploadCharge { get; }
45 int GroupCreationCharge { get; }
47 46
48 event ObjectPaid OnObjectPaid; 47 event ObjectPaid OnObjectPaid;
49 } 48 }
50
51 public struct EconomyData
52 {
53 public int ObjectCapacity;
54 public int ObjectCount;
55 public int PriceEnergyUnit;
56 public int PriceGroupCreate;
57 public int PriceObjectClaim;
58 public float PriceObjectRent;
59 public float PriceObjectScaleFactor;
60 public int PriceParcelClaim;
61 public float PriceParcelClaimFactor;
62 public int PriceParcelRent;
63 public int PricePublicObjectDecay;
64 public int PricePublicObjectDelete;
65 public int PriceRentLight;
66 public int PriceUpload;
67 public int TeleportMinPrice;
68 }
69} 49}
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
index 7e08ecf..ae31050 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetTransactionModule.cs
@@ -243,7 +243,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
243 243
244 if (mm != null) 244 if (mm != null)
245 { 245 {
246 if (!mm.UploadCovered(remoteClient)) 246 if (!mm.UploadCovered(remoteClient, mm.UploadCharge))
247 { 247 {
248 remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false); 248 remoteClient.SendAgentAlertMessage("Unable to upload asset. Insufficient funds.", false);
249 return; 249 return;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index f9da341..33173dd 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -73,7 +73,7 @@ namespace OpenSim.Region.Framework.Scenes
73 IMoneyModule money=RequestModuleInterface<IMoneyModule>(); 73 IMoneyModule money=RequestModuleInterface<IMoneyModule>();
74 if (money != null) 74 if (money != null)
75 { 75 {
76 money.ApplyUploadCharge(agentID); 76 money.ApplyUploadCharge(agentID, money.UploadCharge, "Asset upload");
77 } 77 }
78 78
79 AddInventoryItem(agentID, item); 79 AddInventoryItem(agentID, item);
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index 56c0d98..3f15b69 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -722,11 +722,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
722 if (money != null) 722 if (money != null)
723 { 723 {
724 // do the transaction, that is if the agent has got sufficient funds 724 // do the transaction, that is if the agent has got sufficient funds
725 if (!money.GroupCreationCovered(remoteClient)) { 725 if (!money.AmountCovered(remoteClient, money.GroupCreationCharge)) {
726 remoteClient.SendCreateGroupReply(UUID.Zero, false, "You have got issuficient funds to create a group."); 726 remoteClient.SendCreateGroupReply(UUID.Zero, false, "You have got issuficient funds to create a group.");
727 return UUID.Zero; 727 return UUID.Zero;
728 } 728 }
729 money.ApplyGroupCreationCharge(GetRequestingAgentID(remoteClient)); 729 money.ApplyCharge(GetRequestingAgentID(remoteClient), money.GroupCreationCharge, "Group Creation");
730 } 730 }
731 UUID groupID = m_groupData.CreateGroup(GetRequestingAgentID(remoteClient), name, charter, showInList, insigniaID, membershipFee, openEnrollment, allowPublish, maturePublish, GetRequestingAgentID(remoteClient)); 731 UUID groupID = m_groupData.CreateGroup(GetRequestingAgentID(remoteClient), name, charter, showInList, insigniaID, membershipFee, openEnrollment, allowPublish, maturePublish, GetRequestingAgentID(remoteClient));
732 732
diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
index b9a75cc..6f5ef9e 100644
--- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
+++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs
@@ -108,6 +108,16 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
108 108
109 public event ObjectPaid OnObjectPaid; 109 public event ObjectPaid OnObjectPaid;
110 110
111 public int UploadCharge
112 {
113 get { return 0; }
114 }
115
116 public int GroupCreationCharge
117 {
118 get { return 0; }
119 }
120
111 /// <summary> 121 /// <summary>
112 /// Startup 122 /// Startup
113 /// </summary> 123 /// </summary>
@@ -188,15 +198,10 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
188 // Please do not refactor these to be just one method 198 // Please do not refactor these to be just one method
189 // Existing implementations need the distinction 199 // Existing implementations need the distinction
190 // 200 //
191 public void ApplyUploadCharge(UUID agentID) 201 public void ApplyCharge(UUID agentID, int amount, string text)
192 {
193 }
194
195 public void ApplyGroupCreationCharge(UUID agentID)
196 { 202 {
197 } 203 }
198 204 public void ApplyUploadCharge(UUID agentID, int amount, string text)
199 public void ApplyCharge(UUID agentID, int amount, string text)
200 { 205 {
201 } 206 }
202 207
@@ -268,27 +273,6 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
268 273
269 } 274 }
270 275
271 public EconomyData GetEconomyData()
272 {
273 EconomyData edata = new EconomyData();
274 edata.ObjectCapacity = ObjectCapacity;
275 edata.ObjectCount = ObjectCount;
276 edata.PriceEnergyUnit = PriceEnergyUnit;
277 edata.PriceGroupCreate = PriceGroupCreate;
278 edata.PriceObjectClaim = PriceObjectClaim;
279 edata.PriceObjectRent = PriceObjectRent;
280 edata.PriceObjectScaleFactor = PriceObjectScaleFactor;
281 edata.PriceParcelClaim = PriceParcelClaim;
282 edata.PriceParcelClaimFactor = PriceParcelClaimFactor;
283 edata.PriceParcelRent = PriceParcelRent;
284 edata.PricePublicObjectDecay = PricePublicObjectDecay;
285 edata.PricePublicObjectDelete = PricePublicObjectDelete;
286 edata.PriceRentLight = PriceRentLight;
287 edata.PriceUpload = PriceUpload;
288 edata.TeleportMinPrice = TeleportMinPrice;
289 return edata;
290 }
291
292 private void GetClientFunds(IClientAPI client) 276 private void GetClientFunds(IClientAPI client)
293 { 277 {
294 CheckExistAndRefreshFunds(client.AgentId); 278 CheckExistAndRefreshFunds(client.AgentId);
@@ -790,7 +774,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
790 //m_log.Info("[FRIEND]: " + avatar.Name + " status:" + (!avatar.IsChildAgent).ToString()); 774 //m_log.Info("[FRIEND]: " + avatar.Name + " status:" + (!avatar.IsChildAgent).ToString());
791 } 775 }
792 776
793 public int GetBalance(IClientAPI client) 777 public int GetBalance(UUID agentID)
794 { 778 {
795 return 0; 779 return 0;
796 } 780 }
@@ -798,16 +782,10 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
798 // Please do not refactor these to be just one method 782 // Please do not refactor these to be just one method
799 // Existing implementations need the distinction 783 // Existing implementations need the distinction
800 // 784 //
801 public bool UploadCovered(IClientAPI client) 785 public bool UploadCovered(IClientAPI client, int amount)
802 { 786 {
803 return AmountCovered(client, PriceUpload); 787 return true;
804 }
805
806 public bool GroupCreationCovered(IClientAPI client)
807 {
808 return AmountCovered(client, PriceGroupCreate);
809 } 788 }
810
811 public bool AmountCovered(IClientAPI client, int amount) 789 public bool AmountCovered(IClientAPI client, int amount)
812 { 790 {
813 return true; 791 return true;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 712bd7d..0a8d7cb 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4950,7 +4950,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4950 case ',': 4950 case ',':
4951 if (parens == 0) 4951 if (parens == 0)
4952 { 4952 {
4953 result.Add(src.Substring(start,length).Trim()); 4953 result.Add(new LSL_String(src.Substring(start,length).Trim()));
4954 start += length+1; 4954 start += length+1;
4955 length = 0; 4955 length = 0;
4956 } 4956 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index 1ea52c5..941c761 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -663,13 +663,13 @@ namespace OpenSim.Region.ScriptEngine.Shared
663 Object[] ret; 663 Object[] ret;
664 664
665 if (start < 0) 665 if (start < 0)
666 start=m_data.Length-start; 666 start=m_data.Length+start;
667 667
668 if (start < 0) 668 if (start < 0)
669 start=0; 669 start=0;
670 670
671 if (end < 0) 671 if (end < 0)
672 end=m_data.Length-end; 672 end=m_data.Length+end;
673 if (end < 0) 673 if (end < 0)
674 end=0; 674 end=0;
675 675
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 808cf82..bc5df11 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -770,8 +770,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
770 item.Name, startParam, postOnRez, 770 item.Name, startParam, postOnRez,
771 stateSource, m_MaxScriptQueue); 771 stateSource, m_MaxScriptQueue);
772 772
773 m_log.DebugFormat("[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}", 773 m_log.DebugFormat(
774 part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID, part.ParentGroup.RootPart.AbsolutePosition.ToString()); 774 "[XEngine] Loaded script {0}.{1}, script UUID {2}, prim UUID {3} @ {4}.{5}",
775 part.ParentGroup.RootPart.Name, item.Name, assetID, part.UUID,
776 part.ParentGroup.RootPart.AbsolutePosition, part.ParentGroup.Scene.RegionInfo.RegionName);
775 777
776 if (presence != null) 778 if (presence != null)
777 { 779 {
diff --git a/OpenSim/Services/LLLoginService/LLLoginResponse.cs b/OpenSim/Services/LLLoginService/LLLoginResponse.cs
index 54d53fb..866e3a3 100644
--- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs
@@ -170,6 +170,9 @@ namespace OpenSim.Services.LLLoginService
170 private string firstname; 170 private string firstname;
171 private string lastname; 171 private string lastname;
172 172
173 // Web map
174 private string mapTileURL;
175
173 // Error Flags 176 // Error Flags
174 private string errorReason; 177 private string errorReason;
175 private string errorMessage; 178 private string errorMessage;
@@ -218,7 +221,7 @@ namespace OpenSim.Services.LLLoginService
218 public LLLoginResponse(UserAccount account, AgentCircuitData aCircuit, GridUserInfo pinfo, 221 public LLLoginResponse(UserAccount account, AgentCircuitData aCircuit, GridUserInfo pinfo,
219 GridRegion destination, List<InventoryFolderBase> invSkel, FriendInfo[] friendsList, ILibraryService libService, 222 GridRegion destination, List<InventoryFolderBase> invSkel, FriendInfo[] friendsList, ILibraryService libService,
220 string where, string startlocation, Vector3 position, Vector3 lookAt, List<InventoryItemBase> gestures, string message, 223 string where, string startlocation, Vector3 position, Vector3 lookAt, List<InventoryItemBase> gestures, string message,
221 GridRegion home, IPEndPoint clientIP) 224 GridRegion home, IPEndPoint clientIP, string mapTileURL)
222 : this() 225 : this()
223 { 226 {
224 FillOutInventoryData(invSkel, libService); 227 FillOutInventoryData(invSkel, libService);
@@ -234,6 +237,7 @@ namespace OpenSim.Services.LLLoginService
234 Message = message; 237 Message = message;
235 BuddList = ConvertFriendListItem(friendsList); 238 BuddList = ConvertFriendListItem(friendsList);
236 StartLocation = where; 239 StartLocation = where;
240 MapTileURL = mapTileURL;
237 241
238 FillOutHomeData(pinfo, home); 242 FillOutHomeData(pinfo, home);
239 LookAt = String.Format("[r{0},r{1},r{2}]", lookAt.X, lookAt.Y, lookAt.Z); 243 LookAt = String.Format("[r{0},r{1},r{2}]", lookAt.X, lookAt.Y, lookAt.Z);
@@ -405,6 +409,7 @@ namespace OpenSim.Services.LLLoginService
405 InitialOutfitHash["folder_name"] = "Nightclub Female"; 409 InitialOutfitHash["folder_name"] = "Nightclub Female";
406 InitialOutfitHash["gender"] = "female"; 410 InitialOutfitHash["gender"] = "female";
407 initialOutfit.Add(InitialOutfitHash); 411 initialOutfit.Add(InitialOutfitHash);
412 mapTileURL = String.Empty;
408 } 413 }
409 414
410 415
@@ -468,6 +473,9 @@ namespace OpenSim.Services.LLLoginService
468 responseData["region_x"] = (Int32)(RegionX); 473 responseData["region_x"] = (Int32)(RegionX);
469 responseData["region_y"] = (Int32)(RegionY); 474 responseData["region_y"] = (Int32)(RegionY);
470 475
476 if (mapTileURL != String.Empty)
477 responseData["map-server-url"] = mapTileURL;
478
471 if (m_buddyList != null) 479 if (m_buddyList != null)
472 { 480 {
473 responseData["buddy-list"] = m_buddyList.ToArray(); 481 responseData["buddy-list"] = m_buddyList.ToArray();
@@ -564,6 +572,9 @@ namespace OpenSim.Services.LLLoginService
564 map["region_x"] = OSD.FromInteger(RegionX); 572 map["region_x"] = OSD.FromInteger(RegionX);
565 map["region_y"] = OSD.FromInteger(RegionY); 573 map["region_y"] = OSD.FromInteger(RegionY);
566 574
575 if (mapTileURL != String.Empty)
576 map["map-server-url"] = OSD.FromString(mapTileURL);
577
567 if (m_buddyList != null) 578 if (m_buddyList != null)
568 { 579 {
569 map["buddy-list"] = ArrayListToOSDArray(m_buddyList.ToArray()); 580 map["buddy-list"] = ArrayListToOSDArray(m_buddyList.ToArray());
@@ -915,6 +926,12 @@ namespace OpenSim.Services.LLLoginService
915 set { home = value; } 926 set { home = value; }
916 } 927 }
917 928
929 public string MapTileURL
930 {
931 get { return mapTileURL; }
932 set { mapTileURL = value; }
933 }
934
918 public string Message 935 public string Message
919 { 936 {
920 get { return welcomeMessage; } 937 get { return welcomeMessage; }
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index 00fffff..f4e045c 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -73,6 +73,7 @@ namespace OpenSim.Services.LLLoginService
73 protected int m_MinLoginLevel; 73 protected int m_MinLoginLevel;
74 protected string m_GatekeeperURL; 74 protected string m_GatekeeperURL;
75 protected bool m_AllowRemoteSetLoginLevel; 75 protected bool m_AllowRemoteSetLoginLevel;
76 protected string m_MapTileURL;
76 77
77 IConfig m_LoginServerConfig; 78 IConfig m_LoginServerConfig;
78 79
@@ -100,6 +101,7 @@ namespace OpenSim.Services.LLLoginService
100 m_AllowRemoteSetLoginLevel = m_LoginServerConfig.GetBoolean("AllowRemoteSetLoginLevel", false); 101 m_AllowRemoteSetLoginLevel = m_LoginServerConfig.GetBoolean("AllowRemoteSetLoginLevel", false);
101 m_MinLoginLevel = m_LoginServerConfig.GetInt("MinLoginLevel", 0); 102 m_MinLoginLevel = m_LoginServerConfig.GetInt("MinLoginLevel", 0);
102 m_GatekeeperURL = m_LoginServerConfig.GetString("GatekeeperURI", string.Empty); 103 m_GatekeeperURL = m_LoginServerConfig.GetString("GatekeeperURI", string.Empty);
104 m_MapTileURL = m_LoginServerConfig.GetString("MapTileURL", string.Empty);
103 105
104 // These are required; the others aren't 106 // These are required; the others aren't
105 if (accountService == string.Empty || authService == string.Empty) 107 if (accountService == string.Empty || authService == string.Empty)
@@ -356,7 +358,7 @@ namespace OpenSim.Services.LLLoginService
356 // Finally, fill out the response and return it 358 // Finally, fill out the response and return it
357 // 359 //
358 LLLoginResponse response = new LLLoginResponse(account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, 360 LLLoginResponse response = new LLLoginResponse(account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService,
359 where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP); 361 where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, m_MapTileURL);
360 362
361 m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to client."); 363 m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to client.");
362 return response; 364 return response;