29 lines
902 B
C#
29 lines
902 B
C#
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 Game? Game { get; }
|
|
|
|
internal SocketPresence(UserStatus status, Game? game)
|
|
{
|
|
Status = status;
|
|
Game = game;
|
|
}
|
|
internal static SocketPresence Create(Model model)
|
|
{
|
|
return new SocketPresence(model.Status, model.Game != null ? Discord.Game.Create(model.Game) : (Game?)null);
|
|
}
|
|
|
|
public override string ToString() => Status.ToString();
|
|
internal string DebuggerDisplay => $"{Status}{(Game != null ? $", {Game.Value.Name} ({Game.Value.StreamType})" : "")}";
|
|
|
|
internal SocketPresence Clone() => this;
|
|
}
|
|
}
|