Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a complete rewrite of the old semi-broken oc_timer plugin, that can move it from being something of limited value that didn't entirely work any more to being a far more useful universal timer function for OC. Using this, it's now possible to unlock virtually ANY restrictions, all together or individually, on a timer. Alternatively it can be used to implement restrictions or functions on a time delay.
It has built in functions to clear restirctions, unleash and unpose on timer, but also allows a list of custom commands to be entered in the form of chat commands separated by a collar that will be executed when the timer runs out. Thus it could be used to for example send someone home after the time is up, or to free them from a cage on the timer, or to unlock a folder that has been locked on them and detach the attachments within it on a timer, or virtually anything else.
It is written using LinksetData using the methods that will be used in OC9.x. However it's stand-alone and runs on OC8.3. There are still a number of functions it will not use LSD for, notably the same old auth/dialog system via link messages, rather than handling auth locally which will be possible when OC_API and OC_Settings are migrated to LSD.
This PR includes changes to oc_api to re-enable a wearer lockout function. This is something the wearer has to allow, and when enabled, the wearer is locked out of their own collar while the timer is active. This enables using a self-owned OC for self-bondage. Note that this is an extensible function, not unique to timer, and could be used for other functions in future such as capture, without interfering.