Make it possible for a prim to issue commands on behalf of another prim

Issue #11 new
Satomi Ahn created an issue

This proposal is for helping making simple RLV relays that would manage multiple RLV sources with no interference (concering @getstatus and exceptions).

This is actually a request for a Relay API that would encapsulate RLV API commands along with needed metadata (obviously: the originating object), so that the viewer handles these RLV commands as if they were coming from that other prim.

Garbage collecting would check for the relay continued existence instead of that of the foreign prim.

The reason behind this proposal is that none of the existing choices are satisfying: * mono-source relays are too limited (no RLV furniture in RLV zones) * single-prim multi-source relays cannot handle implicit exceptions unless they know the exact list of =n commands establishing implicit exceptions for corresponding =force commands coming from the same prim. Not to mention @getstatus does not work, and the memory management is a nightmare. * multi-prim multi-source relays use way too many scripts and do not handle explicit exceptions such as @touchme=n. Also they are unpractical for integration within a larger project (like a collar for instance).

What we need is to be able to issue the following commands from a relay: * @$@RelayAPI|FromId:<uuid_of_the_source>|RlvCmd:<command in the syntax of the RLV API> (note that the keyword "RlvCmd", states what API is being encapsulated. Why should relays be syntactically limited to strictly RLV?) * @$@RelayAPI|ClearAll * keep room for extensions

What would be also great would be a mechanism in the viewer for permanent storage of restrictions (for restoring on relog).

Also using muted lists to automatically block RLV devices belonging to griefers would be neat.

Note: I know this proposal can actually work, as I already have a working implementation as a patch for RLVa and a simple relay script. Now, it would really be useful only if all RLV API enabled viewers were also shipped with the Relay API.

Comments (0)

  1. Log in to comment