Skip to content

Adjust multiplayer logic to accommodate for referees spectating in-game#37152

Merged
peppy merged 16 commits intoppy:masterfrom
bdach:referee-in-room
Apr 3, 2026
Merged

Adjust multiplayer logic to accommodate for referees spectating in-game#37152
peppy merged 16 commits intoppy:masterfrom
bdach:referee-in-room

Conversation

@bdach
Copy link
Copy Markdown
Collaborator

@bdach bdach commented Mar 30, 2026

This PR is a corollary of ppy/osu-server-spectator#453 and all of the dispensations referee users in a multiplayer have received therein. The goal here is to allow access to all relevant room management functions even if the referee in question isn't host, as well as to disallow access to all non-relevant functions to do with the actual match gameplay.

I'm not going to lie, this logic is ugly. I would argue that it already was ugly on master and my goal was to operate with as light a touch as possible myself. But you could see this as copping out and that I should try to refactor some of this. I will try - but only after someone else's seen the initial approach and deemed it unsuitable.

The logic in MatchStartControl is awful - there are so many moving pieces of state that dictate what can happen when with all the buttons, and yes, I am making it worse here.

This time there is some test coverage. Not everything is covered, but the coverage should be on par in all components and pieces of relevant logic I touched that already had tests covering them. On that note, please forgive the diffstat size, but the tests are most of that size.

Copy link
Copy Markdown
Member

@peppy peppy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems to be fine

@peppy peppy merged commit 31c1168 into ppy:master Apr 3, 2026
5 of 10 checks passed
@github-project-automation github-project-automation bot moved this from Pending Review to Done in osu! team task tracker Apr 3, 2026
@bdach bdach deleted the referee-in-room branch April 3, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add way of realtime interfacing with multiplayer rooms from outside the game

2 participants