85 lines
2.7 KiB
C#
85 lines
2.7 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Net.Mail;
|
|||
|
|
|||
|
namespace Myriad.Types
|
|||
|
{
|
|||
|
public record Message
|
|||
|
{
|
|||
|
[Flags]
|
|||
|
public enum MessageFlags
|
|||
|
{
|
|||
|
Crossposted = 1 << 0,
|
|||
|
IsCrosspost = 1 << 1,
|
|||
|
SuppressEmbeds = 1 << 2,
|
|||
|
SourceMessageDeleted = 1 << 3,
|
|||
|
Urgent = 1 << 4,
|
|||
|
Ephemeral = 1 << 6
|
|||
|
}
|
|||
|
|
|||
|
public enum MessageType
|
|||
|
{
|
|||
|
Default = 0,
|
|||
|
RecipientAdd = 1,
|
|||
|
RecipientRemove = 2,
|
|||
|
Call = 3,
|
|||
|
ChannelNameChange = 4,
|
|||
|
ChannelIconChange = 5,
|
|||
|
ChannelPinnedMessage = 6,
|
|||
|
GuildMemberJoin = 7,
|
|||
|
UserPremiumGuildSubscription = 8,
|
|||
|
UserPremiumGuildSubscriptionTier1 = 9,
|
|||
|
UserPremiumGuildSubscriptionTier2 = 10,
|
|||
|
UserPremiumGuildSubscriptionTier3 = 11,
|
|||
|
ChannelFollowAdd = 12,
|
|||
|
GuildDiscoveryDisqualified = 14,
|
|||
|
GuildDiscoveryRequalified = 15,
|
|||
|
Reply = 19,
|
|||
|
ApplicationCommand = 20
|
|||
|
}
|
|||
|
|
|||
|
public ulong Id { get; init; }
|
|||
|
public ulong ChannelId { get; init; }
|
|||
|
public ulong? GuildId { get; init; }
|
|||
|
public User Author { get; init; }
|
|||
|
public string? Content { get; init; }
|
|||
|
public string? Timestamp { get; init; }
|
|||
|
public string? EditedTimestamp { get; init; }
|
|||
|
public bool Tts { get; init; }
|
|||
|
public bool MentionEveryone { get; init; }
|
|||
|
public User.Extra[] Mentions { get; init; }
|
|||
|
public ulong[] MentionRoles { get; init; }
|
|||
|
|
|||
|
public Attachment[] Attachments { get; init; }
|
|||
|
public Embed[] Embeds { get; init; }
|
|||
|
public Reaction[] Reactions { get; init; }
|
|||
|
public bool Pinned { get; init; }
|
|||
|
public ulong? WebhookId { get; init; }
|
|||
|
public MessageType Type { get; init; }
|
|||
|
public Reference? MessageReference { get; set; }
|
|||
|
public MessageFlags Flags { get; init; }
|
|||
|
|
|||
|
// todo: null vs. absence
|
|||
|
public Message? ReferencedMessage { get; init; }
|
|||
|
|
|||
|
public record Reference(ulong? GuildId, ulong? ChannelId, ulong? MessageId);
|
|||
|
|
|||
|
public record Attachment
|
|||
|
{
|
|||
|
public ulong Id { get; init; }
|
|||
|
public string Filename { get; init; }
|
|||
|
public int Size { get; init; }
|
|||
|
public string Url { get; init; }
|
|||
|
public string ProxyUrl { get; init; }
|
|||
|
public int? Width { get; init; }
|
|||
|
public int? Height { get; init; }
|
|||
|
}
|
|||
|
|
|||
|
public record Reaction
|
|||
|
{
|
|||
|
public int Count { get; init; }
|
|||
|
public bool Me { get; init; }
|
|||
|
public Emoji Emoji { get; init; }
|
|||
|
}
|
|||
|
}
|
|||
|
}
|