// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using Newtonsoft.Json; using osu.Game.Online.API.Requests.Responses; using osu.Game.Online.Chat; namespace osu.Game.Online.Notifications.WebSocket.Events { /// /// A websocket message sent from the server when new messages arrive. /// [JsonObject(MemberSerialization.OptIn)] public class NewChatMessageData { [JsonProperty(@"messages")] public List Messages { get; set; } = null!; [JsonProperty(@"users")] private List users { get; set; } = null!; [OnDeserialized] private void onDeserialised(StreamingContext context) { foreach (var m in Messages) m.Sender = users.Single(u => u.OnlineID == m.SenderId); } } }