diff options
author | Teravus Ovares | 2008-04-30 16:08:24 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-04-30 16:08:24 +0000 |
commit | a9cc76e0efba7496909d613c75b81de6a9c5d979 (patch) | |
tree | e83763d4dfb3b78ead9b5926dce1d2468b496845 | |
parent | move IUserService into the OpenSim.Framework.Communications assembly (diff) | |
download | opensim-SC_OLD-a9cc76e0efba7496909d613c75b81de6a9c5d979.zip opensim-SC_OLD-a9cc76e0efba7496909d613c75b81de6a9c5d979.tar.gz opensim-SC_OLD-a9cc76e0efba7496909d613c75b81de6a9c5d979.tar.bz2 opensim-SC_OLD-a9cc76e0efba7496909d613c75b81de6a9c5d979.tar.xz |
* Long awaited patch from A_Biondi Mantis 923. Kept alive by Melanie. Thanks A_Biondi and Melanie!
* This builds but might not work. JustinCC will examine.. it may work out of the box.
-rw-r--r-- | OpenSim/Data/MySQL/MySQLInventoryData.cs | 21 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/CreateItemsTable.sql | 8 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql | 8 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteInventoryStore.cs | 32 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteRegionData.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | 2 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/IInventoryServices.cs | 7 | ||||
-rw-r--r-- | OpenSim/Framework/Communications/InventoryServiceBase.cs | 11 | ||||
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 9 | ||||
-rw-r--r-- | OpenSim/Framework/InventoryItemBase.cs | 118 | ||||
-rw-r--r-- | OpenSim/Grid/InventoryServer/GridInventoryService.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 84 | ||||
-rw-r--r-- | OpenSim/Region/Communications/Local/LocalInventoryService.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs | 15 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 33 |
16 files changed, 313 insertions, 50 deletions
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index 6261d37..2c781e0 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs | |||
@@ -332,6 +332,15 @@ namespace OpenSim.Data.MySQL | |||
332 | item.Creator = new LLUUID((string) reader["creatorID"]); | 332 | item.Creator = new LLUUID((string) reader["creatorID"]); |
333 | item.BasePermissions = (uint) reader["inventoryBasePermissions"]; | 333 | item.BasePermissions = (uint) reader["inventoryBasePermissions"]; |
334 | item.EveryOnePermissions = (uint) reader["inventoryEveryOnePermissions"]; | 334 | item.EveryOnePermissions = (uint) reader["inventoryEveryOnePermissions"]; |
335 | |||
336 | // new fields | ||
337 | item.SalePrice = (int) reader["salePrice"]; | ||
338 | item.SaleType = Convert.ToByte(reader["saleType"]); | ||
339 | item.CreationDate = (int) reader["creationDate"]; | ||
340 | item.GroupID = new LLUUID(reader["groupID"].ToString()); | ||
341 | item.GroupOwned = Convert.ToBoolean(reader["groupOwned"]); | ||
342 | item.Flags = (uint) reader["flags"]; | ||
343 | |||
335 | return item; | 344 | return item; |
336 | } | 345 | } |
337 | catch (MySqlException e) | 346 | catch (MySqlException e) |
@@ -353,8 +362,6 @@ namespace OpenSim.Data.MySQL | |||
353 | { | 362 | { |
354 | lock (database) | 363 | lock (database) |
355 | { | 364 | { |
356 | Dictionary<string, string> param = new Dictionary<string, string>(); | ||
357 | |||
358 | MySqlCommand result = | 365 | MySqlCommand result = |
359 | new MySqlCommand("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", database.Connection); | 366 | new MySqlCommand("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", database.Connection); |
360 | result.Parameters.AddWithValue("?uuid", itemID.ToString()); | 367 | result.Parameters.AddWithValue("?uuid", itemID.ToString()); |
@@ -444,9 +451,9 @@ namespace OpenSim.Data.MySQL | |||
444 | public void addInventoryItem(InventoryItemBase item) | 451 | public void addInventoryItem(InventoryItemBase item) |
445 | { | 452 | { |
446 | string sql = | 453 | string sql = |
447 | "REPLACE INTO inventoryitems (inventoryID, assetID, assetType, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions, invType, creatorID, inventoryBasePermissions, inventoryEveryOnePermissions) VALUES "; | 454 | "REPLACE INTO inventoryitems (inventoryID, assetID, assetType, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions, invType, creatorID, inventoryBasePermissions, inventoryEveryOnePermissions, salePrice, saleType, creationDate, groupID, groupOwned, flags) VALUES "; |
448 | sql += | 455 | sql += |
449 | "(?inventoryID, ?assetID, ?assetType, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions, ?invType, ?creatorID, ?inventoryBasePermissions, ?inventoryEveryOnePermissions)"; | 456 | "(?inventoryID, ?assetID, ?assetType, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions, ?invType, ?creatorID, ?inventoryBasePermissions, ?inventoryEveryOnePermissions, ?salePrice, ?saleType, ?creationDate, ?groupID, ?groupOwned, ?flags)"; |
450 | 457 | ||
451 | try | 458 | try |
452 | { | 459 | { |
@@ -465,6 +472,12 @@ namespace OpenSim.Data.MySQL | |||
465 | result.Parameters.AddWithValue("?creatorID", item.Creator.ToString()); | 472 | result.Parameters.AddWithValue("?creatorID", item.Creator.ToString()); |
466 | result.Parameters.AddWithValue("?inventoryBasePermissions", item.BasePermissions); | 473 | result.Parameters.AddWithValue("?inventoryBasePermissions", item.BasePermissions); |
467 | result.Parameters.AddWithValue("?inventoryEveryOnePermissions", item.EveryOnePermissions); | 474 | result.Parameters.AddWithValue("?inventoryEveryOnePermissions", item.EveryOnePermissions); |
475 | result.Parameters.AddWithValue("?salePrice", item.SalePrice); | ||
476 | result.Parameters.AddWithValue("?saleType", item.SaleType); | ||
477 | result.Parameters.AddWithValue("?creationDate", item.CreationDate); | ||
478 | result.Parameters.AddWithValue("?groupID", item.GroupID); | ||
479 | result.Parameters.AddWithValue("?groupOwned", item.GroupOwned); | ||
480 | result.Parameters.AddWithValue("?flags", item.Flags); | ||
468 | 481 | ||
469 | lock (database) | 482 | lock (database) |
470 | { | 483 | { |
diff --git a/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql b/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql index 1723ee3..c8b7481 100644 --- a/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql +++ b/OpenSim/Data/MySQL/Resources/CreateItemsTable.sql | |||
@@ -12,7 +12,13 @@ CREATE TABLE `inventoryitems` ( | |||
12 | `creatorID` varchar(36) default NULL, | 12 | `creatorID` varchar(36) default NULL, |
13 | `inventoryBasePermissions` int(10) unsigned NOT NULL default 0, | 13 | `inventoryBasePermissions` int(10) unsigned NOT NULL default 0, |
14 | `inventoryEveryOnePermissions` int(10) unsigned NOT NULL default 0, | 14 | `inventoryEveryOnePermissions` int(10) unsigned NOT NULL default 0, |
15 | `salePrice` int(11) default NULL, | ||
16 | `saleType` tinyint(4) default NULL, | ||
17 | `creationDate` int(11) default NULL, | ||
18 | `groupID` varchar(63) default NULL, | ||
19 | `groupOwned` tinyint(4) default NULL, | ||
20 | `flags` int(11) unsigned default NULL, | ||
15 | PRIMARY KEY (`inventoryID`), | 21 | PRIMARY KEY (`inventoryID`), |
16 | KEY `owner` (`avatarID`), | 22 | KEY `owner` (`avatarID`), |
17 | KEY `folder` (`parentFolderID`) | 23 | KEY `folder` (`parentFolderID`) |
18 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 2'; | 24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rev. 3'; |
diff --git a/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql b/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql new file mode 100644 index 0000000..2b3b1f7 --- /dev/null +++ b/OpenSim/Data/MySQL/Resources/UpgradeItemsTableToVersion3.sql | |||
@@ -0,0 +1,8 @@ | |||
1 | ALTER TABLE `inventoryitems` | ||
2 | ADD COLUMN `salePrice` int(11) NOT NULL, | ||
3 | ADD COLUMN `saleType` tinyint(4) NOT NULL, | ||
4 | ADD COLUMN `creationDate` int(11) NOT NULL, | ||
5 | ADD COLUMN `groupID` varchar(36) NOT NULL default '00000000-0000-0000-0000-000000000000', | ||
6 | ADD COLUMN `groupOwned` tinyint(4) NOT NULL, | ||
7 | ADD COLUMN `flags` int(11) unsigned NOT NULL, | ||
8 | COMMENT='Rev. 3'; | ||
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs index 5c53f32..b638528 100644 --- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs | |||
@@ -101,6 +101,14 @@ namespace OpenSim.Data.SQLite | |||
101 | item.CurrentPermissions = Convert.ToUInt32(row["inventoryCurrentPermissions"]); | 101 | item.CurrentPermissions = Convert.ToUInt32(row["inventoryCurrentPermissions"]); |
102 | item.BasePermissions = Convert.ToUInt32(row["inventoryBasePermissions"]); | 102 | item.BasePermissions = Convert.ToUInt32(row["inventoryBasePermissions"]); |
103 | item.EveryOnePermissions = Convert.ToUInt32(row["inventoryEveryOnePermissions"]); | 103 | item.EveryOnePermissions = Convert.ToUInt32(row["inventoryEveryOnePermissions"]); |
104 | |||
105 | // new fields | ||
106 | item.SalePrice = Convert.ToInt32(row["salePrice"]); | ||
107 | item.SaleType = Convert.ToByte(row["saleType"]); | ||
108 | item.CreationDate = Convert.ToInt32(row["creationDate"]); | ||
109 | item.GroupID = new LLUUID((string)row["groupID"]); | ||
110 | item.GroupOwned = Convert.ToBoolean(row["groupOwned"]); | ||
111 | item.Flags = Convert.ToUInt32(row["Flags"]); | ||
104 | return item; | 112 | return item; |
105 | } | 113 | } |
106 | 114 | ||
@@ -120,6 +128,14 @@ namespace OpenSim.Data.SQLite | |||
120 | row["inventoryCurrentPermissions"] = item.CurrentPermissions; | 128 | row["inventoryCurrentPermissions"] = item.CurrentPermissions; |
121 | row["inventoryBasePermissions"] = item.BasePermissions; | 129 | row["inventoryBasePermissions"] = item.BasePermissions; |
122 | row["inventoryEveryOnePermissions"] = item.EveryOnePermissions; | 130 | row["inventoryEveryOnePermissions"] = item.EveryOnePermissions; |
131 | |||
132 | // new fields | ||
133 | row["salePrice"] = item.SalePrice; | ||
134 | row["saleType"] = item.SaleType; | ||
135 | row["creationDate"] = item.CreationDate; | ||
136 | row["groupID"] = item.GroupID; | ||
137 | row["groupOwned"] = item.GroupOwned; | ||
138 | row["flags"] = item.Flags; | ||
123 | } | 139 | } |
124 | 140 | ||
125 | private void addFolder(InventoryFolderBase folder, bool add) | 141 | private void addFolder(InventoryFolderBase folder, bool add) |
@@ -530,7 +546,21 @@ namespace OpenSim.Data.SQLite | |||
530 | createCol(inv, "inventoryBasePermissions", typeof (Int32)); | 546 | createCol(inv, "inventoryBasePermissions", typeof (Int32)); |
531 | createCol(inv, "inventoryEveryOnePermissions", typeof (Int32)); | 547 | createCol(inv, "inventoryEveryOnePermissions", typeof (Int32)); |
532 | 548 | ||
533 | inv.PrimaryKey = new DataColumn[] {inv.Columns["UUID"]}; | 549 | // sale info |
550 | createCol(inv, "salePrice", typeof(Int32)); | ||
551 | createCol(inv, "saleType", typeof(Byte)); | ||
552 | |||
553 | // creation date | ||
554 | createCol(inv, "creationDate", typeof(Int32)); | ||
555 | |||
556 | // group info | ||
557 | createCol(inv, "groupID", typeof(String)); | ||
558 | createCol(inv, "groupOwned", typeof(Boolean)); | ||
559 | |||
560 | // Flags | ||
561 | createCol(inv, "flags", typeof(UInt32)); | ||
562 | |||
563 | inv.PrimaryKey = new DataColumn[] { inv.Columns["UUID"] }; | ||
534 | return inv; | 564 | return inv; |
535 | } | 565 | } |
536 | 566 | ||
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs index 4355033..d385376 100644 --- a/OpenSim/Data/SQLite/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs | |||
@@ -721,7 +721,7 @@ namespace OpenSim.Data.SQLite | |||
721 | createCol(items, "everyonePermissions", typeof (UInt32)); | 721 | createCol(items, "everyonePermissions", typeof (UInt32)); |
722 | createCol(items, "groupPermissions", typeof (UInt32)); | 722 | createCol(items, "groupPermissions", typeof (UInt32)); |
723 | 723 | ||
724 | items.PrimaryKey = new DataColumn[] {items.Columns["itemID"]}; | 724 | items.PrimaryKey = new DataColumn[] { items.Columns["itemID"] }; |
725 | 725 | ||
726 | return items; | 726 | return items; |
727 | } | 727 | } |
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 9749366..847909a 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -325,7 +325,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
325 | { | 325 | { |
326 | if ((userID == UserProfile.ID) && HasInventory) | 326 | if ((userID == UserProfile.ID) && HasInventory) |
327 | { | 327 | { |
328 | m_commsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); | 328 | m_commsManager.InventoryService.UpdateInventoryItem(userID, itemInfo); |
329 | } | 329 | } |
330 | } | 330 | } |
331 | 331 | ||
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index 5690f89..c82c946 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs | |||
@@ -78,6 +78,13 @@ namespace OpenSim.Framework.Communications | |||
78 | void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); | 78 | void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); |
79 | 79 | ||
80 | /// <summary> | 80 | /// <summary> |
81 | /// Update an item in the given user's inventory | ||
82 | /// </summary> | ||
83 | /// <param name="userID"></param> | ||
84 | /// <param name="item"></param> | ||
85 | void UpdateInventoryItem(LLUUID userID, InventoryItemBase item); | ||
86 | |||
87 | /// <summary> | ||
81 | /// Delete an item from the given user's inventory | 88 | /// Delete an item from the given user's inventory |
82 | /// </summary> | 89 | /// </summary> |
83 | /// <param name="userID"></param> | 90 | /// <param name="userID"></param> |
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index 0528b91..dab6a16 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs | |||
@@ -172,6 +172,9 @@ namespace OpenSim.Framework.Communications | |||
172 | 172 | ||
173 | // See IInventoryServices | 173 | // See IInventoryServices |
174 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); | 174 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); |
175 | |||
176 | // See IInventoryServices | ||
177 | public abstract void UpdateInventoryItem(LLUUID userID, InventoryItemBase item); | ||
175 | 178 | ||
176 | // See IInventoryServices | 179 | // See IInventoryServices |
177 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); | 180 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); |
@@ -230,6 +233,14 @@ namespace OpenSim.Framework.Communications | |||
230 | } | 233 | } |
231 | } | 234 | } |
232 | 235 | ||
236 | protected void UpdateItem(InventoryItemBase item) | ||
237 | { | ||
238 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | ||
239 | { | ||
240 | plugin.Value.updateInventoryItem(item); | ||
241 | } | ||
242 | } | ||
243 | |||
233 | protected void DeleteItem(InventoryItemBase item) | 244 | protected void DeleteItem(InventoryItemBase item) |
234 | { | 245 | { |
235 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | 246 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 20d4e62..9bcd65f 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -393,9 +393,12 @@ namespace OpenSim.Framework | |||
393 | 393 | ||
394 | public delegate void RequestTaskInventory(IClientAPI remoteClient, uint localID); | 394 | public delegate void RequestTaskInventory(IClientAPI remoteClient, uint localID); |
395 | 395 | ||
396 | public delegate void UpdateInventoryItem( | 396 | /* public delegate void UpdateInventoryItem( |
397 | IClientAPI remoteClient, LLUUID transactionID, LLUUID itemID, string name, string description, | 397 | IClientAPI remoteClient, LLUUID transactionID, LLUUID itemID, string name, string description, |
398 | uint nextOwnerMask); | 398 | uint nextOwnerMask);*/ |
399 | |||
400 | public delegate void UpdateInventoryItem( | ||
401 | IClientAPI remoteClient, LLUUID transactionID, LLUUID itemID, InventoryItemBase itemUpd); | ||
399 | 402 | ||
400 | public delegate void CopyInventoryItem( | 403 | public delegate void CopyInventoryItem( |
401 | IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, LLUUID newFolderID, | 404 | IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, LLUUID newFolderID, |
@@ -756,4 +759,4 @@ namespace OpenSim.Framework | |||
756 | public byte[] usecircuit; | 759 | public byte[] usecircuit; |
757 | public EndPoint userEP; | 760 | public EndPoint userEP; |
758 | } | 761 | } |
759 | } \ No newline at end of file | 762 | } |
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs index 3d75a8a..dbf2085 100644 --- a/OpenSim/Framework/InventoryItemBase.cs +++ b/OpenSim/Framework/InventoryItemBase.cs | |||
@@ -54,6 +54,10 @@ namespace OpenSim.Framework | |||
54 | /// </summary> | 54 | /// </summary> |
55 | private LLUUID _creator; | 55 | private LLUUID _creator; |
56 | 56 | ||
57 | private LLUUID _owner; | ||
58 | |||
59 | private uint _nextPermissions; | ||
60 | |||
57 | /// <summary> | 61 | /// <summary> |
58 | /// A mask containing permissions for the current owner (cannot be enforced) | 62 | /// A mask containing permissions for the current owner (cannot be enforced) |
59 | /// </summary> | 63 | /// </summary> |
@@ -89,20 +93,44 @@ namespace OpenSim.Framework | |||
89 | /// </summary> | 93 | /// </summary> |
90 | private string _name; | 94 | private string _name; |
91 | 95 | ||
96 | |||
92 | /// <summary> | 97 | /// <summary> |
93 | /// A mask containing the permissions for the next owner (cannot be enforced) | 98 | /// |
94 | /// </summary> | 99 | /// </summary> |
95 | private uint _nextPermissions; | 100 | private LLUUID _groupID; |
96 | 101 | ||
97 | /// <summary> | 102 | /// <summary> |
98 | /// The owner of this inventory item | 103 | /// |
99 | /// </summary> | 104 | /// </summary> |
100 | private LLUUID _owner; | 105 | private bool _groupOwned; |
101 | 106 | ||
102 | public LLUUID ID | 107 | /// <summary> |
103 | { | 108 | /// |
104 | get { return _id; } | 109 | /// </summary> |
105 | set { _id = value; } | 110 | private int _salePrice; |
111 | |||
112 | /// <summary> | ||
113 | /// | ||
114 | /// </summary> | ||
115 | private byte _saleType; | ||
116 | |||
117 | /// <summary> | ||
118 | /// | ||
119 | /// </summary> | ||
120 | private uint _flags; | ||
121 | |||
122 | /// <summary> | ||
123 | /// | ||
124 | /// </summary> | ||
125 | public int _creationDate; | ||
126 | |||
127 | public LLUUID ID { | ||
128 | get { | ||
129 | return _id; | ||
130 | } | ||
131 | set { | ||
132 | _id = value; | ||
133 | } | ||
106 | } | 134 | } |
107 | 135 | ||
108 | public int InvType | 136 | public int InvType |
@@ -176,5 +204,77 @@ namespace OpenSim.Framework | |||
176 | get { return _assetID; } | 204 | get { return _assetID; } |
177 | set { _assetID = value; } | 205 | set { _assetID = value; } |
178 | } | 206 | } |
207 | |||
208 | public LLUUID GroupID | ||
209 | { | ||
210 | get | ||
211 | { | ||
212 | return _groupID; | ||
213 | } | ||
214 | set | ||
215 | { | ||
216 | _groupID = value; | ||
217 | } | ||
218 | } | ||
219 | |||
220 | public bool GroupOwned | ||
221 | { | ||
222 | get | ||
223 | { | ||
224 | return _groupOwned; | ||
225 | } | ||
226 | set | ||
227 | { | ||
228 | _groupOwned = value; | ||
229 | } | ||
230 | } | ||
231 | |||
232 | public int SalePrice | ||
233 | { | ||
234 | get | ||
235 | { | ||
236 | return _salePrice; | ||
237 | } | ||
238 | set | ||
239 | { | ||
240 | _salePrice = value; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | public byte SaleType | ||
245 | { | ||
246 | get | ||
247 | { | ||
248 | return _saleType; | ||
249 | } | ||
250 | set | ||
251 | { | ||
252 | _saleType = value; | ||
253 | } | ||
254 | } | ||
255 | |||
256 | public uint Flags | ||
257 | { | ||
258 | get | ||
259 | { | ||
260 | return _flags; | ||
261 | } | ||
262 | set | ||
263 | { | ||
264 | _flags = value; | ||
265 | } | ||
266 | } | ||
267 | |||
268 | public int CreationDate | ||
269 | { | ||
270 | get | ||
271 | { | ||
272 | return _creationDate; | ||
273 | } | ||
274 | set | ||
275 | { | ||
276 | _creationDate = value; | ||
277 | } | ||
278 | } | ||
179 | } | 279 | } |
180 | } \ No newline at end of file | 280 | } |
diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index efa6a6e..f8467b6 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs | |||
@@ -209,6 +209,11 @@ namespace OpenSim.Grid.InventoryServer | |||
209 | AddItem(item); | 209 | AddItem(item); |
210 | } | 210 | } |
211 | 211 | ||
212 | public override void UpdateInventoryItem(LLUUID userID, InventoryItemBase item) | ||
213 | { | ||
214 | UpdateItem(item); | ||
215 | } | ||
216 | |||
212 | public bool AddInventoryFolder(InventoryFolderBase folder) | 217 | public bool AddInventoryFolder(InventoryFolderBase folder) |
213 | { | 218 | { |
214 | // Right now, this actions act more like an update/insert combination than a simple create. | 219 | // Right now, this actions act more like an update/insert combination than a simple create. |
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index aac96d1..010a37f 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -1284,21 +1284,25 @@ namespace OpenSim.Region.ClientStack | |||
1284 | descend.ItemData[i].AssetID = item.AssetID; | 1284 | descend.ItemData[i].AssetID = item.AssetID; |
1285 | descend.ItemData[i].CreatorID = item.Creator; | 1285 | descend.ItemData[i].CreatorID = item.Creator; |
1286 | descend.ItemData[i].BaseMask = item.BasePermissions; | 1286 | descend.ItemData[i].BaseMask = item.BasePermissions; |
1287 | descend.ItemData[i].CreationDate = 1000; | ||
1288 | descend.ItemData[i].Description = Helpers.StringToField(item.Description); | 1287 | descend.ItemData[i].Description = Helpers.StringToField(item.Description); |
1289 | descend.ItemData[i].EveryoneMask = item.EveryOnePermissions; | 1288 | descend.ItemData[i].EveryoneMask = item.EveryOnePermissions; |
1290 | descend.ItemData[i].Flags = 1; | 1289 | descend.ItemData[i].OwnerMask = item.CurrentPermissions; |
1291 | descend.ItemData[i].FolderID = item.Folder; | 1290 | descend.ItemData[i].FolderID = item.Folder; |
1292 | descend.ItemData[i].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | 1291 | descend.ItemData[i].InvType = (sbyte)item.InvType; |
1293 | descend.ItemData[i].GroupMask = 0; | ||
1294 | descend.ItemData[i].InvType = (sbyte) item.InvType; | ||
1295 | descend.ItemData[i].Name = Helpers.StringToField(item.Name); | 1292 | descend.ItemData[i].Name = Helpers.StringToField(item.Name); |
1296 | descend.ItemData[i].NextOwnerMask = item.NextPermissions; | 1293 | descend.ItemData[i].NextOwnerMask = item.NextPermissions; |
1297 | descend.ItemData[i].OwnerID = item.Owner; | 1294 | descend.ItemData[i].OwnerID = item.Owner; |
1298 | descend.ItemData[i].OwnerMask = item.CurrentPermissions; | 1295 | descend.ItemData[i].Type = (sbyte)item.AssetType; |
1299 | descend.ItemData[i].SalePrice = 0; | 1296 | |
1300 | descend.ItemData[i].SaleType = 0; | 1297 | //descend.ItemData[i].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); |
1301 | descend.ItemData[i].Type = (sbyte) item.AssetType; | 1298 | descend.ItemData[i].GroupID = item.GroupID; |
1299 | descend.ItemData[i].GroupOwned = item.GroupOwned; | ||
1300 | descend.ItemData[i].GroupMask = 0; | ||
1301 | descend.ItemData[i].CreationDate = item.CreationDate; | ||
1302 | descend.ItemData[i].SalePrice = item.SalePrice; | ||
1303 | descend.ItemData[i].SaleType = item.SaleType; | ||
1304 | descend.ItemData[i].Flags = item.Flags; | ||
1305 | |||
1302 | descend.ItemData[i].CRC = | 1306 | descend.ItemData[i].CRC = |
1303 | Helpers.InventoryCRC(descend.ItemData[i].CreationDate, descend.ItemData[i].SaleType, | 1307 | Helpers.InventoryCRC(descend.ItemData[i].CreationDate, descend.ItemData[i].SaleType, |
1304 | descend.ItemData[i].InvType, descend.ItemData[i].Type, | 1308 | descend.ItemData[i].InvType, descend.ItemData[i].Type, |
@@ -1433,18 +1437,22 @@ namespace OpenSim.Region.ClientStack | |||
1433 | (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; | 1437 | (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; |
1434 | inventoryReply.InventoryData[0].Description = Helpers.StringToField(item.Description); | 1438 | inventoryReply.InventoryData[0].Description = Helpers.StringToField(item.Description); |
1435 | inventoryReply.InventoryData[0].EveryoneMask = item.EveryOnePermissions; | 1439 | inventoryReply.InventoryData[0].EveryoneMask = item.EveryOnePermissions; |
1436 | inventoryReply.InventoryData[0].Flags = 0; | ||
1437 | inventoryReply.InventoryData[0].FolderID = item.Folder; | 1440 | inventoryReply.InventoryData[0].FolderID = item.Folder; |
1438 | inventoryReply.InventoryData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1439 | inventoryReply.InventoryData[0].GroupMask = 0; | ||
1440 | inventoryReply.InventoryData[0].InvType = (sbyte)item.InvType; | 1441 | inventoryReply.InventoryData[0].InvType = (sbyte)item.InvType; |
1441 | inventoryReply.InventoryData[0].Name = Helpers.StringToField(item.Name); | 1442 | inventoryReply.InventoryData[0].Name = Helpers.StringToField(item.Name); |
1442 | inventoryReply.InventoryData[0].NextOwnerMask = item.NextPermissions; | 1443 | inventoryReply.InventoryData[0].NextOwnerMask = item.NextPermissions; |
1443 | inventoryReply.InventoryData[0].OwnerID = item.Owner; | 1444 | inventoryReply.InventoryData[0].OwnerID = item.Owner; |
1444 | inventoryReply.InventoryData[0].OwnerMask = item.CurrentPermissions; | 1445 | inventoryReply.InventoryData[0].OwnerMask = item.CurrentPermissions; |
1445 | inventoryReply.InventoryData[0].SalePrice = 0; | ||
1446 | inventoryReply.InventoryData[0].SaleType = 0; | ||
1447 | inventoryReply.InventoryData[0].Type = (sbyte)item.AssetType; | 1446 | inventoryReply.InventoryData[0].Type = (sbyte)item.AssetType; |
1447 | |||
1448 | //inventoryReply.InventoryData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1449 | inventoryReply.InventoryData[0].GroupID = item.GroupID; | ||
1450 | inventoryReply.InventoryData[0].GroupOwned = item.GroupOwned; | ||
1451 | inventoryReply.InventoryData[0].GroupMask = 0; | ||
1452 | inventoryReply.InventoryData[0].Flags = item.Flags; | ||
1453 | inventoryReply.InventoryData[0].SalePrice = item.SalePrice; | ||
1454 | inventoryReply.InventoryData[0].SaleType = item.SaleType; | ||
1455 | |||
1448 | inventoryReply.InventoryData[0].CRC = | 1456 | inventoryReply.InventoryData[0].CRC = |
1449 | Helpers.InventoryCRC(1000, 0, inventoryReply.InventoryData[0].InvType, | 1457 | Helpers.InventoryCRC(1000, 0, inventoryReply.InventoryData[0].InvType, |
1450 | inventoryReply.InventoryData[0].Type, inventoryReply.InventoryData[0].AssetID, | 1458 | inventoryReply.InventoryData[0].Type, inventoryReply.InventoryData[0].AssetID, |
@@ -1484,18 +1492,22 @@ namespace OpenSim.Region.ClientStack | |||
1484 | bulkUpdate.ItemData[0].CreationDate = 1000; | 1492 | bulkUpdate.ItemData[0].CreationDate = 1000; |
1485 | bulkUpdate.ItemData[0].Description = Helpers.StringToField(item.Description); | 1493 | bulkUpdate.ItemData[0].Description = Helpers.StringToField(item.Description); |
1486 | bulkUpdate.ItemData[0].EveryoneMask = item.EveryOnePermissions; | 1494 | bulkUpdate.ItemData[0].EveryoneMask = item.EveryOnePermissions; |
1487 | bulkUpdate.ItemData[0].Flags = 0; | ||
1488 | bulkUpdate.ItemData[0].FolderID = item.Folder; | 1495 | bulkUpdate.ItemData[0].FolderID = item.Folder; |
1489 | bulkUpdate.ItemData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1490 | bulkUpdate.ItemData[0].GroupMask = 0; | ||
1491 | bulkUpdate.ItemData[0].InvType = (sbyte)item.InvType; | 1496 | bulkUpdate.ItemData[0].InvType = (sbyte)item.InvType; |
1492 | bulkUpdate.ItemData[0].Name = Helpers.StringToField(item.Name); | 1497 | bulkUpdate.ItemData[0].Name = Helpers.StringToField(item.Name); |
1493 | bulkUpdate.ItemData[0].NextOwnerMask = item.NextPermissions; | 1498 | bulkUpdate.ItemData[0].NextOwnerMask = item.NextPermissions; |
1494 | bulkUpdate.ItemData[0].OwnerID = item.Owner; | 1499 | bulkUpdate.ItemData[0].OwnerID = item.Owner; |
1495 | bulkUpdate.ItemData[0].OwnerMask = item.CurrentPermissions; | 1500 | bulkUpdate.ItemData[0].OwnerMask = item.CurrentPermissions; |
1496 | bulkUpdate.ItemData[0].SalePrice = 100; | ||
1497 | bulkUpdate.ItemData[0].SaleType = 0; | ||
1498 | bulkUpdate.ItemData[0].Type = (sbyte)item.AssetType; | 1501 | bulkUpdate.ItemData[0].Type = (sbyte)item.AssetType; |
1502 | |||
1503 | //bulkUpdate.ItemData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1504 | bulkUpdate.ItemData[0].GroupID = item.GroupID; | ||
1505 | bulkUpdate.ItemData[0].GroupOwned = item.GroupOwned; | ||
1506 | bulkUpdate.ItemData[0].GroupMask = 0; | ||
1507 | bulkUpdate.ItemData[0].Flags = item.Flags; | ||
1508 | bulkUpdate.ItemData[0].SalePrice = item.SalePrice; | ||
1509 | bulkUpdate.ItemData[0].SaleType = item.SaleType; | ||
1510 | |||
1499 | bulkUpdate.ItemData[0].CRC = | 1511 | bulkUpdate.ItemData[0].CRC = |
1500 | Helpers.InventoryCRC(1000, 0, bulkUpdate.ItemData[0].InvType, | 1512 | Helpers.InventoryCRC(1000, 0, bulkUpdate.ItemData[0].InvType, |
1501 | bulkUpdate.ItemData[0].Type, bulkUpdate.ItemData[0].AssetID, | 1513 | bulkUpdate.ItemData[0].Type, bulkUpdate.ItemData[0].AssetID, |
@@ -1526,21 +1538,24 @@ namespace OpenSim.Region.ClientStack | |||
1526 | InventoryReply.InventoryData[0].AssetID = Item.AssetID; | 1538 | InventoryReply.InventoryData[0].AssetID = Item.AssetID; |
1527 | InventoryReply.InventoryData[0].CreatorID = Item.Creator; | 1539 | InventoryReply.InventoryData[0].CreatorID = Item.Creator; |
1528 | InventoryReply.InventoryData[0].BaseMask = Item.BasePermissions; | 1540 | InventoryReply.InventoryData[0].BaseMask = Item.BasePermissions; |
1529 | InventoryReply.InventoryData[0].CreationDate = 1000; | ||
1530 | InventoryReply.InventoryData[0].Description = Helpers.StringToField(Item.Description); | 1541 | InventoryReply.InventoryData[0].Description = Helpers.StringToField(Item.Description); |
1531 | InventoryReply.InventoryData[0].EveryoneMask = Item.EveryOnePermissions; | 1542 | InventoryReply.InventoryData[0].EveryoneMask = Item.EveryOnePermissions; |
1532 | InventoryReply.InventoryData[0].Flags = 0; | ||
1533 | InventoryReply.InventoryData[0].FolderID = Item.Folder; | 1543 | InventoryReply.InventoryData[0].FolderID = Item.Folder; |
1534 | InventoryReply.InventoryData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1535 | InventoryReply.InventoryData[0].GroupMask = 0; | ||
1536 | InventoryReply.InventoryData[0].InvType = (sbyte)Item.InvType; | 1544 | InventoryReply.InventoryData[0].InvType = (sbyte)Item.InvType; |
1537 | InventoryReply.InventoryData[0].Name = Helpers.StringToField(Item.Name); | 1545 | InventoryReply.InventoryData[0].Name = Helpers.StringToField(Item.Name); |
1538 | InventoryReply.InventoryData[0].NextOwnerMask = Item.NextPermissions; | 1546 | InventoryReply.InventoryData[0].NextOwnerMask = Item.NextPermissions; |
1539 | InventoryReply.InventoryData[0].OwnerID = Item.Owner; | 1547 | InventoryReply.InventoryData[0].OwnerID = Item.Owner; |
1540 | InventoryReply.InventoryData[0].OwnerMask = Item.CurrentPermissions; | 1548 | InventoryReply.InventoryData[0].OwnerMask = Item.CurrentPermissions; |
1541 | InventoryReply.InventoryData[0].SalePrice = 100; | ||
1542 | InventoryReply.InventoryData[0].SaleType = 0; | ||
1543 | InventoryReply.InventoryData[0].Type = (sbyte)Item.AssetType; | 1549 | InventoryReply.InventoryData[0].Type = (sbyte)Item.AssetType; |
1550 | |||
1551 | //InventoryReply.InventoryData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | ||
1552 | InventoryReply.InventoryData[0].GroupID = Item.GroupID; | ||
1553 | InventoryReply.InventoryData[0].GroupOwned = Item.GroupOwned; | ||
1554 | InventoryReply.InventoryData[0].GroupMask = 0; | ||
1555 | InventoryReply.InventoryData[0].Flags = Item.Flags; | ||
1556 | InventoryReply.InventoryData[0].SalePrice = Item.SalePrice; | ||
1557 | InventoryReply.InventoryData[0].SaleType = Item.SaleType; | ||
1558 | |||
1544 | InventoryReply.InventoryData[0].CRC = | 1559 | InventoryReply.InventoryData[0].CRC = |
1545 | Helpers.InventoryCRC(1000, 0, InventoryReply.InventoryData[0].InvType, | 1560 | Helpers.InventoryCRC(1000, 0, InventoryReply.InventoryData[0].InvType, |
1546 | InventoryReply.InventoryData[0].Type, InventoryReply.InventoryData[0].AssetID, | 1561 | InventoryReply.InventoryData[0].Type, InventoryReply.InventoryData[0].AssetID, |
@@ -4162,11 +4177,30 @@ namespace OpenSim.Region.ClientStack | |||
4162 | 4177 | ||
4163 | if (handlerUpdateInventoryItem != null) | 4178 | if (handlerUpdateInventoryItem != null) |
4164 | { | 4179 | { |
4180 | InventoryItemBase itemUpd = new InventoryItemBase(); | ||
4181 | itemUpd.ID = update.InventoryData[i].ItemID; | ||
4182 | itemUpd.Name = Util.FieldToString(update.InventoryData[i].Name); | ||
4183 | itemUpd.Description = Util.FieldToString(update.InventoryData[i].Description); | ||
4184 | itemUpd.GroupID = update.InventoryData[i].GroupID; | ||
4185 | itemUpd.GroupOwned = update.InventoryData[i].GroupOwned; | ||
4186 | itemUpd.NextPermissions = update.InventoryData[i].NextOwnerMask; | ||
4187 | itemUpd.EveryOnePermissions = update.InventoryData[i].EveryoneMask; | ||
4188 | itemUpd.CreationDate = update.InventoryData[i].CreationDate; | ||
4189 | itemUpd.Folder = update.InventoryData[i].FolderID; | ||
4190 | itemUpd.InvType = update.InventoryData[i].InvType; | ||
4191 | itemUpd.SalePrice = update.InventoryData[i].SalePrice; | ||
4192 | itemUpd.SaleType = update.InventoryData[i].SaleType; | ||
4193 | itemUpd.Flags = update.InventoryData[i].Flags; | ||
4194 | /* | ||
4165 | OnUpdateInventoryItem(this, update.InventoryData[i].TransactionID, | 4195 | OnUpdateInventoryItem(this, update.InventoryData[i].TransactionID, |
4166 | update.InventoryData[i].ItemID, | 4196 | update.InventoryData[i].ItemID, |
4167 | Util.FieldToString(update.InventoryData[i].Name), | 4197 | Util.FieldToString(update.InventoryData[i].Name), |
4168 | Util.FieldToString(update.InventoryData[i].Description), | 4198 | Util.FieldToString(update.InventoryData[i].Description), |
4169 | update.InventoryData[i].NextOwnerMask); | 4199 | update.InventoryData[i].NextOwnerMask); |
4200 | */ | ||
4201 | OnUpdateInventoryItem(this, update.InventoryData[i].TransactionID, | ||
4202 | update.InventoryData[i].ItemID, | ||
4203 | itemUpd); | ||
4170 | } | 4204 | } |
4171 | } | 4205 | } |
4172 | } | 4206 | } |
diff --git a/OpenSim/Region/Communications/Local/LocalInventoryService.cs b/OpenSim/Region/Communications/Local/LocalInventoryService.cs index 175829b..0de00a1 100644 --- a/OpenSim/Region/Communications/Local/LocalInventoryService.cs +++ b/OpenSim/Region/Communications/Local/LocalInventoryService.cs | |||
@@ -95,6 +95,11 @@ namespace OpenSim.Region.Communications.Local | |||
95 | AddItem(item); | 95 | AddItem(item); |
96 | } | 96 | } |
97 | 97 | ||
98 | public override void UpdateInventoryItem(LLUUID userID, InventoryItemBase item) | ||
99 | { | ||
100 | UpdateItem(item); | ||
101 | } | ||
102 | |||
98 | public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) | 103 | public override void DeleteInventoryItem(LLUUID userID, InventoryItemBase item) |
99 | { | 104 | { |
100 | DeleteItem(item); | 105 | DeleteItem(item); |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs index 65f3ee3..5b72f0d 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs | |||
@@ -229,6 +229,21 @@ namespace OpenSim.Region.Communications.OGS1 | |||
229 | } | 229 | } |
230 | } | 230 | } |
231 | 231 | ||
232 | // TODO: this is a temporary workaround, the UpdateInventoryItem method need to be implemented | ||
233 | public void UpdateInventoryItem(LLUUID userID, InventoryItemBase item) | ||
234 | { | ||
235 | try | ||
236 | { | ||
237 | SynchronousRestObjectPoster.BeginPostObject<InventoryItemBase, bool>( | ||
238 | "POST", _inventoryServerUrl + "/NewItem/", item); | ||
239 | } | ||
240 | catch (System.Net.WebException e) | ||
241 | { | ||
242 | m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: Add new inventory item operation failed, {0} {1}", | ||
243 | e.Source, e.Message); | ||
244 | } | ||
245 | } | ||
246 | |||
232 | /// <summary> | 247 | /// <summary> |
233 | /// <see cref="OpenSim.Framework.Communications.IInventoryServices"></see> | 248 | /// <see cref="OpenSim.Framework.Communications.IInventoryServices"></see> |
234 | /// </summary> | 249 | /// </summary> |
diff --git a/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs b/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs index 4d2ec5b..9fa173d 100644 --- a/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs +++ b/OpenSim/Region/Environment/Modules/AgentAssetsTransactions.cs | |||
@@ -150,6 +150,7 @@ namespace OpenSim.Region.Environment.Modules | |||
150 | private string m_description = String.Empty; | 150 | private string m_description = String.Empty; |
151 | private sbyte type = 0; | 151 | private sbyte type = 0; |
152 | private sbyte invType = 0; | 152 | private sbyte invType = 0; |
153 | private byte wearableType = 0; | ||
153 | private uint nextPerm = 0; | 154 | private uint nextPerm = 0; |
154 | private bool m_finished = false; | 155 | private bool m_finished = false; |
155 | private bool m_createItem = false; | 156 | private bool m_createItem = false; |
@@ -314,6 +315,7 @@ namespace OpenSim.Region.Environment.Modules | |||
314 | m_description = description; | 315 | m_description = description; |
315 | this.type = type; | 316 | this.type = type; |
316 | this.invType = invType; | 317 | this.invType = invType; |
318 | this.wearableType = wearableType; | ||
317 | nextPerm = nextOwnerMask; | 319 | nextPerm = nextOwnerMask; |
318 | Asset.Name = name; | 320 | Asset.Name = name; |
319 | Asset.Description = description; | 321 | Asset.Description = description; |
@@ -386,6 +388,7 @@ namespace OpenSim.Region.Environment.Modules | |||
386 | item.BasePermissions = 2147483647; | 388 | item.BasePermissions = 2147483647; |
387 | item.CurrentPermissions = 2147483647; | 389 | item.CurrentPermissions = 2147483647; |
388 | item.NextPermissions = nextPerm; | 390 | item.NextPermissions = nextPerm; |
391 | item.Flags = (uint)wearableType; | ||
389 | 392 | ||
390 | userInfo.AddItem(ourClient.AgentId, item); | 393 | userInfo.AddItem(ourClient.AgentId, item); |
391 | ourClient.SendInventoryItemCreateUpdate(item); | 394 | ourClient.SendInventoryItemCreateUpdate(item); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index d41ede1..7e1b89f 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -260,9 +260,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
260 | /// <param name="name">The name of the updated item</param> | 260 | /// <param name="name">The name of the updated item</param> |
261 | /// <param name="description">The description of the updated item</param> | 261 | /// <param name="description">The description of the updated item</param> |
262 | /// <param name="nextOwnerMask">The permissions of the updated item</param> | 262 | /// <param name="nextOwnerMask">The permissions of the updated item</param> |
263 | public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, | 263 | /* public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, |
264 | LLUUID itemID, string name, string description, | 264 | LLUUID itemID, string name, string description, |
265 | uint nextOwnerMask) | 265 | uint nextOwnerMask)*/ |
266 | public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, | ||
267 | LLUUID itemID, InventoryItemBase itemUpd) | ||
266 | { | 268 | { |
267 | CachedUserInfo userInfo | 269 | CachedUserInfo userInfo |
268 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 270 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
@@ -275,9 +277,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
275 | { | 277 | { |
276 | if (LLUUID.Zero == transactionID) | 278 | if (LLUUID.Zero == transactionID) |
277 | { | 279 | { |
278 | item.Name = name; | 280 | item.Name = itemUpd.Name; |
279 | item.Description = description; | 281 | item.Description = itemUpd.Description; |
280 | item.NextPermissions = nextOwnerMask; | 282 | item.NextPermissions = itemUpd.NextPermissions; |
283 | item.EveryOnePermissions = itemUpd.EveryOnePermissions; | ||
284 | |||
285 | // TODO: Requires sanity checks | ||
286 | //item.GroupID = itemUpd.GroupID; | ||
287 | //item.GroupOwned = itemUpd.GroupOwned; | ||
288 | //item.CreationDate = itemUpd.CreationDate; | ||
289 | |||
290 | // TODO: Check if folder changed and move item | ||
291 | //item.NextPermissions = itemUpd.Folder; | ||
292 | item.InvType = itemUpd.InvType; | ||
293 | item.SalePrice = itemUpd.SalePrice; | ||
294 | item.SaleType = itemUpd.SaleType; | ||
295 | item.Flags = itemUpd.Flags; | ||
281 | 296 | ||
282 | userInfo.UpdateItem(remoteClient.AgentId, item); | 297 | userInfo.UpdateItem(remoteClient.AgentId, item); |
283 | } | 298 | } |
@@ -351,6 +366,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
351 | itemCopy.BasePermissions = item.BasePermissions; | 366 | itemCopy.BasePermissions = item.BasePermissions; |
352 | itemCopy.CurrentPermissions = item.CurrentPermissions; | 367 | itemCopy.CurrentPermissions = item.CurrentPermissions; |
353 | 368 | ||
369 | itemCopy.GroupID = item.GroupID; | ||
370 | itemCopy.GroupOwned = item.GroupOwned; | ||
371 | itemCopy.Flags = item.Flags; | ||
372 | itemCopy.SalePrice = item.SalePrice; | ||
373 | itemCopy.SaleType = item.SaleType; | ||
374 | |||
354 | recipientUserInfo.AddItem(recipientClient.AgentId, itemCopy); | 375 | recipientUserInfo.AddItem(recipientClient.AgentId, itemCopy); |
355 | 376 | ||
356 | // Let the recipient client know about this new item | 377 | // Let the recipient client know about this new item |
@@ -988,6 +1009,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
988 | item.NextPermissions = objectGroup.RootPart.NextOwnerMask; | 1009 | item.NextPermissions = objectGroup.RootPart.NextOwnerMask; |
989 | } | 1010 | } |
990 | 1011 | ||
1012 | // TODO: add the new fields (Flags, Sale info, etc) | ||
1013 | |||
991 | userInfo.AddItem(remoteClient.AgentId, item); | 1014 | userInfo.AddItem(remoteClient.AgentId, item); |
992 | remoteClient.SendInventoryItemCreateUpdate(item); | 1015 | remoteClient.SendInventoryItemCreateUpdate(item); |
993 | } | 1016 | } |