1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 03:27:24 +08:00

Update interface to remove items

This commit is contained in:
Dan Balasescu 2021-11-10 19:58:25 +09:00
parent aad4b8ff80
commit 78793d8624
5 changed files with 12 additions and 12 deletions

View File

@ -116,8 +116,8 @@ namespace osu.Game.Online.Multiplayer
/// <summary>
/// Signals that an item has been removed from the playlist.
/// </summary>
/// <param name="item">The removed item.</param>
Task PlaylistItemRemoved(APIPlaylistItem item);
/// <param name="playlistItemId">The removed item.</param>
Task PlaylistItemRemoved(long playlistItemId);
/// <summary>
/// Signals that an item has been changed in the playlist.

View File

@ -86,7 +86,7 @@ namespace osu.Game.Online.Multiplayer
/// <summary>
/// Removes an item from the playlist.
/// </summary>
/// <param name="item">The item to remove.</param>
Task RemovePlaylistItem(APIPlaylistItem item);
/// <param name="playlistItemId">The item to remove.</param>
Task RemovePlaylistItem(long playlistItemId);
}
}

View File

@ -307,7 +307,7 @@ namespace osu.Game.Online.Multiplayer
public abstract Task AddPlaylistItem(APIPlaylistItem item);
public abstract Task RemovePlaylistItem(APIPlaylistItem item);
public abstract Task RemovePlaylistItem(long playlistItemId);
Task IMultiplayerClient.RoomStateChanged(MultiplayerRoomState state)
{
@ -613,7 +613,7 @@ namespace osu.Game.Online.Multiplayer
}).ConfigureAwait(false);
}
public Task PlaylistItemRemoved(APIPlaylistItem item)
public Task PlaylistItemRemoved(long playlistItemId)
{
if (Room == null)
return Task.CompletedTask;
@ -625,7 +625,7 @@ namespace osu.Game.Online.Multiplayer
Debug.Assert(APIRoom != null);
APIRoom.Playlist.RemoveAll(i => i.ID == item.ID);
APIRoom.Playlist.RemoveAll(i => i.ID == playlistItemId);
RoomUpdated?.Invoke();
});
}

View File

@ -63,7 +63,7 @@ namespace osu.Game.Online.Multiplayer
connection.On<int, MatchUserState>(nameof(IMultiplayerClient.MatchUserStateChanged), ((IMultiplayerClient)this).MatchUserStateChanged);
connection.On<MatchServerEvent>(nameof(IMultiplayerClient.MatchEvent), ((IMultiplayerClient)this).MatchEvent);
connection.On<APIPlaylistItem>(nameof(IMultiplayerClient.PlaylistItemAdded), ((IMultiplayerClient)this).PlaylistItemAdded);
connection.On<APIPlaylistItem>(nameof(IMultiplayerClient.PlaylistItemRemoved), ((IMultiplayerClient)this).PlaylistItemRemoved);
connection.On<long>(nameof(IMultiplayerClient.PlaylistItemRemoved), ((IMultiplayerClient)this).PlaylistItemRemoved);
connection.On<APIPlaylistItem>(nameof(IMultiplayerClient.PlaylistItemChanged), ((IMultiplayerClient)this).PlaylistItemChanged);
};
@ -159,12 +159,12 @@ namespace osu.Game.Online.Multiplayer
return connection.InvokeAsync(nameof(IMultiplayerServer.AddPlaylistItem), item);
}
public override Task RemovePlaylistItem(APIPlaylistItem item)
public override Task RemovePlaylistItem(long playlistItemId)
{
if (!IsConnected.Value)
return Task.CompletedTask;
return connection.InvokeAsync(nameof(IMultiplayerServer.RemovePlaylistItem), item);
return connection.InvokeAsync(nameof(IMultiplayerServer.RemovePlaylistItem), playlistItemId);
}
protected override Task<APIBeatmapSet> GetOnlineBeatmapSet(int beatmapId, CancellationToken cancellationToken = default)

View File

@ -299,14 +299,14 @@ namespace osu.Game.Tests.Visual.Multiplayer
await addPlaylistItem(item).ConfigureAwait(false);
}
public override Task RemovePlaylistItem(APIPlaylistItem item)
public override Task RemovePlaylistItem(long playlistItemId)
{
Debug.Assert(Room != null);
if (Room.Host?.UserID != LocalUser?.UserID)
throw new InvalidOperationException("Local user is not the room host.");
return ((IMultiplayerClient)this).PlaylistItemRemoved(item);
return ((IMultiplayerClient)this).PlaylistItemRemoved(playlistItemId);
}
protected override Task<APIBeatmapSet> GetOnlineBeatmapSet(int beatmapId, CancellationToken cancellationToken = default)