Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
121 stars 2 forks source link

Session/World open status #1354

Closed BigRedWolfy closed 4 months ago

BigRedWolfy commented 4 months ago

Is your feature request related to a problem? Please describe.

Getting the status of a session or world being open is proving somewhat problematic for headlesses without the use of workaround solutions like session orbs.

Describe the solution you'd like

I think there are 2 potential solutions resolve this in a cleaner manner than what is currently available.

Adding 1 or 2 components to show statuses For sessions:

Or alternatively. The session orb spawner could have a filter field for session id and/or world rec. This would only spawn worlds that match the filter criteria.

Having a way to get the uri to join the world in world orbs would also be great as a tag, dynamic variable or slot

This could be used in worlds such as the Mentor Hub and Mentor Gathering world as both struggle with this.

In the mentor hub there is a portal for being teleported to different sessions and destinations are supposed to only available when the session is online. In the case of the Mentor Gathering world, I expect it to be open at potentially any time and using a static time-based mechanism will not suffice in future. The session-based description above would work well. I don't expect the session to have different uris.

In the mentor gathering world, additional joinable sessions are intended to float in part of the room to allow users to quickly switch between sessions when created using the button in the center of the room. The description of the world-based one would be helpful for this purpose as well.

Describe alternatives you've considered

I have tried a few different solutions each with their own drawbacks.

I have tried using a get request to check every session shown in the Resonite API and using protoflux, search through the returned string for references to the session or world I'm looking for. However this is hard to get working in sessions with headlesses especially with noone in them.

Using the session orb spawner is probably one of the more promising alternatives. Having to nuke 99% of the orbs I see as a potential problem. This seems like a bit of a roundabout solution, but could work in the meantime. The delay in which it is updated sometimes makes it a bit hard to tell if it's working, but having it update every second would probably cause unnecessary strain on infrastructure.

Cloud vars seem a little messy to do without a bot to cleanly keep variables up to date, but is a solution I have considered.

Additional Context

No response

Requesters

BigRedWolfy (Discord: bigredwolfy)

Frooxius commented 4 months ago

Have you tried using SessionInfoSource component that's under "World" category?

This sounds like it would provide you the information you want. You provide it with SesionId and it will fill itself with information about the session - including if it's currently open.

BigRedWolfy commented 4 months ago

Thanks Froox, never seen this component before, this'll be really handy

shiftyscales commented 4 months ago

Does that fill the needs of this issue then, @BigRedWolfy?

BigRedWolfy commented 4 months ago

Yep