|
- using System.Diagnostics;
- using Model = Discord.API.Presence;
-
- namespace Discord.WebSocket
- {
- //TODO: C#7 Candidate for record type
- [DebuggerDisplay(@"{DebuggerDisplay,nq}")]
- public struct SocketPresence : IPresence
- {
- public UserStatus Status { get; }
- public Activity? Activity { get; }
-
- internal SocketPresence(UserStatus status, Activity? game)
- {
- Status = status;
- Activity = game;
- }
- internal static SocketPresence Create(Model model)
- {
- return new SocketPresence(model.Status, model.Activity != null ? model.Activity.ToEntity() : (Activity?)null);
- }
-
- public override string ToString() => Status.ToString();
- private string DebuggerDisplay => $"{Status}{(Activity != null ? $", {Activity.Value.Name} ({Activity.Value.Type})" : "")}";
-
- internal SocketPresence Clone() => this;
- }
- }
|