secondlife / jira-archive

3 stars 0 forks source link

[BUG-230893] llRequestInventoryData for LAST_OWNER_ID #8466

Open sl-service-account opened 3 years ago

sl-service-account commented 3 years ago

How would you like the feature to work?

It would be incredibly useful to know the id of last owner for objects dropped into a prim, by llAllowInventoryDrop. This could be implemented in any event, but llRequestInventoryData already exists and only supports landmarks currently.

Why is this feature important to you? How would it benefit the community?

The current workaround is to have a user touch, enable llAllowInventoryDrop, tell them to ctrl+drag inventory, and shut it off after a timer. This requires us to 'hope' that nobody else slipped something in, and therefore they must further confirm or otherwise have inventory management scripted in.

A product Ive had marketed for a decade now has to give users elaborate instructions and restrictions just to submit an image to compete in a contest. To keep things organized for everyone, each user has been given their own inventory and ability to clear/add items, which means 25+ more scripts are added to the object when one would suffice, if I could just detect last owner. Getting inventory creator is already a thing, but as this is a photo contest, people sometimes get others to take the photo they pose for.

As the object never has the condition 'drag to texture an item' (who even does that), it would be easiest and preferred if one without edit permissions just drag and drop on the linkset and have the root take care of everything.

Additional reasons to know who submitted an item:

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-230893 | | Summary | llRequestInventoryData for LAST_OWNER_ID | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Pazako Karu (pazako.karu) | | Created at | 2021-06-25T08:28:38Z | | Updated at | 2021-07-07T18:04:53Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2021-06-26T14:20:33.226-0500', 'How would you like the feature to work?': 'It would be incredibly useful to know the id of last owner for objects dropped into a prim, by llAllowInventoryDrop. This could be implemented in any event, but llRequestInventoryData already exists and only supports landmarks currently. ', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': "The current workaround is to have a user touch, enable llAllowInventoryDrop, tell them to ctrl+drag inventory, and shut it off after a timer. This requires us to 'hope' that nobody else slipped something in, and therefore they must further confirm or otherwise have inventory management scripted in. \r\n\r\nA product Ive had marketed for a decade now has to give users elaborate instructions and restrictions just to submit an image to compete in a contest. To keep things organized for everyone, each user has been given their own inventory and ability to clear/add items, which means 25+ more scripts are added to the object when one would suffice, if I could just detect last owner. Getting inventory creator is already a thing, but as this is a photo contest, people sometimes get others to take the photo they pose for.\r\n\r\nAs the object never has the condition 'drag to texture an item' (who even does that), it would be easiest and preferred if one without edit permissions *just* drag and drop on the linkset and have the root take care of everything. \r\n\r\n", } ```
sl-service-account commented 3 years ago

Lucia Nightfire commented at 2021-06-26T19:20:33Z

Just an FYI, the only time last_owner prim detail is 100% accurate is after raw material rezzing and after deeding.

During any other time, it isn't updated unless a group change is done on the object.

This means an object can change hands hundreds of times and last owner will not change.

In the environment you mentioned, we would really need to introduce a new "offerer" inventory item detail that gets updated when an item is dropped in or given to the host and a llGetInventoryOfferer() script function to read that item detail.

I suggest a nomenclature different from "last owner", but it could still be used as long as it is accurate.

I, too, have a need to access such data.

Other inventory item metadata I would like access to is who last compiled/saved a script, notecard, gesture or day/sky/water setting as the creator parameter is immutable, but the compiler is not.

sl-service-account commented 3 years ago

Pazako Karu commented at 2021-06-26T23:43:13Z

Sounds like you've described a bug that also needs fixing, then. I'm not particular to how I can gain the last owner/offerer, only that I can get it reliably without torturing users with intricate instructions and confirmations. I also added several bonus scenarios where having the knowledge of last owner is crucial but currently prohibitive. 

sl-service-account commented 3 years ago

Lucia Nightfire commented at 2021-06-27T02:18:21Z

Some of those use cases you added would need access to creation time which would be another data point that would need to be pulled in when creator is, else, just going by object name and creator can still lead to fake/obfuscated objects since the host object owner might have mod/trans prims in the wild.

Also, the offerer detail might need to return an object key if an item was received via a scripted object using llGiveInventory().

sl-service-account commented 3 years ago

Pazako Karu commented at 2021-06-27T04:33:43Z

For objects, the script could rez them with a parameter for verification, but yes creation time would help in the case of creating duplicates. It would also likely help with some copybot issues depending on how exactly those work, assuming they dont also copy creation time. I dont know. I would personally use something like this for more trivial things like a ride ticket, as the difficulty in replicating them can exceed the value of just buying one. 

sl-service-account commented 3 years ago

Lucia Nightfire commented at 2021-06-27T06:24:53Z

Rezzing objects is a risk, especially if some idiot drops a sim crasher, lagger, replicating physics rezzer, IM spammer, inventory offer spammer into your receiver with an obfuscated name.

I've personally seen this when working for a sandbox that had crates that allowed others to share "freebies" for others to grab.

sl-service-account commented 3 years ago

Kyle Linden commented at 2021-07-07T18:04:54Z

Hello, We may implement some version of this request in the future.

Thanks for the suggestion!