Discord.Net/experiment/Discord.Net.Rpc/Entities/Messages/RpcSystemMessage.cs
2024-06-13 17:47:39 +12:00

33 lines
1.1 KiB
C#

using Discord.Rest;
using System.Diagnostics;
using Model = Discord.API.Rpc.Message;
namespace Discord.Rpc
{
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public class RpcSystemMessage : RpcMessage, ISystemMessage
{
public MessageType Type { get; private set; }
internal RpcSystemMessage(DiscordRpcClient discord, ulong id, RestVirtualMessageChannel channel, RpcUser author)
: base(discord, id, channel, author, MessageSource.System)
{
}
internal new static RpcSystemMessage Create(DiscordRpcClient discord, ulong channelId, Model model)
{
var entity = new RpcSystemMessage(discord, model.Id,
RestVirtualMessageChannel.Create(discord, channelId),
RpcUser.Create(discord, model.Author.Value, model.WebhookId.ToNullable()));
entity.Update(model);
return entity;
}
internal override void Update(Model model)
{
base.Update(model);
Type = model.Type;
}
private string DebuggerDisplay => $"{Author}: {Content} ({Id}, {Type})";
}
}