110 lines
2.8 KiB
C#
110 lines
2.8 KiB
C#
using Maki.Structures.Embeds;
|
|
using Maki.Structures.Users;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
|
|
namespace Maki.Structures.Messages
|
|
{
|
|
/// <summary>
|
|
/// Discord API Message structure
|
|
/// </summary>
|
|
internal struct Message
|
|
{
|
|
/// <summary>
|
|
/// id of the message
|
|
/// </summary>
|
|
[JsonProperty("id")]
|
|
public ulong Id;
|
|
|
|
/// <summary>
|
|
/// id of the channel the message was sent in
|
|
/// </summary>
|
|
[JsonProperty("channel_id")]
|
|
public ulong ChannelId;
|
|
|
|
/// <summary>
|
|
/// the author of this message (doesn't contain a valid user when sent by webhook)
|
|
/// </summary>
|
|
[JsonProperty("author")]
|
|
public User User;
|
|
|
|
/// <summary>
|
|
/// contents of the message
|
|
/// </summary>
|
|
[JsonProperty("content")]
|
|
public string Content;
|
|
|
|
/// <summary>
|
|
/// when this message was sent
|
|
/// </summary>
|
|
[JsonProperty("timestamp")]
|
|
public DateTime Sent;
|
|
|
|
/// <summary>
|
|
/// when this message was edited (or null if never)
|
|
/// </summary>
|
|
[JsonProperty("edited_timestamp")]
|
|
public DateTime? Edited;
|
|
|
|
/// <summary>
|
|
/// whether this was a TTS message
|
|
/// </summary>
|
|
[JsonProperty("tts")]
|
|
public bool IsTTS;
|
|
|
|
/// <summary>
|
|
/// whether this message mentions everyone
|
|
/// </summary>
|
|
[JsonProperty("mention_everyone")]
|
|
public bool MentioningEveryone;
|
|
|
|
/// <summary>
|
|
/// users specifically mentioned in the message
|
|
/// </summary>
|
|
[JsonProperty("mentions")]
|
|
public User[] Mentions;
|
|
|
|
/// <summary>
|
|
/// roles specifically mentioned in this message
|
|
/// </summary>
|
|
[JsonProperty("mention_roles")]
|
|
public ulong[] MentionsRoles;
|
|
|
|
/// <summary>
|
|
/// any attached files
|
|
/// </summary>
|
|
[JsonProperty("attachments")]
|
|
public Attachment[] Attachments;
|
|
|
|
/// <summary>
|
|
/// any embedded content
|
|
/// </summary>
|
|
[JsonProperty("embeds")]
|
|
public Embed[] Embeds;
|
|
|
|
/// <summary>
|
|
/// reactions to the message
|
|
/// Not actually populated ever???
|
|
/// </summary>
|
|
[JsonProperty("reactions")]
|
|
public MessageReaction[] Reactions;
|
|
|
|
/// <summary>
|
|
/// used for validating a message was sent
|
|
/// </summary>
|
|
[JsonProperty("nonce")]
|
|
public long? Nonce;
|
|
|
|
/// <summary>
|
|
/// whether this message is pinned
|
|
/// </summary>
|
|
[JsonProperty("pinned")]
|
|
public bool IsPinned;
|
|
|
|
/// <summary>
|
|
/// if the message is generated by a webhook, this is the webhook's id
|
|
/// </summary>
|
|
[JsonProperty("webhook_id")]
|
|
public string WebhookId;
|
|
}
|
|
}
|