1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-23 02:39:52 +08:00
Files
osu-lazer/osu.Game/Online/Matchmaking/IMatchmakingClient.cs
T
Dan Balasescu ae032622ac Unimplement legacy compatibility method (#36812)
The spectator server invokes both legacy and non-legacy methods to keep
compatibility with older clients:


https://github.com/ppy/osu-server-spectator/blob/fe0dad324587c8a12a2f203fd8289ce64182c2d9/osu.Server.Spectator/Hubs/Multiplayer/Matchmaking/Queue/MatchmakingQueueBackgroundService.cs#L292-L299

I thought that it'd be a good idea to implement the legacy method here,
but it turns out to not be such a good idea because it means ranked-play
clients will assume they're receiving a quick play invitation.
2026-03-05 00:31:43 +09:00

71 lines
3.0 KiB
C#

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
using System.Threading.Tasks;
namespace osu.Game.Online.Matchmaking
{
public interface IMatchmakingClient : IStatefulUserHubClient
{
/// <summary>
/// Signals that the local user was placed in the matchmaking queue.
/// </summary>
Task MatchmakingQueueJoined();
/// <summary>
/// Signals that the local user was removed from the matchmaking queue.
/// </summary>
Task MatchmakingQueueLeft();
/// <summary>
/// Signals that a match has been found and the local user is invited to it.
/// The invitation may be <see cref="IMatchmakingServer.MatchmakingAcceptInvitation">accepted</see>,
/// <see cref="IMatchmakingServer.MatchmakingDeclineInvitation">declined</see>,
/// or ignored - in which case it will automatically be declined after a short timeout period.
/// </summary>
/// <remarks>
/// Provided for compatibility with older clients - can be removed 20260825.
/// </remarks>
[Obsolete]
Task MatchmakingRoomInvited();
/// <summary>
/// Signals that a match has been found and the local user is invited to it.
/// The invitation may be <see cref="IMatchmakingServer.MatchmakingAcceptInvitation">accepted</see>,
/// <see cref="IMatchmakingServer.MatchmakingDeclineInvitation">declined</see>,
/// or ignored - in which case it will automatically be declined after a short timeout period.
/// </summary>
Task MatchmakingRoomInvitedWithParams(MatchmakingRoomInvitationParams invitation);
/// <summary>
/// Signals that the matchmaking room is ready to be opened.
/// </summary>
Task MatchmakingRoomReady(long roomId, string password);
/// <summary>
/// The matchmaking lobby status has changed.
/// </summary>
Task MatchmakingLobbyStatusChanged(MatchmakingLobbyStatus status);
/// <summary>
/// The matchmaking status of the current user has changed.
/// </summary>
Task MatchmakingQueueStatusChanged(MatchmakingQueueStatus status);
/// <summary>
/// The user has raised a candidate playlist item to be played.
/// </summary>
/// <param name="userId">The notifying user.</param>
/// <param name="playlistItemId">The playlist item candidate raised, or -1 as a special value that indicates a random selection.</param>
Task MatchmakingItemSelected(int userId, long playlistItemId);
/// <summary>
/// The user has removed a candidate playlist item.
/// </summary>
/// <param name="userId">The notifying user.</param>
/// <param name="playlistItemId">The playlist item candidate removed, or -1 as a special value that indicates a random selection.</param>
Task MatchmakingItemDeselected(int userId, long playlistItemId);
}
}