aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorUbitUmarov2018-11-12 22:54:37 +0000
committerUbitUmarov2018-11-12 22:54:37 +0000
commitd31854ee3ca6e6c1f62a96f118f2d70a045a3b7d (patch)
tree7c728ba3a77b7dff8eb88a3205296b68cb5829e9 /OpenSim
parentFSAssets: truncate assets name and description to max size (diff)
downloadopensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.zip
opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.gz
opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.bz2
opensim-SC-d31854ee3ca6e6c1f62a96f118f2d70a045a3b7d.tar.xz
BuySell: a few changes on sell copy
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs50
1 files changed, 26 insertions, 24 deletions
diff --git a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
index 6a8f4c0..76ac7ed 100644
--- a/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
+++ b/OpenSim/Region/CoreModules/World/Objects/BuySell/BuySellModule.cs
@@ -112,17 +112,17 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
112 112
113 public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice) 113 public bool BuyObject(IClientAPI remoteClient, UUID categoryID, uint localID, byte saleType, int salePrice)
114 { 114 {
115 SceneObjectPart part = m_scene.GetSceneObjectPart(localID); 115 SceneObjectPart rootpart = m_scene.GetSceneObjectPart(localID);
116 116
117 if (part == null) 117 if (rootpart == null)
118 return false; 118 return false;
119 119
120 SceneObjectGroup group = part.ParentGroup; 120 SceneObjectGroup group = rootpart.ParentGroup;
121 if(group == null || group.IsDeleted || group.inTransit) 121 if(group == null || group.IsDeleted || group.inTransit)
122 return false; 122 return false;
123 123
124 // make sure we are not buying a child part 124 // make sure we are not buying a child part
125 part = group.RootPart; 125 rootpart = group.RootPart;
126 126
127 switch (saleType) 127 switch (saleType)
128 { 128 {
@@ -149,15 +149,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
149 group.InvalidateDeepEffectivePerms(); 149 group.InvalidateDeepEffectivePerms();
150 } 150 }
151 151
152 part.ObjectSaleType = 0; 152 rootpart.ObjectSaleType = 0;
153 part.SalePrice = 10; 153 rootpart.SalePrice = 10;
154 part.ClickAction = Convert.ToByte(0); 154 rootpart.ClickAction = Convert.ToByte(0);
155 155
156 group.HasGroupChanged = true; 156 group.HasGroupChanged = true;
157 part.SendPropertiesToClient(remoteClient); 157 rootpart.SendPropertiesToClient(remoteClient);
158 part.TriggerScriptChangedEvent(Changed.OWNER); 158 rootpart.TriggerScriptChangedEvent(Changed.OWNER);
159 group.ResumeScripts(); 159 group.ResumeScripts();
160 part.ScheduleFullUpdate(); 160 rootpart.ScheduleFullUpdate();
161 161
162 break; 162 break;
163 163
@@ -180,23 +180,25 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
180 180
181 string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(group); 181 string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(group);
182 182
183 string name = rootpart.Name;
184 string desc = rootpart.Description;
185
183 AssetBase asset = m_scene.CreateAsset( 186 AssetBase asset = m_scene.CreateAsset(
184 group.GetPartName(localID), 187 name, desc,
185 group.GetPartDescription(localID),
186 (sbyte)AssetType.Object, 188 (sbyte)AssetType.Object,
187 Utils.StringToBytes(sceneObjectXml), 189 Utils.StringToBytes(sceneObjectXml),
188 group.OwnerID); 190 rootpart.CreatorID);
189 m_scene.AssetService.Store(asset); 191 m_scene.AssetService.Store(asset);
190 192
191 InventoryItemBase item = new InventoryItemBase(); 193 InventoryItemBase item = new InventoryItemBase();
192 item.CreatorId = part.CreatorID.ToString(); 194 item.CreatorId = rootpart.CreatorID.ToString();
193 item.CreatorData = part.CreatorData; 195 item.CreatorData = rootpart.CreatorData;
194 196
195 item.ID = UUID.Random(); 197 item.ID = UUID.Random();
196 item.Owner = remoteClient.AgentId; 198 item.Owner = remoteClient.AgentId;
197 item.AssetID = asset.FullID; 199 item.AssetID = asset.FullID;
198 item.Description = asset.Description; 200 item.Description = desc;
199 item.Name = asset.Name; 201 item.Name = name;
200 item.AssetType = asset.Type; 202 item.AssetType = asset.Type;
201 item.InvType = (int)InventoryType.Object; 203 item.InvType = (int)InventoryType.Object;
202 item.Folder = categoryID; 204 item.Folder = categoryID;
@@ -205,15 +207,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
205 // apply parts inventory next perms 207 // apply parts inventory next perms
206 PermissionsUtil.ApplyNoModFoldedPermissions(perms, ref perms); 208 PermissionsUtil.ApplyNoModFoldedPermissions(perms, ref perms);
207 // change to next owner perms 209 // change to next owner perms
208 perms &= part.NextOwnerMask; 210 perms &= rootpart.NextOwnerMask;
209 // update folded 211 // update folded
210 perms = PermissionsUtil.FixAndFoldPermissions(perms); 212 perms = PermissionsUtil.FixAndFoldPermissions(perms);
211 213
212 item.BasePermissions = perms; 214 item.BasePermissions = perms;
213 item.CurrentPermissions = perms; 215 item.CurrentPermissions = perms;
214 item.NextPermissions = part.NextOwnerMask & perms; 216 item.NextPermissions = rootpart.NextOwnerMask & perms;
215 item.EveryOnePermissions = part.EveryoneMask & perms; 217 item.EveryOnePermissions = rootpart.EveryoneMask & perms;
216 item.GroupPermissions = part.GroupMask & perms; 218 item.GroupPermissions = rootpart.GroupMask & perms;
217 219
218 item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm; 220 item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
219 item.CreationDate = Util.UnixTimeSinceEpoch(); 221 item.CreationDate = Util.UnixTimeSinceEpoch();
@@ -231,13 +233,13 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
231 break; 233 break;
232 234
233 case 3: // Sell contents 235 case 3: // Sell contents
234 List<UUID> invList = part.Inventory.GetInventoryList(); 236 List<UUID> invList = rootpart.Inventory.GetInventoryList();
235 237
236 bool okToSell = true; 238 bool okToSell = true;
237 239
238 foreach (UUID invID in invList) 240 foreach (UUID invID in invList)
239 { 241 {
240 TaskInventoryItem item1 = part.Inventory.GetInventoryItem(invID); 242 TaskInventoryItem item1 = rootpart.Inventory.GetInventoryItem(invID);
241 if ((item1.CurrentPermissions & 243 if ((item1.CurrentPermissions &
242 (uint)PermissionMask.Transfer) == 0) 244 (uint)PermissionMask.Transfer) == 0)
243 { 245 {
@@ -255,7 +257,7 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
255 } 257 }
256 258
257 if (invList.Count > 0) 259 if (invList.Count > 0)
258 m_scene.MoveTaskInventoryItems(remoteClient.AgentId, part.Name, part, invList); 260 m_scene.MoveTaskInventoryItems(remoteClient.AgentId, rootpart.Name, rootpart, invList);
259 break; 261 break;
260 } 262 }
261 263