using Maki.Rest; using Maki.Structures.Channels; using Maki.Structures.Messages; using Maki.Structures.Rest; namespace Maki { public class DiscordChannel { public readonly ulong Id; public readonly DiscordServer Server; private readonly Discord client; public string Name { get; internal set; } public DiscordChannelType Type { get; internal set; } public int Position { get; internal set; } public string Topic { get; internal set; } public ulong LastMessageId { get; internal set; } public int Bitrate { get; internal set; } public int UserLimit { get; internal set; } public override string ToString() => $@"<#{Id}>"; internal DiscordChannel(Discord discord, Channel channel, DiscordServer server = null) { client = discord; Id = channel.Id; Name = channel.Name; Type = (DiscordChannelType)channel.Type; Position = channel.Position ?? 0; Topic = channel.Topic; LastMessageId = channel.LastMessageId ?? 0; Bitrate = channel.Bitrate ?? 0; UserLimit = channel.UserLimit ?? 0; Server = server; } public DiscordMessage Send(string text = "", DiscordEmbed embed = null) { RestResponse msg = client.RestClient.Request( RestRequestMethod.POST, RestEndpoints.ChannelMessages(Id), new MessageCreate { Text = text, Embed = embed?.ToStruct(), } ); DiscordMessage message = new DiscordMessage(client, msg.Response, client.members.Find(x => x.User.Id == msg.Response.User.Id), this); client.messages.Add(message); return message; } } }