diff --git a/src/Discord.Net.API/AssemblyInfo.cs b/src/Discord.Net.API/AssemblyInfo.cs deleted file mode 100644 index 49872adaf..000000000 --- a/src/Discord.Net.API/AssemblyInfo.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Discord.Net.Core")] -[assembly: InternalsVisibleTo("Discord.Net.Rest")] -[assembly: InternalsVisibleTo("Discord.Net.Rpc")] -[assembly: InternalsVisibleTo("Discord.Net.WebSocket")] -[assembly: InternalsVisibleTo("Discord.Net.Commands")] -[assembly: InternalsVisibleTo("Discord.Net.Tests")] \ No newline at end of file diff --git a/src/Discord.Net.Commands/Discord.Net.Commands.csproj b/src/Discord.Net.Commands/Discord.Net.Commands.csproj index a375d3255..643bac7bc 100644 --- a/src/Discord.Net.Commands/Discord.Net.Commands.csproj +++ b/src/Discord.Net.Commands/Discord.Net.Commands.csproj @@ -1,4 +1,4 @@ - + A Discord.Net extension adding support for bot commands. 1.0.0-beta2 @@ -16,7 +16,6 @@ - diff --git a/src/Discord.Net.Commands/ModuleBase.cs b/src/Discord.Net.Commands/ModuleBase.cs index ccd96ed08..4b8e1727d 100644 --- a/src/Discord.Net.Commands/ModuleBase.cs +++ b/src/Discord.Net.Commands/ModuleBase.cs @@ -10,7 +10,7 @@ namespace Discord.Commands { public T Context { get; private set; } - protected virtual async Task ReplyAsync(string message, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + protected virtual async Task ReplyAsync(string message, bool isTTS = false, Embed embed = null, RequestOptions options = null) { return await Context.Channel.SendMessageAsync(message, isTTS, embed, options).ConfigureAwait(false); } diff --git a/src/Discord.Net.Core/Audio/AudioInStream.cs b/src/Discord.Net.Core/Audio/AudioInStream.cs new file mode 100644 index 000000000..e6c9c4b04 --- /dev/null +++ b/src/Discord.Net.Core/Audio/AudioInStream.cs @@ -0,0 +1,8 @@ +using System.IO; + +namespace Discord.Audio +{ + public abstract class AudioInStream : Stream + { + } +} diff --git a/src/Discord.Net.Core/Discord.Net.Core.csproj b/src/Discord.Net.Core/Discord.Net.Core.csproj index 5ba8b7c0c..238f3e4e2 100644 --- a/src/Discord.Net.Core/Discord.Net.Core.csproj +++ b/src/Discord.Net.Core/Discord.Net.Core.csproj @@ -15,9 +15,6 @@ - - - diff --git a/src/Discord.Net.API/Common/Direction.cs b/src/Discord.Net.Core/Entities/Channels/Direction.cs similarity index 100% rename from src/Discord.Net.API/Common/Direction.cs rename to src/Discord.Net.Core/Entities/Channels/Direction.cs diff --git a/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs b/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs index 893f5726a..ee47a7280 100644 --- a/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs +++ b/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; diff --git a/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs b/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs index 389a2cc27..9c9c63929 100644 --- a/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs +++ b/src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs @@ -8,7 +8,7 @@ namespace Discord public interface IMessageChannel : IChannel { /// Sends a message to this message channel. - Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null); + Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null); #if NETSTANDARD1_3 /// Sends a file to this text channel, with an optional caption. Task SendFileAsync(string filePath, string text = null, bool isTTS = false, RequestOptions options = null); diff --git a/src/Discord.Net.Core/Entities/Channels/ITextChannel.cs b/src/Discord.Net.Core/Entities/Channels/ITextChannel.cs index 9a89a6fa4..038faf6bc 100644 --- a/src/Discord.Net.Core/Entities/Channels/ITextChannel.cs +++ b/src/Discord.Net.Core/Entities/Channels/ITextChannel.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Threading.Tasks; namespace Discord diff --git a/src/Discord.Net.Core/Entities/Channels/IVoiceChannel.cs b/src/Discord.Net.Core/Entities/Channels/IVoiceChannel.cs index dfcb226de..d25576c65 100644 --- a/src/Discord.Net.Core/Entities/Channels/IVoiceChannel.cs +++ b/src/Discord.Net.Core/Entities/Channels/IVoiceChannel.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using Discord.Audio; +using Discord.Audio; using System; using System.Threading.Tasks; diff --git a/src/Discord.Net.API/Common/DefaultMessageNotifications.cs b/src/Discord.Net.Core/Entities/Guilds/DefaultMessageNotifications.cs similarity index 100% rename from src/Discord.Net.API/Common/DefaultMessageNotifications.cs rename to src/Discord.Net.Core/Entities/Guilds/DefaultMessageNotifications.cs diff --git a/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs b/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs index 94f79afa5..e925991eb 100644 --- a/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs +++ b/src/Discord.Net.Core/Entities/Guilds/GuildEmoji.cs @@ -1,7 +1,5 @@ using System.Collections.Generic; -using System.Collections.Immutable; using System.Diagnostics; -using Model = Discord.API.Emoji; namespace Discord { @@ -14,7 +12,7 @@ namespace Discord public bool RequireColons { get; } public IReadOnlyList RoleIds { get; } - private GuildEmoji(ulong id, string name, bool isManaged, bool requireColons, IReadOnlyList roleIds) + internal GuildEmoji(ulong id, string name, bool isManaged, bool requireColons, IReadOnlyList roleIds) { Id = id; Name = name; @@ -22,10 +20,6 @@ namespace Discord RequireColons = requireColons; RoleIds = roleIds; } - internal static GuildEmoji Create(Model model) - { - return new GuildEmoji(model.Id.Value, model.Name, model.Managed, model.RequireColons, ImmutableArray.Create(model.Roles)); - } public override string ToString() => Name; private string DebuggerDisplay => $"{Name} ({Id})"; diff --git a/src/Discord.Net.Core/Entities/Guilds/IGuild.cs b/src/Discord.Net.Core/Entities/Guilds/IGuild.cs index a324248f5..f62ea080c 100644 --- a/src/Discord.Net.Core/Entities/Guilds/IGuild.cs +++ b/src/Discord.Net.Core/Entities/Guilds/IGuild.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using Discord.Audio; +using Discord.Audio; using System; using System.Collections.Generic; using System.Threading.Tasks; diff --git a/src/Discord.Net.API/Common/MfaLevel.cs b/src/Discord.Net.Core/Entities/Guilds/MfaLevel.cs similarity index 100% rename from src/Discord.Net.API/Common/MfaLevel.cs rename to src/Discord.Net.Core/Entities/Guilds/MfaLevel.cs diff --git a/src/Discord.Net.API/Common/PermissionTarget.cs b/src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs similarity index 100% rename from src/Discord.Net.API/Common/PermissionTarget.cs rename to src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs diff --git a/src/Discord.Net.API/Common/VerificationLevel.cs b/src/Discord.Net.Core/Entities/Guilds/VerificationLevel.cs similarity index 100% rename from src/Discord.Net.API/Common/VerificationLevel.cs rename to src/Discord.Net.Core/Entities/Guilds/VerificationLevel.cs diff --git a/src/Discord.Net.Core/Entities/Image.cs b/src/Discord.Net.Core/Entities/Image.cs index 6e7cf1f2a..59fe8bbdb 100644 --- a/src/Discord.Net.Core/Entities/Image.cs +++ b/src/Discord.Net.Core/Entities/Image.cs @@ -1,6 +1,4 @@ using System.IO; -using Model = Discord.API.Image; - namespace Discord { /// @@ -30,10 +28,5 @@ namespace Discord Stream = File.OpenRead(path); } #endif - - public Model ToModel() - { - return new Model(Stream); - } } } diff --git a/src/Discord.Net.Core/Entities/Messages/Embed.cs b/src/Discord.Net.Core/Entities/Messages/Embed.cs new file mode 100644 index 000000000..ebde05d4c --- /dev/null +++ b/src/Discord.Net.Core/Entities/Messages/Embed.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Immutable; +using System.Diagnostics; + +namespace Discord +{ + [DebuggerDisplay(@"{DebuggerDisplay,nq}")] + public class Embed : IEmbed + { + public string Type { get; } + + public string Description { get; internal set; } + public string Url { get; internal set; } + public string Title { get; internal set; } + public DateTimeOffset? Timestamp { get; internal set; } + public Color? Color { get; internal set; } + public EmbedImage? Image { get; internal set; } + public EmbedVideo? Video { get; internal set; } + public EmbedAuthor? Author { get; internal set; } + public EmbedFooter? Footer { get; internal set; } + public EmbedProvider? Provider { get; internal set; } + public EmbedThumbnail? Thumbnail { get; internal set; } + public ImmutableArray Fields { get; internal set; } + + internal Embed(string type) + { + Type = type; + Fields = ImmutableArray.Create(); + } + internal Embed(string type, + string title, + string description, + string url, + DateTimeOffset? timestamp, + Color? color, + EmbedImage? image, + EmbedVideo? video, + EmbedAuthor? author, + EmbedFooter? footer, + EmbedProvider? provider, + EmbedThumbnail? thumbnail, + ImmutableArray fields) + { + Type = type; + Title = title; + Description = description; + Url = url; + Color = color; + Timestamp = timestamp; + Image = image; + Video = video; + Author = author; + Footer = footer; + Provider = provider; + Thumbnail = thumbnail; + Fields = fields; + } + + public override string ToString() => Title; + private string DebuggerDisplay => $"{Title} ({Type})"; + } +} diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedAuthor.cs b/src/Discord.Net.Core/Entities/Messages/EmbedAuthor.cs index b0ed0f08f..142e36832 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedAuthor.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedAuthor.cs @@ -1,27 +1,22 @@ using System.Diagnostics; -using Model = Discord.API.EmbedAuthor; namespace Discord { [DebuggerDisplay("{DebuggerDisplay,nq}")] public struct EmbedAuthor { - public string Name { get; set; } - public string Url { get; set; } - public string IconUrl { get; set; } - public string ProxyIconUrl { get; set; } + public string Name { get; internal set; } + public string Url { get; internal set; } + public string IconUrl { get; internal set; } + public string ProxyIconUrl { get; internal set; } - private EmbedAuthor(string name, string url, string iconUrl, string proxyIconUrl) + internal EmbedAuthor(string name, string url, string iconUrl, string proxyIconUrl) { Name = name; Url = url; IconUrl = iconUrl; ProxyIconUrl = proxyIconUrl; } - internal static EmbedAuthor Create(Model model) - { - return new EmbedAuthor(model.Name, model.Url, model.IconUrl, model.ProxyIconUrl); - } private string DebuggerDisplay => $"{Name} ({Url})"; public override string ToString() => Name; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedField.cs b/src/Discord.Net.Core/Entities/Messages/EmbedField.cs index 257074e41..f7c1f8348 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedField.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedField.cs @@ -1,25 +1,20 @@ using System.Diagnostics; -using Model = Discord.API.EmbedField; namespace Discord { [DebuggerDisplay("{DebuggerDisplay,nq}")] public struct EmbedField { - public string Name { get; set; } - public string Value { get; set; } - public bool Inline { get; set; } + public string Name { get; internal set; } + public string Value { get; internal set; } + public bool Inline { get; internal set; } - private EmbedField(string name, string value, bool inline) + internal EmbedField(string name, string value, bool inline) { Name = name; Value = value; Inline = inline; } - internal static EmbedField Create(Model model) - { - return new EmbedField(model.Name, model.Value, model.Inline); - } private string DebuggerDisplay => $"{Name} ({Value}"; public override string ToString() => Name; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedFooter.cs b/src/Discord.Net.Core/Entities/Messages/EmbedFooter.cs index a69e4b077..33582070a 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedFooter.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedFooter.cs @@ -1,25 +1,20 @@ using System.Diagnostics; -using Model = Discord.API.EmbedFooter; namespace Discord { [DebuggerDisplay("{DebuggerDisplay,nq}")] public struct EmbedFooter { - public string Text { get; set; } - public string IconUrl { get; set; } - public string ProxyUrl { get; set; } + public string Text { get; internal set; } + public string IconUrl { get; internal set; } + public string ProxyUrl { get; internal set; } - private EmbedFooter(string text, string iconUrl, string proxyUrl) + internal EmbedFooter(string text, string iconUrl, string proxyUrl) { Text = text; IconUrl = iconUrl; ProxyUrl = proxyUrl; } - internal static EmbedFooter Create(Model model) - { - return new EmbedFooter(model.Text, model.IconUrl, model.ProxyIconUrl); - } private string DebuggerDisplay => $"{Text} ({IconUrl})"; public override string ToString() => Text; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedImage.cs b/src/Discord.Net.Core/Entities/Messages/EmbedImage.cs index 0b606c11e..fa4847721 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedImage.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedImage.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using Model = Discord.API.EmbedImage; namespace Discord { @@ -11,19 +10,13 @@ namespace Discord public int? Height { get; } public int? Width { get; } - private EmbedImage(string url, string proxyUrl, int? height, int? width) + internal EmbedImage(string url, string proxyUrl, int? height, int? width) { Url = url; ProxyUrl = proxyUrl; Height = height; Width = width; } - internal static EmbedImage Create(Model model) - { - return new EmbedImage(model.Url, model.ProxyUrl, - model.Height.IsSpecified ? model.Height.Value : (int?)null, - model.Width.IsSpecified ? model.Width.Value : (int?)null); - } private string DebuggerDisplay => $"{Url} ({(Width != null && Height != null ? $"{Width}x{Height}" : "0x0")})"; public override string ToString() => Url; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedProvider.cs b/src/Discord.Net.Core/Entities/Messages/EmbedProvider.cs index 64b13e8e3..943ac5b52 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedProvider.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedProvider.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using Model = Discord.API.EmbedProvider; namespace Discord { @@ -9,15 +8,11 @@ namespace Discord public string Name { get; } public string Url { get; } - private EmbedProvider(string name, string url) + internal EmbedProvider(string name, string url) { Name = name; Url = url; } - internal static EmbedProvider Create(Model model) - { - return new EmbedProvider(model.Name, model.Url); - } private string DebuggerDisplay => $"{Name} ({Url})"; public override string ToString() => Name; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedThumbnail.cs b/src/Discord.Net.Core/Entities/Messages/EmbedThumbnail.cs index dac2f5c7c..4e125bf2a 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedThumbnail.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedThumbnail.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using Model = Discord.API.EmbedThumbnail; namespace Discord { @@ -11,19 +10,13 @@ namespace Discord public int? Height { get; } public int? Width { get; } - private EmbedThumbnail(string url, string proxyUrl, int? height, int? width) + internal EmbedThumbnail(string url, string proxyUrl, int? height, int? width) { Url = url; ProxyUrl = proxyUrl; Height = height; Width = width; } - internal static EmbedThumbnail Create(Model model) - { - return new EmbedThumbnail(model.Url, model.ProxyUrl, - model.Height.IsSpecified ? model.Height.Value : (int?)null, - model.Width.IsSpecified ? model.Width.Value : (int?)null); - } private string DebuggerDisplay => $"{Url} ({(Width != null && Height != null ? $"{Width}x{Height}" : "0x0")})"; public override string ToString() => Url; diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedVideo.cs b/src/Discord.Net.Core/Entities/Messages/EmbedVideo.cs index 3c93416d0..eaf6f4a4c 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedVideo.cs +++ b/src/Discord.Net.Core/Entities/Messages/EmbedVideo.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using Model = Discord.API.EmbedVideo; namespace Discord { @@ -10,18 +9,12 @@ namespace Discord public int? Height { get; } public int? Width { get; } - private EmbedVideo(string url, int? height, int? width) + internal EmbedVideo(string url, int? height, int? width) { Url = url; Height = height; Width = width; } - internal static EmbedVideo Create(Model model) - { - return new EmbedVideo(model.Url, - model.Height.IsSpecified ? model.Height.Value : (int?)null, - model.Width.IsSpecified ? model.Width.Value : (int?)null); - } private string DebuggerDisplay => $"{Url} ({(Width != null && Height != null ? $"{Width}x{Height}" : "0x0")})"; public override string ToString() => Url; diff --git a/src/Discord.Net.Core/Entities/Messages/Emoji.cs b/src/Discord.Net.Core/Entities/Messages/Emoji.cs index 6faa3e1a4..f0a0489e2 100644 --- a/src/Discord.Net.Core/Entities/Messages/Emoji.cs +++ b/src/Discord.Net.Core/Entities/Messages/Emoji.cs @@ -1,28 +1,22 @@ -using Discord.API; -using System; +using System; using System.Diagnostics; using System.Globalization; -using Model = Discord.API.Emoji; namespace Discord { [DebuggerDisplay("{DebuggerDisplay,nq}")] public struct Emoji { - public ulong Id { get; } + public ulong? Id { get; } public string Name { get; } - public string Url => CDN.GetEmojiUrl(Id); + public string Url => Id != null ? CDN.GetEmojiUrl(Id.Value) : null; - internal Emoji(ulong id, string name) + internal Emoji(ulong? id, string name) { Id = id; Name = name; } - internal static Emoji Create(Model emoji) - { - return new Emoji(emoji.Id.GetValueOrDefault(), emoji.Name); - } public static Emoji Parse(string text) { diff --git a/src/Discord.Net.Core/Entities/Messages/MessageProperties.cs b/src/Discord.Net.Core/Entities/Messages/MessageProperties.cs index df8c51dea..b3f3a9c89 100644 --- a/src/Discord.Net.Core/Entities/Messages/MessageProperties.cs +++ b/src/Discord.Net.Core/Entities/Messages/MessageProperties.cs @@ -32,6 +32,6 @@ /// /// The embed the message should display /// - public Optional Embed { get; set; } + public Optional Embed { get; set; } } } diff --git a/src/Discord.Net.API/Common/MessageType.cs b/src/Discord.Net.Core/Entities/Messages/MessageType.cs similarity index 100% rename from src/Discord.Net.API/Common/MessageType.cs rename to src/Discord.Net.Core/Entities/Messages/MessageType.cs diff --git a/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs b/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs index ff5b00623..bda67a870 100644 --- a/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs +++ b/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs @@ -1,6 +1,4 @@ -using Model = Discord.API.Overwrite; - -namespace Discord +namespace Discord { public struct Overwrite { @@ -18,8 +16,5 @@ namespace Discord TargetType = targetType; Permissions = permissions; } - - public Overwrite(Model model) - : this(model.TargetId, model.TargetType, new OverwritePermissions(model.Allow, model.Deny)) { } } } diff --git a/src/Discord.Net.Core/Entities/Roles/IRole.cs b/src/Discord.Net.Core/Entities/Roles/IRole.cs index 54cc5d1ee..c40e0d716 100644 --- a/src/Discord.Net.Core/Entities/Roles/IRole.cs +++ b/src/Discord.Net.Core/Entities/Roles/IRole.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Threading.Tasks; namespace Discord diff --git a/src/Discord.Net.Core/Entities/Users/Game.cs b/src/Discord.Net.Core/Entities/Users/Game.cs index 5bed84ddb..3405b0dd4 100644 --- a/src/Discord.Net.Core/Entities/Users/Game.cs +++ b/src/Discord.Net.Core/Entities/Users/Game.cs @@ -1,5 +1,4 @@ using System.Diagnostics; -using Model = Discord.API.Game; namespace Discord { @@ -18,12 +17,6 @@ namespace Discord } private Game(string name) : this(name, null, StreamType.NotStreaming) { } - internal static Game Create(Model model) - { - return new Game(model.Name, - model.StreamUrl.GetValueOrDefault(null), - model.StreamType.GetValueOrDefault(null) ?? StreamType.NotStreaming); - } public override string ToString() => Name; private string DebuggerDisplay => StreamUrl != null ? $"{Name} ({StreamUrl})" : Name; diff --git a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs index d31c4fefb..79e8f5dcc 100644 --- a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs +++ b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; diff --git a/src/Discord.Net.API/Common/StreamType.cs b/src/Discord.Net.Core/Entities/Users/StreamType.cs similarity index 100% rename from src/Discord.Net.API/Common/StreamType.cs rename to src/Discord.Net.Core/Entities/Users/StreamType.cs diff --git a/src/Discord.Net.API/Common/UserStatus.cs b/src/Discord.Net.Core/Entities/Users/UserStatus.cs similarity index 100% rename from src/Discord.Net.API/Common/UserStatus.cs rename to src/Discord.Net.Core/Entities/Users/UserStatus.cs diff --git a/src/Discord.Net.API/Optional.cs b/src/Discord.Net.Core/Utils/Optional.cs similarity index 100% rename from src/Discord.Net.API/Optional.cs rename to src/Discord.Net.Core/Utils/Optional.cs diff --git a/src/Discord.Net.API/Common/Application.cs b/src/Discord.Net.Rest/API/Common/Application.cs similarity index 95% rename from src/Discord.Net.API/Common/Application.cs rename to src/Discord.Net.Rest/API/Common/Application.cs index e72c6ce79..ca4c443f1 100644 --- a/src/Discord.Net.API/Common/Application.cs +++ b/src/Discord.Net.Rest/API/Common/Application.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Application + internal class Application { [JsonProperty("description")] public string Description { get; set; } diff --git a/src/Discord.Net.API/Common/Attachment.cs b/src/Discord.Net.Rest/API/Common/Attachment.cs similarity index 95% rename from src/Discord.Net.API/Common/Attachment.cs rename to src/Discord.Net.Rest/API/Common/Attachment.cs index 9ab2a798b..4a651d9fa 100644 --- a/src/Discord.Net.API/Common/Attachment.cs +++ b/src/Discord.Net.Rest/API/Common/Attachment.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Attachment + internal class Attachment { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/Ban.cs b/src/Discord.Net.Rest/API/Common/Ban.cs similarity index 91% rename from src/Discord.Net.API/Common/Ban.cs rename to src/Discord.Net.Rest/API/Common/Ban.cs index c1f667e65..202004f53 100644 --- a/src/Discord.Net.API/Common/Ban.cs +++ b/src/Discord.Net.Rest/API/Common/Ban.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Ban + internal class Ban { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Common/Channel.cs b/src/Discord.Net.Rest/API/Common/Channel.cs similarity index 98% rename from src/Discord.Net.API/Common/Channel.cs rename to src/Discord.Net.Rest/API/Common/Channel.cs index 5b02e6806..56a24a1f4 100644 --- a/src/Discord.Net.API/Common/Channel.cs +++ b/src/Discord.Net.Rest/API/Common/Channel.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API { - public class Channel + internal class Channel { //Shared [JsonProperty("id")] diff --git a/src/Discord.Net.API/Common/Connection.cs b/src/Discord.Net.Rest/API/Common/Connection.cs similarity index 94% rename from src/Discord.Net.API/Common/Connection.cs rename to src/Discord.Net.Rest/API/Common/Connection.cs index 0d218d6a2..ad0a76ac1 100644 --- a/src/Discord.Net.API/Common/Connection.cs +++ b/src/Discord.Net.Rest/API/Common/Connection.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Discord.API { - public class Connection + internal class Connection { [JsonProperty("id")] public string Id { get; set; } diff --git a/src/Discord.Net.API/Common/Embed.cs b/src/Discord.Net.Rest/API/Common/Embed.cs similarity index 97% rename from src/Discord.Net.API/Common/Embed.cs rename to src/Discord.Net.Rest/API/Common/Embed.cs index 33b97e641..f6325efbb 100644 --- a/src/Discord.Net.API/Common/Embed.cs +++ b/src/Discord.Net.Rest/API/Common/Embed.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Embed + internal class Embed { [JsonProperty("title")] public string Title { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedAuthor.cs b/src/Discord.Net.Rest/API/Common/EmbedAuthor.cs similarity index 92% rename from src/Discord.Net.API/Common/EmbedAuthor.cs rename to src/Discord.Net.Rest/API/Common/EmbedAuthor.cs index 973f7d5ea..e69fee6eb 100644 --- a/src/Discord.Net.API/Common/EmbedAuthor.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedAuthor.cs @@ -2,7 +2,7 @@ namespace Discord.API { - public class EmbedAuthor + internal class EmbedAuthor { [JsonProperty("name")] public string Name { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedField.cs b/src/Discord.Net.Rest/API/Common/EmbedField.cs similarity index 90% rename from src/Discord.Net.API/Common/EmbedField.cs rename to src/Discord.Net.Rest/API/Common/EmbedField.cs index 12aa0137a..6ce810f1a 100644 --- a/src/Discord.Net.API/Common/EmbedField.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedField.cs @@ -2,7 +2,7 @@ namespace Discord.API { - public class EmbedField + internal class EmbedField { [JsonProperty("name")] public string Name { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedFooter.cs b/src/Discord.Net.Rest/API/Common/EmbedFooter.cs similarity index 90% rename from src/Discord.Net.API/Common/EmbedFooter.cs rename to src/Discord.Net.Rest/API/Common/EmbedFooter.cs index 2ad22cae7..27048972e 100644 --- a/src/Discord.Net.API/Common/EmbedFooter.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedFooter.cs @@ -2,7 +2,7 @@ namespace Discord.API { - public class EmbedFooter + internal class EmbedFooter { [JsonProperty("text")] public string Text { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedImage.cs b/src/Discord.Net.Rest/API/Common/EmbedImage.cs similarity index 93% rename from src/Discord.Net.API/Common/EmbedImage.cs rename to src/Discord.Net.Rest/API/Common/EmbedImage.cs index ab4941ae0..a5ef748f8 100644 --- a/src/Discord.Net.API/Common/EmbedImage.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedImage.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class EmbedImage + internal class EmbedImage { [JsonProperty("url")] public string Url { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedProvider.cs b/src/Discord.Net.Rest/API/Common/EmbedProvider.cs similarity index 87% rename from src/Discord.Net.API/Common/EmbedProvider.cs rename to src/Discord.Net.Rest/API/Common/EmbedProvider.cs index c23998628..8c46b10dc 100644 --- a/src/Discord.Net.API/Common/EmbedProvider.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedProvider.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class EmbedProvider + internal class EmbedProvider { [JsonProperty("name")] public string Name { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedThumbnail.cs b/src/Discord.Net.Rest/API/Common/EmbedThumbnail.cs similarity index 92% rename from src/Discord.Net.API/Common/EmbedThumbnail.cs rename to src/Discord.Net.Rest/API/Common/EmbedThumbnail.cs index 59cbd9e6a..f22953a25 100644 --- a/src/Discord.Net.API/Common/EmbedThumbnail.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedThumbnail.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class EmbedThumbnail + internal class EmbedThumbnail { [JsonProperty("url")] public string Url { get; set; } diff --git a/src/Discord.Net.API/Common/EmbedVideo.cs b/src/Discord.Net.Rest/API/Common/EmbedVideo.cs similarity index 91% rename from src/Discord.Net.API/Common/EmbedVideo.cs rename to src/Discord.Net.Rest/API/Common/EmbedVideo.cs index 072004631..09e933784 100644 --- a/src/Discord.Net.API/Common/EmbedVideo.cs +++ b/src/Discord.Net.Rest/API/Common/EmbedVideo.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class EmbedVideo + internal class EmbedVideo { [JsonProperty("url")] public string Url { get; set; } diff --git a/src/Discord.Net.API/Common/Emoji.cs b/src/Discord.Net.Rest/API/Common/Emoji.cs similarity index 95% rename from src/Discord.Net.API/Common/Emoji.cs rename to src/Discord.Net.Rest/API/Common/Emoji.cs index c04786039..bd9c4d466 100644 --- a/src/Discord.Net.API/Common/Emoji.cs +++ b/src/Discord.Net.Rest/API/Common/Emoji.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Emoji + internal class Emoji { [JsonProperty("id")] public ulong? Id { get; set; } diff --git a/src/Discord.Net.API/Common/Game.cs b/src/Discord.Net.Rest/API/Common/Game.cs similarity index 96% rename from src/Discord.Net.API/Common/Game.cs rename to src/Discord.Net.Rest/API/Common/Game.cs index df5c78880..a499d83b0 100644 --- a/src/Discord.Net.API/Common/Game.cs +++ b/src/Discord.Net.Rest/API/Common/Game.cs @@ -5,7 +5,7 @@ using System.Runtime.Serialization; namespace Discord.API { - public class Game + internal class Game { [JsonProperty("name")] public string Name { get; set; } diff --git a/src/Discord.Net.API/Common/Guild.cs b/src/Discord.Net.Rest/API/Common/Guild.cs similarity index 98% rename from src/Discord.Net.API/Common/Guild.cs rename to src/Discord.Net.Rest/API/Common/Guild.cs index 567b34714..b69ba1293 100644 --- a/src/Discord.Net.API/Common/Guild.cs +++ b/src/Discord.Net.Rest/API/Common/Guild.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Guild + internal class Guild { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/GuildEmbed.cs b/src/Discord.Net.Rest/API/Common/GuildEmbed.cs similarity index 89% rename from src/Discord.Net.API/Common/GuildEmbed.cs rename to src/Discord.Net.Rest/API/Common/GuildEmbed.cs index 3cf4176eb..ff8b8e180 100644 --- a/src/Discord.Net.API/Common/GuildEmbed.cs +++ b/src/Discord.Net.Rest/API/Common/GuildEmbed.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class GuildEmbed + internal class GuildEmbed { [JsonProperty("enabled")] public bool Enabled { get; set; } diff --git a/src/Discord.Net.API/Common/GuildMember.cs b/src/Discord.Net.Rest/API/Common/GuildMember.cs similarity index 94% rename from src/Discord.Net.API/Common/GuildMember.cs rename to src/Discord.Net.Rest/API/Common/GuildMember.cs index 116a2b29a..ba3d05462 100644 --- a/src/Discord.Net.API/Common/GuildMember.cs +++ b/src/Discord.Net.Rest/API/Common/GuildMember.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API { - public class GuildMember + internal class GuildMember { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Common/Integration.cs b/src/Discord.Net.Rest/API/Common/Integration.cs similarity index 96% rename from src/Discord.Net.API/Common/Integration.cs rename to src/Discord.Net.Rest/API/Common/Integration.cs index c27649f97..821359975 100644 --- a/src/Discord.Net.API/Common/Integration.cs +++ b/src/Discord.Net.Rest/API/Common/Integration.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API { - public class Integration + internal class Integration { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/IntegrationAccount.cs b/src/Discord.Net.Rest/API/Common/IntegrationAccount.cs similarity index 86% rename from src/Discord.Net.API/Common/IntegrationAccount.cs rename to src/Discord.Net.Rest/API/Common/IntegrationAccount.cs index d1ab761b6..22831e795 100644 --- a/src/Discord.Net.API/Common/IntegrationAccount.cs +++ b/src/Discord.Net.Rest/API/Common/IntegrationAccount.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class IntegrationAccount + internal class IntegrationAccount { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/Invite.cs b/src/Discord.Net.Rest/API/Common/Invite.cs similarity index 92% rename from src/Discord.Net.API/Common/Invite.cs rename to src/Discord.Net.Rest/API/Common/Invite.cs index 646e30a59..67a318c5a 100644 --- a/src/Discord.Net.API/Common/Invite.cs +++ b/src/Discord.Net.Rest/API/Common/Invite.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Invite + internal class Invite { [JsonProperty("code")] public string Code { get; set; } diff --git a/src/Discord.Net.API/Common/InviteChannel.cs b/src/Discord.Net.Rest/API/Common/InviteChannel.cs similarity index 90% rename from src/Discord.Net.API/Common/InviteChannel.cs rename to src/Discord.Net.Rest/API/Common/InviteChannel.cs index 4780573b3..ca9699067 100644 --- a/src/Discord.Net.API/Common/InviteChannel.cs +++ b/src/Discord.Net.Rest/API/Common/InviteChannel.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class InviteChannel + internal class InviteChannel { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/InviteGuild.cs b/src/Discord.Net.Rest/API/Common/InviteGuild.cs similarity index 91% rename from src/Discord.Net.API/Common/InviteGuild.cs rename to src/Discord.Net.Rest/API/Common/InviteGuild.cs index f358625b3..3d6d7cd74 100644 --- a/src/Discord.Net.API/Common/InviteGuild.cs +++ b/src/Discord.Net.Rest/API/Common/InviteGuild.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class InviteGuild + internal class InviteGuild { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/InviteMetadata.cs b/src/Discord.Net.Rest/API/Common/InviteMetadata.cs similarity index 93% rename from src/Discord.Net.API/Common/InviteMetadata.cs rename to src/Discord.Net.Rest/API/Common/InviteMetadata.cs index a9603869d..586307523 100644 --- a/src/Discord.Net.API/Common/InviteMetadata.cs +++ b/src/Discord.Net.Rest/API/Common/InviteMetadata.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API { - public class InviteMetadata : Invite + internal class InviteMetadata : Invite { [JsonProperty("inviter")] public User Inviter { get; set; } diff --git a/src/Discord.Net.API/Common/Message.cs b/src/Discord.Net.Rest/API/Common/Message.cs similarity index 98% rename from src/Discord.Net.API/Common/Message.cs rename to src/Discord.Net.Rest/API/Common/Message.cs index f812d0622..9a7629b96 100644 --- a/src/Discord.Net.API/Common/Message.cs +++ b/src/Discord.Net.Rest/API/Common/Message.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API { - public class Message + internal class Message { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/Overwrite.cs b/src/Discord.Net.Rest/API/Common/Overwrite.cs similarity index 93% rename from src/Discord.Net.API/Common/Overwrite.cs rename to src/Discord.Net.Rest/API/Common/Overwrite.cs index c72e03395..1ba836127 100644 --- a/src/Discord.Net.API/Common/Overwrite.cs +++ b/src/Discord.Net.Rest/API/Common/Overwrite.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Overwrite + internal class Overwrite { [JsonProperty("id")] public ulong TargetId { get; set; } diff --git a/src/Discord.Net.API/Common/Presence.cs b/src/Discord.Net.Rest/API/Common/Presence.cs similarity index 95% rename from src/Discord.Net.API/Common/Presence.cs rename to src/Discord.Net.Rest/API/Common/Presence.cs index 86ccd60bc..2902b7ce3 100644 --- a/src/Discord.Net.API/Common/Presence.cs +++ b/src/Discord.Net.Rest/API/Common/Presence.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Presence + internal class Presence { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Common/Reaction.cs b/src/Discord.Net.Rest/API/Common/Reaction.cs similarity index 62% rename from src/Discord.Net.API/Common/Reaction.cs rename to src/Discord.Net.Rest/API/Common/Reaction.cs index e143004ef..4d368ab2d 100644 --- a/src/Discord.Net.API/Common/Reaction.cs +++ b/src/Discord.Net.Rest/API/Common/Reaction.cs @@ -1,12 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Newtonsoft.Json; +using Newtonsoft.Json; namespace Discord.API { - public class Reaction + internal class Reaction { [JsonProperty("count")] public int Count { get; set; } diff --git a/src/Discord.Net.API/Common/ReadState.cs b/src/Discord.Net.Rest/API/Common/ReadState.cs similarity index 92% rename from src/Discord.Net.API/Common/ReadState.cs rename to src/Discord.Net.Rest/API/Common/ReadState.cs index 7e1cacf56..6ea6e4bd0 100644 --- a/src/Discord.Net.API/Common/ReadState.cs +++ b/src/Discord.Net.Rest/API/Common/ReadState.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class ReadState + internal class ReadState { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/Relationship.cs b/src/Discord.Net.Rest/API/Common/Relationship.cs similarity index 90% rename from src/Discord.Net.API/Common/Relationship.cs rename to src/Discord.Net.Rest/API/Common/Relationship.cs index 877d0cf2a..ecbb96f80 100644 --- a/src/Discord.Net.API/Common/Relationship.cs +++ b/src/Discord.Net.Rest/API/Common/Relationship.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Relationship + internal class Relationship { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/RelationshipType.cs b/src/Discord.Net.Rest/API/Common/RelationshipType.cs similarity index 82% rename from src/Discord.Net.API/Common/RelationshipType.cs rename to src/Discord.Net.Rest/API/Common/RelationshipType.cs index 94f0f73b4..0ed99f396 100644 --- a/src/Discord.Net.API/Common/RelationshipType.cs +++ b/src/Discord.Net.Rest/API/Common/RelationshipType.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API { - public enum RelationshipType + internal enum RelationshipType { Friend = 1, Blocked = 2, diff --git a/src/Discord.Net.API/Common/Role.cs b/src/Discord.Net.Rest/API/Common/Role.cs similarity index 96% rename from src/Discord.Net.API/Common/Role.cs rename to src/Discord.Net.Rest/API/Common/Role.cs index 6a3659489..856a8695f 100644 --- a/src/Discord.Net.API/Common/Role.cs +++ b/src/Discord.Net.Rest/API/Common/Role.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class Role + internal class Role { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/User.cs b/src/Discord.Net.Rest/API/Common/User.cs similarity index 97% rename from src/Discord.Net.API/Common/User.cs rename to src/Discord.Net.Rest/API/Common/User.cs index e8674a95c..d49d24623 100644 --- a/src/Discord.Net.API/Common/User.cs +++ b/src/Discord.Net.Rest/API/Common/User.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class User + internal class User { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/UserGuild.cs b/src/Discord.Net.Rest/API/Common/UserGuild.cs similarity index 94% rename from src/Discord.Net.API/Common/UserGuild.cs rename to src/Discord.Net.Rest/API/Common/UserGuild.cs index 7d7905dae..f4f763885 100644 --- a/src/Discord.Net.API/Common/UserGuild.cs +++ b/src/Discord.Net.Rest/API/Common/UserGuild.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class UserGuild + internal class UserGuild { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Common/VoiceRegion.cs b/src/Discord.Net.Rest/API/Common/VoiceRegion.cs similarity index 94% rename from src/Discord.Net.API/Common/VoiceRegion.cs rename to src/Discord.Net.Rest/API/Common/VoiceRegion.cs index aef07cc78..5f31e8f64 100644 --- a/src/Discord.Net.API/Common/VoiceRegion.cs +++ b/src/Discord.Net.Rest/API/Common/VoiceRegion.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class VoiceRegion + internal class VoiceRegion { [JsonProperty("id")] public string Id { get; set; } diff --git a/src/Discord.Net.API/Common/VoiceState.cs b/src/Discord.Net.Rest/API/Common/VoiceState.cs similarity index 96% rename from src/Discord.Net.API/Common/VoiceState.cs rename to src/Discord.Net.Rest/API/Common/VoiceState.cs index 2039f25f5..563a5f95b 100644 --- a/src/Discord.Net.API/Common/VoiceState.cs +++ b/src/Discord.Net.Rest/API/Common/VoiceState.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class VoiceState + internal class VoiceState { [JsonProperty("guild_id")] public ulong? GuildId { get; set; } diff --git a/src/Discord.Net.API/EntityOrId.cs b/src/Discord.Net.Rest/API/EntityOrId.cs similarity index 90% rename from src/Discord.Net.API/EntityOrId.cs rename to src/Discord.Net.Rest/API/EntityOrId.cs index 01ccdcb22..9bcda260a 100644 --- a/src/Discord.Net.API/EntityOrId.cs +++ b/src/Discord.Net.Rest/API/EntityOrId.cs @@ -1,6 +1,6 @@ namespace Discord.API { - public struct EntityOrId + internal struct EntityOrId { public ulong Id { get; } public T Object { get; } diff --git a/src/Discord.Net.API/Image.cs b/src/Discord.Net.Rest/API/Image.cs similarity index 93% rename from src/Discord.Net.API/Image.cs rename to src/Discord.Net.Rest/API/Image.cs index 5442bd30f..b2357a0a6 100644 --- a/src/Discord.Net.API/Image.cs +++ b/src/Discord.Net.Rest/API/Image.cs @@ -2,7 +2,7 @@ namespace Discord.API { - public struct Image + internal struct Image { public Stream Stream { get; } public string Hash { get; } diff --git a/src/Discord.Net.API/Int53Attribute.cs b/src/Discord.Net.Rest/API/Int53Attribute.cs similarity index 71% rename from src/Discord.Net.API/Int53Attribute.cs rename to src/Discord.Net.Rest/API/Int53Attribute.cs index 3e9139b9d..70ef2f185 100644 --- a/src/Discord.Net.API/Int53Attribute.cs +++ b/src/Discord.Net.Rest/API/Int53Attribute.cs @@ -4,5 +4,5 @@ using System; namespace Discord.API { [AttributeUsage(AttributeTargets.Property)] - public class Int53Attribute : Attribute { } + internal class Int53Attribute : Attribute { } } diff --git a/src/Discord.Net.API/Net/MultipartFile.cs b/src/Discord.Net.Rest/API/Net/MultipartFile.cs similarity index 89% rename from src/Discord.Net.API/Net/MultipartFile.cs rename to src/Discord.Net.Rest/API/Net/MultipartFile.cs index f7244afd7..604852e90 100644 --- a/src/Discord.Net.API/Net/MultipartFile.cs +++ b/src/Discord.Net.Rest/API/Net/MultipartFile.cs @@ -2,7 +2,7 @@ namespace Discord.Net.Rest { - struct MultipartFile + internal struct MultipartFile { public Stream Stream { get; } public string Filename { get; } diff --git a/src/Discord.Net.API/Rest/CreateChannelInviteParams.cs b/src/Discord.Net.Rest/API/Rest/CreateChannelInviteParams.cs similarity index 90% rename from src/Discord.Net.API/Rest/CreateChannelInviteParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateChannelInviteParams.cs index 8a619a8b7..cc3ca6dca 100644 --- a/src/Discord.Net.API/Rest/CreateChannelInviteParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateChannelInviteParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateChannelInviteParams + internal class CreateChannelInviteParams { [JsonProperty("max_age")] public Optional MaxAge { get; set; } diff --git a/src/Discord.Net.API/Rest/CreateDMChannelParams.cs b/src/Discord.Net.Rest/API/Rest/CreateDMChannelParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/CreateDMChannelParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateDMChannelParams.cs index 83fe76e98..f32796e02 100644 --- a/src/Discord.Net.API/Rest/CreateDMChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateDMChannelParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateDMChannelParams + internal class CreateDMChannelParams { [JsonProperty("recipient_id")] public ulong RecipientId { get; } diff --git a/src/Discord.Net.API/Rest/CreateGuildBanParams.cs b/src/Discord.Net.Rest/API/Rest/CreateGuildBanParams.cs similarity index 77% rename from src/Discord.Net.API/Rest/CreateGuildBanParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateGuildBanParams.cs index 724112bc0..0c148fe70 100644 --- a/src/Discord.Net.API/Rest/CreateGuildBanParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateGuildBanParams.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API.Rest { - public class CreateGuildBanParams + internal class CreateGuildBanParams { public Optional DeleteMessageDays { get; set; } } diff --git a/src/Discord.Net.API/Rest/CreateGuildChannelParams.cs b/src/Discord.Net.Rest/API/Rest/CreateGuildChannelParams.cs similarity index 92% rename from src/Discord.Net.API/Rest/CreateGuildChannelParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateGuildChannelParams.cs index f0e06e3d2..bae677148 100644 --- a/src/Discord.Net.API/Rest/CreateGuildChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateGuildChannelParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateGuildChannelParams + internal class CreateGuildChannelParams { [JsonProperty("name")] public string Name { get; } diff --git a/src/Discord.Net.API/Rest/CreateGuildIntegrationParams.cs b/src/Discord.Net.Rest/API/Rest/CreateGuildIntegrationParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/CreateGuildIntegrationParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateGuildIntegrationParams.cs index 0d6e3a654..1053a0ed3 100644 --- a/src/Discord.Net.API/Rest/CreateGuildIntegrationParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateGuildIntegrationParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateGuildIntegrationParams + internal class CreateGuildIntegrationParams { [JsonProperty("id")] public ulong Id { get; } diff --git a/src/Discord.Net.API/Rest/CreateGuildParams.cs b/src/Discord.Net.Rest/API/Rest/CreateGuildParams.cs similarity index 93% rename from src/Discord.Net.API/Rest/CreateGuildParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateGuildParams.cs index 4bc18c28b..cda6caedf 100644 --- a/src/Discord.Net.API/Rest/CreateGuildParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateGuildParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateGuildParams + internal class CreateGuildParams { [JsonProperty("name")] public string Name { get; } diff --git a/src/Discord.Net.API/Rest/CreateMessageParams.cs b/src/Discord.Net.Rest/API/Rest/CreateMessageParams.cs similarity index 92% rename from src/Discord.Net.API/Rest/CreateMessageParams.cs rename to src/Discord.Net.Rest/API/Rest/CreateMessageParams.cs index a0dbb59dd..d77bff8ca 100644 --- a/src/Discord.Net.API/Rest/CreateMessageParams.cs +++ b/src/Discord.Net.Rest/API/Rest/CreateMessageParams.cs @@ -1,11 +1,10 @@ #pragma warning disable CS1591 -using System; using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class CreateMessageParams + internal class CreateMessageParams { [JsonProperty("content")] public string Content { get; } diff --git a/src/Discord.Net.API/Rest/DeleteMessagesParams.cs b/src/Discord.Net.Rest/API/Rest/DeleteMessagesParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/DeleteMessagesParams.cs rename to src/Discord.Net.Rest/API/Rest/DeleteMessagesParams.cs index 09b9a2bf1..ca9d8c26e 100644 --- a/src/Discord.Net.API/Rest/DeleteMessagesParams.cs +++ b/src/Discord.Net.Rest/API/Rest/DeleteMessagesParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class DeleteMessagesParams + internal class DeleteMessagesParams { [JsonProperty("messages")] public ulong[] MessageIds { get; } diff --git a/src/Discord.Net.API/Rest/GetBotGatewayResponse.cs b/src/Discord.Net.Rest/API/Rest/GetBotGatewayResponse.cs similarity index 85% rename from src/Discord.Net.API/Rest/GetBotGatewayResponse.cs rename to src/Discord.Net.Rest/API/Rest/GetBotGatewayResponse.cs index d6d2bed00..111fcf3db 100644 --- a/src/Discord.Net.API/Rest/GetBotGatewayResponse.cs +++ b/src/Discord.Net.Rest/API/Rest/GetBotGatewayResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { - public class GetBotGatewayResponse + internal class GetBotGatewayResponse { [JsonProperty("url")] public string Url { get; set; } diff --git a/src/Discord.Net.API/Rest/GetChannelMessagesParams.cs b/src/Discord.Net.Rest/API/Rest/GetChannelMessagesParams.cs similarity index 85% rename from src/Discord.Net.API/Rest/GetChannelMessagesParams.cs rename to src/Discord.Net.Rest/API/Rest/GetChannelMessagesParams.cs index 2d00833ca..ea5327667 100644 --- a/src/Discord.Net.API/Rest/GetChannelMessagesParams.cs +++ b/src/Discord.Net.Rest/API/Rest/GetChannelMessagesParams.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API.Rest { - public class GetChannelMessagesParams + internal class GetChannelMessagesParams { public Optional Limit { get; set; } public Optional RelativeDirection { get; set; } diff --git a/src/Discord.Net.API/Rest/GetGatewayResponse.cs b/src/Discord.Net.Rest/API/Rest/GetGatewayResponse.cs similarity index 81% rename from src/Discord.Net.API/Rest/GetGatewayResponse.cs rename to src/Discord.Net.Rest/API/Rest/GetGatewayResponse.cs index 1ca03b73b..ce3630170 100644 --- a/src/Discord.Net.API/Rest/GetGatewayResponse.cs +++ b/src/Discord.Net.Rest/API/Rest/GetGatewayResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { - public class GetGatewayResponse + internal class GetGatewayResponse { [JsonProperty("url")] public string Url { get; set; } diff --git a/src/Discord.Net.API/Rest/GetGuildMembersParams.cs b/src/Discord.Net.Rest/API/Rest/GetGuildMembersParams.cs similarity index 81% rename from src/Discord.Net.API/Rest/GetGuildMembersParams.cs rename to src/Discord.Net.Rest/API/Rest/GetGuildMembersParams.cs index 2bd34ddcb..66023cb43 100644 --- a/src/Discord.Net.API/Rest/GetGuildMembersParams.cs +++ b/src/Discord.Net.Rest/API/Rest/GetGuildMembersParams.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API.Rest { - public class GetGuildMembersParams + internal class GetGuildMembersParams { public Optional Limit { get; set; } public Optional AfterUserId { get; set; } diff --git a/src/Discord.Net.API/Rest/GetGuildPruneCountResponse.cs b/src/Discord.Net.Rest/API/Rest/GetGuildPruneCountResponse.cs similarity index 79% rename from src/Discord.Net.API/Rest/GetGuildPruneCountResponse.cs rename to src/Discord.Net.Rest/API/Rest/GetGuildPruneCountResponse.cs index 3f832caee..4af85acfa 100644 --- a/src/Discord.Net.API/Rest/GetGuildPruneCountResponse.cs +++ b/src/Discord.Net.Rest/API/Rest/GetGuildPruneCountResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { - public class GetGuildPruneCountResponse + internal class GetGuildPruneCountResponse { [JsonProperty("pruned")] public int Pruned { get; set; } diff --git a/src/Discord.Net.API/Rest/GetReactionUsersParams.cs b/src/Discord.Net.Rest/API/Rest/GetReactionUsersParams.cs similarity index 78% rename from src/Discord.Net.API/Rest/GetReactionUsersParams.cs rename to src/Discord.Net.Rest/API/Rest/GetReactionUsersParams.cs index bb9b22ab8..d70da5632 100644 --- a/src/Discord.Net.API/Rest/GetReactionUsersParams.cs +++ b/src/Discord.Net.Rest/API/Rest/GetReactionUsersParams.cs @@ -1,6 +1,6 @@ namespace Discord.API.Rest { - public class GetReactionUsersParams + internal class GetReactionUsersParams { public Optional Limit { get; set; } public Optional AfterUserId { get; set; } diff --git a/src/Discord.Net.API/Rest/GuildPruneParams.cs b/src/Discord.Net.Rest/API/Rest/GuildPruneParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/GuildPruneParams.cs rename to src/Discord.Net.Rest/API/Rest/GuildPruneParams.cs index 9cff46992..6a98d3758 100644 --- a/src/Discord.Net.API/Rest/GuildPruneParams.cs +++ b/src/Discord.Net.Rest/API/Rest/GuildPruneParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class GuildPruneParams + internal class GuildPruneParams { [JsonProperty("days")] public int Days { get; } diff --git a/src/Discord.Net.API/Rest/ModifyChannelPermissionsParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyChannelPermissionsParams.cs similarity index 91% rename from src/Discord.Net.API/Rest/ModifyChannelPermissionsParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyChannelPermissionsParams.cs index 8676b22e7..0fe5f7e5a 100644 --- a/src/Discord.Net.API/Rest/ModifyChannelPermissionsParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyChannelPermissionsParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyChannelPermissionsParams + internal class ModifyChannelPermissionsParams { [JsonProperty("type")] public string Type { get; } diff --git a/src/Discord.Net.API/Rest/ModifyCurrentUserNickParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyCurrentUserNickParams.cs similarity index 88% rename from src/Discord.Net.API/Rest/ModifyCurrentUserNickParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyCurrentUserNickParams.cs index ca7ad2bd3..ba44e34cf 100644 --- a/src/Discord.Net.API/Rest/ModifyCurrentUserNickParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyCurrentUserNickParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyCurrentUserNickParams + internal class ModifyCurrentUserNickParams { [JsonProperty("nick")] public string Nickname { get; } diff --git a/src/Discord.Net.API/Rest/ModifyCurrentUserParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyCurrentUserParams.cs similarity index 88% rename from src/Discord.Net.API/Rest/ModifyCurrentUserParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyCurrentUserParams.cs index 3f7afe187..7ba27c3a5 100644 --- a/src/Discord.Net.API/Rest/ModifyCurrentUserParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyCurrentUserParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyCurrentUserParams + internal class ModifyCurrentUserParams { [JsonProperty("username")] public Optional Username { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs similarity index 88% rename from src/Discord.Net.API/Rest/ModifyGuildChannelParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs index 6d6ee4c24..b4add2ac9 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildChannelParams + internal class ModifyGuildChannelParams { [JsonProperty("name")] public Optional Name { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildChannelsParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelsParams.cs similarity index 90% rename from src/Discord.Net.API/Rest/ModifyGuildChannelsParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildChannelsParams.cs index 8ac3299fa..2bbb58ea6 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildChannelsParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildChannelsParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildChannelsParams + internal class ModifyGuildChannelsParams { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildEmbedParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildEmbedParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/ModifyGuildEmbedParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildEmbedParams.cs index f362f8cd7..487744c65 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildEmbedParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildEmbedParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildEmbedParams + internal class ModifyGuildEmbedParams { [JsonProperty("enabled")] public Optional Enabled { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildIntegrationParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildIntegrationParams.cs similarity index 90% rename from src/Discord.Net.API/Rest/ModifyGuildIntegrationParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildIntegrationParams.cs index 3a5526c96..0a1b4f9fa 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildIntegrationParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildIntegrationParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildIntegrationParams + internal class ModifyGuildIntegrationParams { [JsonProperty("expire_behavior")] public Optional ExpireBehavior { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildMemberParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildMemberParams.cs similarity index 93% rename from src/Discord.Net.API/Rest/ModifyGuildMemberParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildMemberParams.cs index 17a8e2da1..159670afb 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildMemberParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildMemberParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildMemberParams + internal class ModifyGuildMemberParams { [JsonProperty("mute")] public Optional Mute { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildParams.cs similarity index 96% rename from src/Discord.Net.API/Rest/ModifyGuildParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildParams.cs index f72ff2c96..2c7d84087 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildParams + internal class ModifyGuildParams { [JsonProperty("username")] public Optional Username { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildRoleParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildRoleParams.cs similarity index 94% rename from src/Discord.Net.API/Rest/ModifyGuildRoleParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildRoleParams.cs index f004b201e..c3c20706b 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildRoleParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildRoleParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildRoleParams + internal class ModifyGuildRoleParams { [JsonProperty("name")] public Optional Name { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyGuildRolesParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyGuildRolesParams.cs similarity index 82% rename from src/Discord.Net.API/Rest/ModifyGuildRolesParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyGuildRolesParams.cs index 2350a8c47..38c3fb646 100644 --- a/src/Discord.Net.API/Rest/ModifyGuildRolesParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyGuildRolesParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyGuildRolesParams : ModifyGuildRoleParams + internal class ModifyGuildRolesParams : ModifyGuildRoleParams { [JsonProperty("id")] public ulong Id { get; } diff --git a/src/Discord.Net.API/Rest/ModifyMessageParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyMessageParams.cs similarity index 89% rename from src/Discord.Net.API/Rest/ModifyMessageParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyMessageParams.cs index c87d82c51..fdff4de15 100644 --- a/src/Discord.Net.API/Rest/ModifyMessageParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyMessageParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyMessageParams + internal class ModifyMessageParams { [JsonProperty("content")] public Optional Content { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyTextChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs similarity index 78% rename from src/Discord.Net.API/Rest/ModifyTextChannelParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs index 3546cee95..311336ec3 100644 --- a/src/Discord.Net.API/Rest/ModifyTextChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyTextChannelParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyTextChannelParams : ModifyGuildChannelParams + internal class ModifyTextChannelParams : ModifyGuildChannelParams { [JsonProperty("topic")] public Optional Topic { get; set; } diff --git a/src/Discord.Net.API/Rest/ModifyVoiceChannelParams.cs b/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs similarity index 82% rename from src/Discord.Net.API/Rest/ModifyVoiceChannelParams.cs rename to src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs index 8b5af9d8e..ce36eb11f 100644 --- a/src/Discord.Net.API/Rest/ModifyVoiceChannelParams.cs +++ b/src/Discord.Net.Rest/API/Rest/ModifyVoiceChannelParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rest { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ModifyVoiceChannelParams : ModifyGuildChannelParams + internal class ModifyVoiceChannelParams : ModifyGuildChannelParams { [JsonProperty("bitrate")] public Optional Bitrate { get; set; } diff --git a/src/Discord.Net.API/Rest/UploadFileParams.cs b/src/Discord.Net.Rest/API/Rest/UploadFileParams.cs similarity index 96% rename from src/Discord.Net.API/Rest/UploadFileParams.cs rename to src/Discord.Net.Rest/API/Rest/UploadFileParams.cs index bbd798900..30bfc7f9a 100644 --- a/src/Discord.Net.API/Rest/UploadFileParams.cs +++ b/src/Discord.Net.Rest/API/Rest/UploadFileParams.cs @@ -5,7 +5,7 @@ using System.IO; namespace Discord.API.Rest { - public class UploadFileParams + internal class UploadFileParams { public Stream File { get; } diff --git a/src/Discord.Net.API/RpcFrame.cs b/src/Discord.Net.Rest/API/RpcFrame.cs similarity index 94% rename from src/Discord.Net.API/RpcFrame.cs rename to src/Discord.Net.Rest/API/RpcFrame.cs index cac150e3b..523378b04 100644 --- a/src/Discord.Net.API/RpcFrame.cs +++ b/src/Discord.Net.Rest/API/RpcFrame.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API.Rpc { - public class RpcFrame + internal class RpcFrame { [JsonProperty("cmd")] public string Cmd { get; set; } diff --git a/src/Discord.Net.API/SocketFrame.cs b/src/Discord.Net.Rest/API/SocketFrame.cs similarity index 93% rename from src/Discord.Net.API/SocketFrame.cs rename to src/Discord.Net.Rest/API/SocketFrame.cs index fd9367ca4..fae741432 100644 --- a/src/Discord.Net.API/SocketFrame.cs +++ b/src/Discord.Net.Rest/API/SocketFrame.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API { - public class SocketFrame + internal class SocketFrame { [JsonProperty("op")] public int Operation { get; set; } diff --git a/src/Discord.Net.Rest/BaseDiscordClient.cs b/src/Discord.Net.Rest/BaseDiscordClient.cs index c36031539..592931c86 100644 --- a/src/Discord.Net.Rest/BaseDiscordClient.cs +++ b/src/Discord.Net.Rest/BaseDiscordClient.cs @@ -23,7 +23,7 @@ namespace Discord.Rest private bool _isFirstLogin; private bool _isDisposed; - public API.DiscordRestApiClient ApiClient { get; } + internal API.DiscordRestApiClient ApiClient { get; } internal LogManager LogManager { get; } public LoginState LoginState { get; private set; } public ISelfUser CurrentUser { get; protected set; } diff --git a/src/Discord.Net.Rest/Discord.Net.Rest.csproj b/src/Discord.Net.Rest/Discord.Net.Rest.csproj index ec4373263..8fc1eb274 100644 --- a/src/Discord.Net.Rest/Discord.Net.Rest.csproj +++ b/src/Discord.Net.Rest/Discord.Net.Rest.csproj @@ -16,7 +16,6 @@ - diff --git a/src/Discord.Net.Rest/DiscordRestApiClient.cs b/src/Discord.Net.Rest/DiscordRestApiClient.cs index 07389f8df..66021db31 100644 --- a/src/Discord.Net.Rest/DiscordRestApiClient.cs +++ b/src/Discord.Net.Rest/DiscordRestApiClient.cs @@ -22,7 +22,7 @@ using System.Threading.Tasks; namespace Discord.API { - public class DiscordRestApiClient : IDisposable + internal class DiscordRestApiClient : IDisposable { private static readonly ConcurrentDictionary> _bucketIdGenerators = new ConcurrentDictionary>(); @@ -45,7 +45,9 @@ namespace Discord.API public LoginState LoginState { get; private set; } public TokenType AuthTokenType { get; private set; } - public User CurrentUser { get; private set; } + internal User CurrentUser { get; private set; } + + public ulong? CurrentUserId => CurrentUser?.Id; public DiscordRestApiClient(RestClientProvider restClientProvider, string userAgent, RetryMode defaultRetryMode = RetryMode.AlwaysRetry, JsonSerializer serializer = null, bool fetchCurrentUser = true) diff --git a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs index e97a59ec5..9126ace5c 100644 --- a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs +++ b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs @@ -150,9 +150,9 @@ namespace Discord.Rest } public static async Task SendMessageAsync(IMessageChannel channel, BaseDiscordClient client, - string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + string text, bool isTTS, Embed embed, RequestOptions options) { - var args = new CreateMessageParams(text) { IsTTS = isTTS, Embed = embed?.Build() }; + var args = new CreateMessageParams(text) { IsTTS = isTTS, Embed = embed.ToModel() }; var model = await client.ApiClient.CreateMessageAsync(channel.Id, args, options).ConfigureAwait(false); return RestUserMessage.Create(client, channel, client.CurrentUser, model); } diff --git a/src/Discord.Net.API/Common/ChannelType.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelType.cs similarity index 100% rename from src/Discord.Net.API/Common/ChannelType.cs rename to src/Discord.Net.Rest/Entities/Channels/ChannelType.cs diff --git a/src/Discord.Net.Rest/Entities/Channels/IRestMessageChannel.cs b/src/Discord.Net.Rest/Entities/Channels/IRestMessageChannel.cs index 7fbbd21c1..2c006834c 100644 --- a/src/Discord.Net.Rest/Entities/Channels/IRestMessageChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/IRestMessageChannel.cs @@ -7,7 +7,7 @@ namespace Discord.Rest public interface IRestMessageChannel : IMessageChannel { /// Sends a message to this message channel. - new Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null); + new Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null); #if NETSTANDARD1_3 /// Sends a file to this text channel, with an optional caption. new Task SendFileAsync(string filePath, string text = null, bool isTTS = false, RequestOptions options = null); diff --git a/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs index 5205d8221..75b331499 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs @@ -63,7 +63,7 @@ namespace Discord.Rest public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -130,7 +130,7 @@ namespace Discord.Rest #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs index 2892695c4..a4b49b118 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs @@ -76,7 +76,7 @@ namespace Discord.Rest public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -140,7 +140,7 @@ namespace Discord.Rest #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs index dc7b3250a..c3b14cbe6 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs @@ -45,7 +45,7 @@ namespace Discord.Rest var overwrites = model.PermissionOverwrites.Value; var newOverwrites = ImmutableArray.CreateBuilder(overwrites.Length); for (int i = 0; i < overwrites.Length; i++) - newOverwrites.Add(new Overwrite(overwrites[i])); + newOverwrites.Add(overwrites[i].ToEntity()); _overwrites = newOverwrites.ToImmutable(); } @@ -83,12 +83,12 @@ namespace Discord.Rest public async Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions perms, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, user, perms, options).ConfigureAwait(false); - _overwrites = _overwrites.Add(new Overwrite(new API.Overwrite { Allow = perms.AllowValue, Deny = perms.DenyValue, TargetId = user.Id, TargetType = PermissionTarget.User })); + _overwrites = _overwrites.Add(new Overwrite(user.Id, PermissionTarget.User, new OverwritePermissions(perms.AllowValue, perms.DenyValue))); } public async Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions perms, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, role, perms, options).ConfigureAwait(false); - _overwrites.Add(new Overwrite(new API.Overwrite { Allow = perms.AllowValue, Deny = perms.DenyValue, TargetId = role.Id, TargetType = PermissionTarget.Role })); + _overwrites = _overwrites.Add(new Overwrite(role.Id, PermissionTarget.Role, new OverwritePermissions(perms.AllowValue, perms.DenyValue))); } public async Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null) { diff --git a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs index 1ce105e02..2687312a7 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -55,7 +54,7 @@ namespace Discord.Rest public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -112,7 +111,7 @@ namespace Discord.Rest #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs index dc4178c3c..664e9c9fc 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RpcVirtualMessageChannel.cs @@ -33,7 +33,7 @@ namespace Discord.Rest public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS, RequestOptions options = null) @@ -90,7 +90,7 @@ namespace Discord.Rest #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs index 3e550e452..340fe7f3c 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs @@ -72,7 +72,7 @@ namespace Discord.Rest { var emojis = ImmutableArray.CreateBuilder(model.Emojis.Length); for (int i = 0; i < model.Emojis.Length; i++) - emojis.Add(GuildEmoji.Create(model.Emojis[i])); + emojis.Add(model.Emojis[i].ToEntity()); _emojis = emojis.ToImmutableArray(); } else diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestGuildIntegration.cs b/src/Discord.Net.Rest/Entities/Guilds/RestGuildIntegration.cs index b4b373338..eadda53f2 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestGuildIntegration.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestGuildIntegration.cs @@ -1,5 +1,4 @@ -using Discord.API.Rest; -using System; +using System; using System.Diagnostics; using System.Threading.Tasks; using Model = Discord.API.Integration; @@ -37,7 +36,7 @@ namespace Discord.Rest return entity; } - public void Update(Model model) + internal void Update(Model model) { Name = model.Name; Type = model.Type; diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs b/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs index cd214c2de..12601b72e 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs @@ -28,7 +28,7 @@ namespace Discord.Rest return entity; } - public void Update(Model model) + internal void Update(Model model) { _iconId = model.Icon; IsOwner = model.Owner; diff --git a/src/Discord.Net.Rest/Entities/Messages/Embed.cs b/src/Discord.Net.Rest/Entities/Messages/Embed.cs deleted file mode 100644 index a291dc6c0..000000000 --- a/src/Discord.Net.Rest/Entities/Messages/Embed.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using System.Collections.Immutable; -using System.Diagnostics; -using System.Linq; -using Model = Discord.API.Embed; - -namespace Discord -{ - [DebuggerDisplay(@"{DebuggerDisplay,nq}")] - public class Embed : IEmbed - { - public string Description { get; } - public string Url { get; } - public string Title { get; } - public string Type { get; } - public DateTimeOffset? Timestamp { get; } - public Color? Color { get; } - public EmbedImage? Image { get; } - public EmbedVideo? Video { get; } - public EmbedAuthor? Author { get; } - public EmbedFooter? Footer { get; } - public EmbedProvider? Provider { get; } - public EmbedThumbnail? Thumbnail { get; } - public ImmutableArray Fields { get; } - - internal Embed(string type, - string title, - string description, - string url, - DateTimeOffset? timestamp, - Color? color, - EmbedImage? image, - EmbedVideo? video, - EmbedAuthor? author, - EmbedFooter? footer, - EmbedProvider? provider, - EmbedThumbnail? thumbnail, - ImmutableArray fields) - { - Type = type; - Title = title; - Description = description; - Url = url; - Color = color; - Timestamp = timestamp; - Image = image; - Video = video; - Author = author; - Footer = footer; - Provider = provider; - Thumbnail = thumbnail; - Fields = fields; - } - internal static Embed Create(Model model) - { - return new Embed(model.Type, model.Title, model.Description, model.Url,model.Timestamp, - model.Color.HasValue ? new Color(model.Color.Value) : (Color?)null, - model.Image.IsSpecified ? EmbedImage.Create(model.Image.Value) : (EmbedImage?)null, - model.Video.IsSpecified ? EmbedVideo.Create(model.Video.Value) : (EmbedVideo?)null, - model.Author.IsSpecified ? EmbedAuthor.Create(model.Author.Value) : (EmbedAuthor?)null, - model.Footer.IsSpecified ? EmbedFooter.Create(model.Footer.Value) : (EmbedFooter?)null, - model.Provider.IsSpecified ? EmbedProvider.Create(model.Provider.Value) : (EmbedProvider?)null, - model.Thumbnail.IsSpecified ? EmbedThumbnail.Create(model.Thumbnail.Value) : (EmbedThumbnail?)null, - model.Fields.IsSpecified ? model.Fields.Value.Select(EmbedField.Create).ToImmutableArray() : ImmutableArray.Create()); - } - - public override string ToString() => Title; - private string DebuggerDisplay => $"{Title} ({Type})"; - } -} diff --git a/src/Discord.Net.Core/Entities/Messages/EmbedBuilder.cs b/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs similarity index 58% rename from src/Discord.Net.Core/Entities/Messages/EmbedBuilder.cs rename to src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs index 767641f0e..2f5e954be 100644 --- a/src/Discord.Net.Core/Entities/Messages/EmbedBuilder.cs +++ b/src/Discord.Net.Rest/Entities/Messages/EmbedBuilder.cs @@ -1,32 +1,28 @@ using System; using System.Collections.Generic; -using Embed = Discord.API.Embed; -using Field = Discord.API.EmbedField; -using Author = Discord.API.EmbedAuthor; -using Footer = Discord.API.EmbedFooter; -using Thumbnail = Discord.API.EmbedThumbnail; -using ImageEmbed = Discord.API.EmbedImage; +using System.Collections.Immutable; namespace Discord { public class EmbedBuilder { - private readonly Embed _model; - private readonly List _fields; + private readonly Embed _embed; + private readonly List _fields; public EmbedBuilder() { - _model = new Embed { Type = "rich" }; - _fields = new List(); + _embed = new Embed("rich"); + _fields = new List(); } - public string Title { get { return _model.Title; } set { _model.Title = value; } } - public string Description { get { return _model.Description; } set { _model.Description = value; } } - public string Url { get { return _model.Url; } set { _model.Url = value; } } - public string ThumbnailUrl { get; set; } - public string ImageUrl { get; set; } - public DateTimeOffset? Timestamp { get; set; } - public Color? Color { get { return _model.Color.HasValue ? new Color(_model.Color.Value) : (Color?)null; } set { _model.Color = value?.RawValue; } } + public string Title { get { return _embed.Title; } set { _embed.Title = value; } } + public string Description { get { return _embed.Description; } set { _embed.Description = value; } } + public string Url { get { return _embed.Url; } set { _embed.Url = value; } } + public string ThumbnailUrl { get { return _embed.Thumbnail?.Url; } set { _embed.Thumbnail = new EmbedThumbnail(value, null, null, null); } } + public string ImageUrl { get { return _embed.Image?.Url; } set { _embed.Image = new EmbedImage(value, null, null, null); } } + public DateTimeOffset? Timestamp { get { return _embed.Timestamp; } set { _embed.Timestamp = value; } } + public Color? Color { get { return _embed.Color; } set { _embed.Color = value; } } + public EmbedAuthorBuilder Author { get; set; } public EmbedFooterBuilder Footer { get; set; } @@ -100,33 +96,34 @@ namespace Discord { var field = new EmbedFieldBuilder(); action(field); - _fields.Add(field.ToModel()); + _fields.Add(field); return this; } - internal Embed Build() + public Embed Build() { - _model.Author = Author?.ToModel(); - _model.Footer = Footer?.ToModel(); - _model.Timestamp = Timestamp?.ToUniversalTime(); - _model.Thumbnail = ThumbnailUrl != null ? new Thumbnail { Url = ThumbnailUrl } : null; - _model.Image = ImageUrl != null ? new ImageEmbed { Url = ImageUrl } : null; - _model.Fields = _fields.ToArray(); - return _model; + _embed.Footer = Footer?.Build(); + _embed.Author = Author?.Build(); + var fields = ImmutableArray.CreateBuilder(_fields.Count); + for (int i = 0; i < _fields.Count; i++) + fields.Add(_fields[i].Build()); + _embed.Fields = fields.ToImmutable(); + return _embed; } + public static implicit operator Embed(EmbedBuilder builder) => builder?.Build(); } public class EmbedFieldBuilder { - private readonly Field _model; + private EmbedField _field; - public string Name { get { return _model.Name; } set { _model.Name = value; } } - public string Value { get { return _model.Value; } set { _model.Value = value; } } - public bool IsInline { get { return _model.Inline; } set { _model.Inline = value; } } + public string Name { get { return _field.Name; } set { _field.Name = value; } } + public string Value { get { return _field.Value; } set { _field.Value = value; } } + public bool IsInline { get { return _field.Inline; } set { _field.Inline = value; } } public EmbedFieldBuilder() { - _model = new Field(); + _field = new EmbedField(); } public EmbedFieldBuilder WithName(string name) @@ -145,20 +142,21 @@ namespace Discord return this; } - internal Field ToModel() => _model; + public EmbedField Build() + => _field; } public class EmbedAuthorBuilder { - private readonly Author _model; + private EmbedAuthor _author; - public string Name { get { return _model.Name; } set { _model.Name = value; } } - public string Url { get { return _model.Url; } set { _model.Url = value; } } - public string IconUrl { get { return _model.IconUrl; } set { _model.IconUrl = value; } } + public string Name { get { return _author.Name; } set { _author.Name = value; } } + public string Url { get { return _author.Url; } set { _author.Url = value; } } + public string IconUrl { get { return _author.IconUrl; } set { _author.IconUrl = value; } } public EmbedAuthorBuilder() { - _model = new Author(); + _author = new EmbedAuthor(); } public EmbedAuthorBuilder WithName(string name) @@ -177,19 +175,20 @@ namespace Discord return this; } - internal Author ToModel() => _model; + public EmbedAuthor Build() + => _author; } public class EmbedFooterBuilder { - private readonly Footer _model; + private EmbedFooter _footer; - public string Text { get { return _model.Text; } set { _model.Text = value; } } - public string IconUrl { get { return _model.IconUrl; } set { _model.IconUrl = value; } } + public string Text { get { return _footer.Text; } set { _footer.Text = value; } } + public string IconUrl { get { return _footer.IconUrl; } set { _footer.IconUrl = value; } } public EmbedFooterBuilder() { - _model = new Footer(); + _footer = new EmbedFooter(); } public EmbedFooterBuilder WithText(string text) @@ -203,6 +202,7 @@ namespace Discord return this; } - internal Footer ToModel() => _model; + public EmbedFooter Build() + => _footer; } } diff --git a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs index f3aa70676..0afb8d36d 100644 --- a/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs +++ b/src/Discord.Net.Rest/Entities/Messages/MessageHelper.cs @@ -18,7 +18,7 @@ namespace Discord.Rest var apiArgs = new API.Rest.ModifyMessageParams { Content = args.Content, - Embed = args.Embed.IsSpecified ? args.Embed.Value.Build() : Optional.Create() + Embed = args.Embed.IsSpecified ? args.Embed.Value.ToModel() : Optional.Create() }; return await client.ApiClient.ModifyMessageAsync(msg.Channel.Id, msg.Id, apiArgs, options).ConfigureAwait(false); } diff --git a/src/Discord.Net.Rest/Entities/Messages/RestReaction.cs b/src/Discord.Net.Rest/Entities/Messages/RestReaction.cs index d957c9145..933833d56 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestReaction.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestReaction.cs @@ -1,6 +1,6 @@ using Model = Discord.API.Reaction; -namespace Discord +namespace Discord.Rest { public class RestReaction : IReaction { @@ -16,7 +16,7 @@ namespace Discord } internal static RestReaction Create(Model model) { - return new RestReaction(Emoji.Create(model.Emoji), model.Count, model.Me); + return new RestReaction(new Emoji(model.Emoji.Id, model.Emoji.Name), model.Count, model.Me); } } } diff --git a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs index 4ae25a142..2d13ed3f7 100644 --- a/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs +++ b/src/Discord.Net.Rest/Entities/Messages/RestUserMessage.cs @@ -78,7 +78,7 @@ namespace Discord.Rest { var embeds = ImmutableArray.CreateBuilder(value.Length); for (int i = 0; i < value.Length; i++) - embeds.Add(Embed.Create(value[i])); + embeds.Add(value[i].ToEntity()); _embeds = embeds.ToImmutable(); } else diff --git a/src/Discord.Net.Rest/Entities/Users/RestUser.cs b/src/Discord.Net.Rest/Entities/Users/RestUser.cs index 5dada416c..9b43b88ac 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestUser.cs @@ -52,7 +52,7 @@ namespace Discord.Rest => UserHelper.CreateDMChannelAsync(this, Discord, options); public override string ToString() => $"{Username}#{Discriminator}"; - internal string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; + private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; //IUser Task IUser.GetDMChannelAsync(CacheMode mode, RequestOptions options) diff --git a/src/Discord.Net.Rest/Extensions/EntityExtensions.cs b/src/Discord.Net.Rest/Extensions/EntityExtensions.cs new file mode 100644 index 000000000..7a9643674 --- /dev/null +++ b/src/Discord.Net.Rest/Extensions/EntityExtensions.cs @@ -0,0 +1,124 @@ +using System.Collections.Immutable; +using System.Linq; + +namespace Discord.Rest +{ + internal static class EntityExtensions + { + public static GuildEmoji ToEntity(this API.Emoji model) + { + return new GuildEmoji(model.Id.Value, model.Name, model.Managed, model.RequireColons, ImmutableArray.Create(model.Roles)); + } + + public static Embed ToEntity(this API.Embed model) + { + return new Embed(model.Type, model.Title, model.Description, model.Url, model.Timestamp, + model.Color.HasValue ? new Color(model.Color.Value) : (Color?)null, + model.Image.IsSpecified ? model.Image.Value.ToEntity() : (EmbedImage?)null, + model.Video.IsSpecified ? model.Video.Value.ToEntity() : (EmbedVideo?)null, + model.Author.IsSpecified ? model.Author.Value.ToEntity() : (EmbedAuthor?)null, + model.Footer.IsSpecified ? model.Footer.Value.ToEntity() : (EmbedFooter?)null, + model.Provider.IsSpecified ? model.Provider.Value.ToEntity() : (EmbedProvider?)null, + model.Thumbnail.IsSpecified ? model.Thumbnail.Value.ToEntity() : (EmbedThumbnail?)null, + model.Fields.IsSpecified ? model.Fields.Value.Select(x => x.ToEntity()).ToImmutableArray() : ImmutableArray.Create()); + } + public static API.Embed ToModel(this Embed entity) + { + var model = new API.Embed + { + Type = entity.Type, + Title = entity.Title, + Description = entity.Description, + Url = entity.Url, + Timestamp = entity.Timestamp, + Color = entity.Color?.RawValue + }; + if (entity.Author != null) + model.Author = entity.Author.Value.ToModel(); + model.Fields = entity.Fields.Select(x => x.ToModel()).ToArray(); + if (entity.Footer != null) + model.Footer = entity.Footer.Value.ToModel(); + if (entity.Image != null) + model.Image = entity.Image.Value.ToModel(); + if (entity.Provider != null) + model.Provider = entity.Provider.Value.ToModel(); + if (entity.Thumbnail != null) + model.Thumbnail = entity.Thumbnail.Value.ToModel(); + if (entity.Video != null) + model.Video = entity.Video.Value.ToModel(); + return model; + } + public static EmbedAuthor ToEntity(this API.EmbedAuthor model) + { + return new EmbedAuthor(model.Name, model.Url, model.IconUrl, model.ProxyIconUrl); + } + public static API.EmbedAuthor ToModel(this EmbedAuthor entity) + { + return new API.EmbedAuthor { Name = entity.Name, Url = entity.Url, IconUrl = entity.IconUrl }; + } + public static EmbedField ToEntity(this API.EmbedField model) + { + return new EmbedField(model.Name, model.Value, model.Inline); + } + public static API.EmbedField ToModel(this EmbedField entity) + { + return new API.EmbedField { Name = entity.Name, Value = entity.Value, Inline = entity.Inline }; + } + public static EmbedFooter ToEntity(this API.EmbedFooter model) + { + return new EmbedFooter(model.Text, model.IconUrl, model.ProxyIconUrl); + } + public static API.EmbedFooter ToModel(this EmbedFooter entity) + { + return new API.EmbedFooter { Text = entity.Text, IconUrl = entity.IconUrl }; + } + public static EmbedImage ToEntity(this API.EmbedImage model) + { + return new EmbedImage(model.Url, model.ProxyUrl, + model.Height.IsSpecified ? model.Height.Value : (int?)null, + model.Width.IsSpecified ? model.Width.Value : (int?)null); + } + public static API.EmbedImage ToModel(this EmbedImage entity) + { + return new API.EmbedImage { Url = entity.Url }; + } + public static EmbedProvider ToEntity(this API.EmbedProvider model) + { + return new EmbedProvider(model.Name, model.Url); + } + public static API.EmbedProvider ToModel(this EmbedProvider entity) + { + return new API.EmbedProvider { Name = entity.Name, Url = entity.Url }; + } + public static EmbedThumbnail ToEntity(this API.EmbedThumbnail model) + { + return new EmbedThumbnail(model.Url, model.ProxyUrl, + model.Height.IsSpecified ? model.Height.Value : (int?)null, + model.Width.IsSpecified ? model.Width.Value : (int?)null); + } + public static API.EmbedThumbnail ToModel(this EmbedThumbnail entity) + { + return new API.EmbedThumbnail { Url = entity.Url }; + } + public static EmbedVideo ToEntity(this API.EmbedVideo model) + { + return new EmbedVideo(model.Url, + model.Height.IsSpecified ? model.Height.Value : (int?)null, + model.Width.IsSpecified ? model.Width.Value : (int?)null); + } + public static API.EmbedVideo ToModel(this EmbedVideo entity) + { + return new API.EmbedVideo { Url = entity.Url }; + } + + public static API.Image ToModel(this Image entity) + { + return new API.Image(entity.Stream); + } + + public static Overwrite ToEntity(this API.Overwrite model) + { + return new Overwrite(model.TargetId, model.TargetType, new OverwritePermissions(model.Allow, model.Deny)); + } + } +} diff --git a/src/Discord.Net.Core/Net/Converters/ArrayConverter.cs b/src/Discord.Net.Rest/Net/Converters/ArrayConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/ArrayConverter.cs rename to src/Discord.Net.Rest/Net/Converters/ArrayConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/DiscordContractResolver.cs b/src/Discord.Net.Rest/Net/Converters/DiscordContractResolver.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/DiscordContractResolver.cs rename to src/Discord.Net.Rest/Net/Converters/DiscordContractResolver.cs diff --git a/src/Discord.Net.Core/Net/Converters/ImageConverter.cs b/src/Discord.Net.Rest/Net/Converters/ImageConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/ImageConverter.cs rename to src/Discord.Net.Rest/Net/Converters/ImageConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/NullableConverter.cs b/src/Discord.Net.Rest/Net/Converters/NullableConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/NullableConverter.cs rename to src/Discord.Net.Rest/Net/Converters/NullableConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/OptionalConverter.cs b/src/Discord.Net.Rest/Net/Converters/OptionalConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/OptionalConverter.cs rename to src/Discord.Net.Rest/Net/Converters/OptionalConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/PermissionTargetConverter.cs b/src/Discord.Net.Rest/Net/Converters/PermissionTargetConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/PermissionTargetConverter.cs rename to src/Discord.Net.Rest/Net/Converters/PermissionTargetConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/StringEntityConverter.cs b/src/Discord.Net.Rest/Net/Converters/StringEntityConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/StringEntityConverter.cs rename to src/Discord.Net.Rest/Net/Converters/StringEntityConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/UInt64Converter.cs b/src/Discord.Net.Rest/Net/Converters/UInt64Converter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/UInt64Converter.cs rename to src/Discord.Net.Rest/Net/Converters/UInt64Converter.cs diff --git a/src/Discord.Net.Core/Net/Converters/UInt64EntityConverter.cs b/src/Discord.Net.Rest/Net/Converters/UInt64EntityConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/UInt64EntityConverter.cs rename to src/Discord.Net.Rest/Net/Converters/UInt64EntityConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/UInt64EntityOrIdConverter.cs b/src/Discord.Net.Rest/Net/Converters/UInt64EntityOrIdConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/UInt64EntityOrIdConverter.cs rename to src/Discord.Net.Rest/Net/Converters/UInt64EntityOrIdConverter.cs diff --git a/src/Discord.Net.Core/Net/Converters/UserStatusConverter.cs b/src/Discord.Net.Rest/Net/Converters/UserStatusConverter.cs similarity index 100% rename from src/Discord.Net.Core/Net/Converters/UserStatusConverter.cs rename to src/Discord.Net.Rest/Net/Converters/UserStatusConverter.cs diff --git a/src/Discord.Net.API/Rpc/AuthenticateParams.cs b/src/Discord.Net.Rpc/API/Rpc/AuthenticateParams.cs similarity index 83% rename from src/Discord.Net.API/Rpc/AuthenticateParams.cs rename to src/Discord.Net.Rpc/API/Rpc/AuthenticateParams.cs index 9c35c5ede..f4b69a3b7 100644 --- a/src/Discord.Net.API/Rpc/AuthenticateParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/AuthenticateParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class AuthenticateParams + internal class AuthenticateParams { [JsonProperty("access_token")] public string AccessToken { get; set; } diff --git a/src/Discord.Net.API/Rpc/AuthenticateResponse.cs b/src/Discord.Net.Rpc/API/Rpc/AuthenticateResponse.cs similarity index 91% rename from src/Discord.Net.API/Rpc/AuthenticateResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/AuthenticateResponse.cs index 244577f84..6c6cba957 100644 --- a/src/Discord.Net.API/Rpc/AuthenticateResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/AuthenticateResponse.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API.Rpc { - public class AuthenticateResponse + internal class AuthenticateResponse { [JsonProperty("application")] public Application Application { get; set; } diff --git a/src/Discord.Net.API/Rpc/AuthorizeParams.cs b/src/Discord.Net.Rpc/API/Rpc/AuthorizeParams.cs similarity index 92% rename from src/Discord.Net.API/Rpc/AuthorizeParams.cs rename to src/Discord.Net.Rpc/API/Rpc/AuthorizeParams.cs index 367aafd41..91678d97c 100644 --- a/src/Discord.Net.API/Rpc/AuthorizeParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/AuthorizeParams.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Discord.API.Rpc { - public class AuthorizeParams + internal class AuthorizeParams { [JsonProperty("client_id")] public string ClientId { get; set; } diff --git a/src/Discord.Net.API/Rpc/AuthorizeResponse.cs b/src/Discord.Net.Rpc/API/Rpc/AuthorizeResponse.cs similarity index 82% rename from src/Discord.Net.API/Rpc/AuthorizeResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/AuthorizeResponse.cs index a4f42b6f5..42a9138fe 100644 --- a/src/Discord.Net.API/Rpc/AuthorizeResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/AuthorizeResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class AuthorizeResponse + internal class AuthorizeResponse { [JsonProperty("code")] public string Code { get; set; } diff --git a/src/Discord.Net.API/Rpc/Channel.cs b/src/Discord.Net.Rpc/API/Rpc/Channel.cs similarity index 97% rename from src/Discord.Net.API/Rpc/Channel.cs rename to src/Discord.Net.Rpc/API/Rpc/Channel.cs index 1b8f3775c..0fc7ac0ee 100644 --- a/src/Discord.Net.API/Rpc/Channel.cs +++ b/src/Discord.Net.Rpc/API/Rpc/Channel.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class Channel + internal class Channel { //Shared [JsonProperty("id")] diff --git a/src/Discord.Net.API/Rpc/ChannelSubscriptionParams.cs b/src/Discord.Net.Rpc/API/Rpc/ChannelSubscriptionParams.cs similarity index 80% rename from src/Discord.Net.API/Rpc/ChannelSubscriptionParams.cs rename to src/Discord.Net.Rpc/API/Rpc/ChannelSubscriptionParams.cs index 70d05e285..7443a6f7d 100644 --- a/src/Discord.Net.API/Rpc/ChannelSubscriptionParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/ChannelSubscriptionParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class ChannelSubscriptionParams + internal class ChannelSubscriptionParams { [JsonProperty("channel_id")] public ulong ChannelId { get; set; } diff --git a/src/Discord.Net.API/Rpc/ChannelSummary.cs b/src/Discord.Net.Rpc/API/Rpc/ChannelSummary.cs similarity index 89% rename from src/Discord.Net.API/Rpc/ChannelSummary.cs rename to src/Discord.Net.Rpc/API/Rpc/ChannelSummary.cs index 34acd049b..43e59c1a1 100644 --- a/src/Discord.Net.API/Rpc/ChannelSummary.cs +++ b/src/Discord.Net.Rpc/API/Rpc/ChannelSummary.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class ChannelSummary + internal class ChannelSummary { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Rpc/ErrorEvent.cs b/src/Discord.Net.Rpc/API/Rpc/ErrorEvent.cs similarity index 89% rename from src/Discord.Net.API/Rpc/ErrorEvent.cs rename to src/Discord.Net.Rpc/API/Rpc/ErrorEvent.cs index 2a3cf6506..c59275154 100644 --- a/src/Discord.Net.API/Rpc/ErrorEvent.cs +++ b/src/Discord.Net.Rpc/API/Rpc/ErrorEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class ErrorEvent + internal class ErrorEvent { [JsonProperty("code")] public int Code { get; set; } diff --git a/src/Discord.Net.API/Rpc/ExtendedVoiceState.cs b/src/Discord.Net.Rpc/API/Rpc/ExtendedVoiceState.cs similarity index 93% rename from src/Discord.Net.API/Rpc/ExtendedVoiceState.cs rename to src/Discord.Net.Rpc/API/Rpc/ExtendedVoiceState.cs index 032914f0f..6722d3a29 100644 --- a/src/Discord.Net.API/Rpc/ExtendedVoiceState.cs +++ b/src/Discord.Net.Rpc/API/Rpc/ExtendedVoiceState.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class ExtendedVoiceState + internal class ExtendedVoiceState { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Rpc/GetChannelParams.cs b/src/Discord.Net.Rpc/API/Rpc/GetChannelParams.cs similarity index 83% rename from src/Discord.Net.API/Rpc/GetChannelParams.cs rename to src/Discord.Net.Rpc/API/Rpc/GetChannelParams.cs index a94c8740e..4c0e18600 100644 --- a/src/Discord.Net.API/Rpc/GetChannelParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetChannelParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GetChannelParams + internal class GetChannelParams { [JsonProperty("channel_id")] public ulong ChannelId { get; set; } diff --git a/src/Discord.Net.API/Rpc/GetChannelsParams.cs b/src/Discord.Net.Rpc/API/Rpc/GetChannelsParams.cs similarity index 82% rename from src/Discord.Net.API/Rpc/GetChannelsParams.cs rename to src/Discord.Net.Rpc/API/Rpc/GetChannelsParams.cs index d2d4409e6..61e4886ef 100644 --- a/src/Discord.Net.API/Rpc/GetChannelsParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetChannelsParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GetChannelsParams + internal class GetChannelsParams { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Rpc/GetChannelsResponse.cs b/src/Discord.Net.Rpc/API/Rpc/GetChannelsResponse.cs similarity index 86% rename from src/Discord.Net.API/Rpc/GetChannelsResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/GetChannelsResponse.cs index e105341a1..004da31b5 100644 --- a/src/Discord.Net.API/Rpc/GetChannelsResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetChannelsResponse.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Discord.API.Rpc { - public class GetChannelsResponse + internal class GetChannelsResponse { [JsonProperty("channels")] public IReadOnlyCollection Channels { get; set; } diff --git a/src/Discord.Net.API/Rpc/GetGuildParams.cs b/src/Discord.Net.Rpc/API/Rpc/GetGuildParams.cs similarity index 83% rename from src/Discord.Net.API/Rpc/GetGuildParams.cs rename to src/Discord.Net.Rpc/API/Rpc/GetGuildParams.cs index 2fd8e4152..54d5018d0 100644 --- a/src/Discord.Net.API/Rpc/GetGuildParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetGuildParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GetGuildParams + internal class GetGuildParams { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Rpc/GetGuildsParams.cs b/src/Discord.Net.Rpc/API/Rpc/GetGuildsParams.cs similarity index 68% rename from src/Discord.Net.API/Rpc/GetGuildsParams.cs rename to src/Discord.Net.Rpc/API/Rpc/GetGuildsParams.cs index a1ff5f210..b4350ea21 100644 --- a/src/Discord.Net.API/Rpc/GetGuildsParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetGuildsParams.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class GetGuildsParams + internal class GetGuildsParams { } } diff --git a/src/Discord.Net.API/Rpc/GetGuildsResponse.cs b/src/Discord.Net.Rpc/API/Rpc/GetGuildsResponse.cs similarity index 83% rename from src/Discord.Net.API/Rpc/GetGuildsResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/GetGuildsResponse.cs index e69bedeae..4d57ae491 100644 --- a/src/Discord.Net.API/Rpc/GetGuildsResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GetGuildsResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GetGuildsResponse + internal class GetGuildsResponse { [JsonProperty("guilds")] public GuildSummary[] Guilds { get; set; } diff --git a/src/Discord.Net.API/Rpc/Guild.cs b/src/Discord.Net.Rpc/API/Rpc/Guild.cs similarity index 94% rename from src/Discord.Net.API/Rpc/Guild.cs rename to src/Discord.Net.Rpc/API/Rpc/Guild.cs index 1d6bf3678..fde5ef2ee 100644 --- a/src/Discord.Net.API/Rpc/Guild.cs +++ b/src/Discord.Net.Rpc/API/Rpc/Guild.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Discord.API.Rpc { - public class Guild + internal class Guild { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Rpc/GuildMember.cs b/src/Discord.Net.Rpc/API/Rpc/GuildMember.cs similarity index 91% rename from src/Discord.Net.API/Rpc/GuildMember.cs rename to src/Discord.Net.Rpc/API/Rpc/GuildMember.cs index af74dd919..be8fba9dc 100644 --- a/src/Discord.Net.API/Rpc/GuildMember.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GuildMember.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GuildMember + internal class GuildMember { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Rpc/GuildStatusEvent.cs b/src/Discord.Net.Rpc/API/Rpc/GuildStatusEvent.cs similarity index 87% rename from src/Discord.Net.API/Rpc/GuildStatusEvent.cs rename to src/Discord.Net.Rpc/API/Rpc/GuildStatusEvent.cs index 03326c374..3cfbf3454 100644 --- a/src/Discord.Net.API/Rpc/GuildStatusEvent.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GuildStatusEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GuildStatusEvent + internal class GuildStatusEvent { [JsonProperty("guild")] public Guild Guild { get; set; } diff --git a/src/Discord.Net.API/Rpc/GuildSubscriptionParams.cs b/src/Discord.Net.Rpc/API/Rpc/GuildSubscriptionParams.cs similarity index 80% rename from src/Discord.Net.API/Rpc/GuildSubscriptionParams.cs rename to src/Discord.Net.Rpc/API/Rpc/GuildSubscriptionParams.cs index 6ad108a5c..a34c71023 100644 --- a/src/Discord.Net.API/Rpc/GuildSubscriptionParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GuildSubscriptionParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class GuildSubscriptionParams + internal class GuildSubscriptionParams { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Rpc/GuildSummary.cs b/src/Discord.Net.Rpc/API/Rpc/GuildSummary.cs similarity index 86% rename from src/Discord.Net.API/Rpc/GuildSummary.cs rename to src/Discord.Net.Rpc/API/Rpc/GuildSummary.cs index c36da5267..09928e16e 100644 --- a/src/Discord.Net.API/Rpc/GuildSummary.cs +++ b/src/Discord.Net.Rpc/API/Rpc/GuildSummary.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class GuildSummary + internal class GuildSummary { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Rpc/Message.cs b/src/Discord.Net.Rpc/API/Rpc/Message.cs similarity index 90% rename from src/Discord.Net.API/Rpc/Message.cs rename to src/Discord.Net.Rpc/API/Rpc/Message.cs index a72fba123..6cbd364bb 100644 --- a/src/Discord.Net.API/Rpc/Message.cs +++ b/src/Discord.Net.Rpc/API/Rpc/Message.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class Message : Discord.API.Message + internal class Message : Discord.API.Message { [JsonProperty("blocked")] public Optional IsBlocked { get; } diff --git a/src/Discord.Net.API/Rpc/MessageEvent.cs b/src/Discord.Net.Rpc/API/Rpc/MessageEvent.cs similarity index 89% rename from src/Discord.Net.API/Rpc/MessageEvent.cs rename to src/Discord.Net.Rpc/API/Rpc/MessageEvent.cs index 41ff13288..4d656d5e3 100644 --- a/src/Discord.Net.API/Rpc/MessageEvent.cs +++ b/src/Discord.Net.Rpc/API/Rpc/MessageEvent.cs @@ -2,7 +2,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class MessageEvent + internal class MessageEvent { [JsonProperty("channel_id")] public ulong ChannelId { get; set; } diff --git a/src/Discord.Net.API/Rpc/Pan.cs b/src/Discord.Net.Rpc/API/Rpc/Pan.cs similarity index 90% rename from src/Discord.Net.API/Rpc/Pan.cs rename to src/Discord.Net.Rpc/API/Rpc/Pan.cs index e2a97c369..dc9cbef0a 100644 --- a/src/Discord.Net.API/Rpc/Pan.cs +++ b/src/Discord.Net.Rpc/API/Rpc/Pan.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class Pan + internal class Pan { [JsonProperty("left")] public float Left { get; set; } diff --git a/src/Discord.Net.API/Rpc/ReadyEvent.cs b/src/Discord.Net.Rpc/API/Rpc/ReadyEvent.cs similarity index 89% rename from src/Discord.Net.API/Rpc/ReadyEvent.cs rename to src/Discord.Net.Rpc/API/Rpc/ReadyEvent.cs index 4cd8c9677..8de69405f 100644 --- a/src/Discord.Net.API/Rpc/ReadyEvent.cs +++ b/src/Discord.Net.Rpc/API/Rpc/ReadyEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class ReadyEvent + internal class ReadyEvent { [JsonProperty("v")] public int Version { get; set; } diff --git a/src/Discord.Net.API/Rpc/RpcConfig.cs b/src/Discord.Net.Rpc/API/Rpc/RpcConfig.cs similarity index 92% rename from src/Discord.Net.API/Rpc/RpcConfig.cs rename to src/Discord.Net.Rpc/API/Rpc/RpcConfig.cs index c874462b6..4a8928a0d 100644 --- a/src/Discord.Net.API/Rpc/RpcConfig.cs +++ b/src/Discord.Net.Rpc/API/Rpc/RpcConfig.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class RpcConfig + internal class RpcConfig { [JsonProperty("cdn_host")] public string CdnHost { get; set; } diff --git a/src/Discord.Net.API/Rpc/SelectChannelParams.cs b/src/Discord.Net.Rpc/API/Rpc/SelectChannelParams.cs similarity index 87% rename from src/Discord.Net.API/Rpc/SelectChannelParams.cs rename to src/Discord.Net.Rpc/API/Rpc/SelectChannelParams.cs index 52c9b00e8..6fc9314a3 100644 --- a/src/Discord.Net.API/Rpc/SelectChannelParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/SelectChannelParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class SelectChannelParams + internal class SelectChannelParams { [JsonProperty("channel_id")] public ulong? ChannelId { get; set; } diff --git a/src/Discord.Net.API/Rpc/SetLocalVolumeParams.cs b/src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeParams.cs similarity index 81% rename from src/Discord.Net.API/Rpc/SetLocalVolumeParams.cs rename to src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeParams.cs index 9aff39df9..345ad906d 100644 --- a/src/Discord.Net.API/Rpc/SetLocalVolumeParams.cs +++ b/src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class SetLocalVolumeParams + internal class SetLocalVolumeParams { [JsonProperty("volume")] public int Volume { get; set; } diff --git a/src/Discord.Net.API/Rpc/SetLocalVolumeResponse.cs b/src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeResponse.cs similarity index 85% rename from src/Discord.Net.API/Rpc/SetLocalVolumeResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeResponse.cs index b1dfdc7ef..33927b7d9 100644 --- a/src/Discord.Net.API/Rpc/SetLocalVolumeResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/SetLocalVolumeResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class SetLocalVolumeResponse + internal class SetLocalVolumeResponse { [JsonProperty("user_id")] public ulong UserId { get; set; } diff --git a/src/Discord.Net.API/Rpc/SpeakingEvent.cs b/src/Discord.Net.Rpc/API/Rpc/SpeakingEvent.cs similarity index 84% rename from src/Discord.Net.API/Rpc/SpeakingEvent.cs rename to src/Discord.Net.Rpc/API/Rpc/SpeakingEvent.cs index 4d8804d2f..913d7d768 100644 --- a/src/Discord.Net.API/Rpc/SpeakingEvent.cs +++ b/src/Discord.Net.Rpc/API/Rpc/SpeakingEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class SpeakingEvent + internal class SpeakingEvent { [JsonProperty("user_id")] public ulong UserId { get; set; } diff --git a/src/Discord.Net.API/Rpc/SubscriptionResponse.cs b/src/Discord.Net.Rpc/API/Rpc/SubscriptionResponse.cs similarity index 81% rename from src/Discord.Net.API/Rpc/SubscriptionResponse.cs rename to src/Discord.Net.Rpc/API/Rpc/SubscriptionResponse.cs index 7fe13ed6c..76adc8d1b 100644 --- a/src/Discord.Net.API/Rpc/SubscriptionResponse.cs +++ b/src/Discord.Net.Rpc/API/Rpc/SubscriptionResponse.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class SubscriptionResponse + internal class SubscriptionResponse { [JsonProperty("evt")] public string Event { get; set; } diff --git a/src/Discord.Net.API/Rpc/UserVoiceSettings.cs b/src/Discord.Net.Rpc/API/Rpc/UserVoiceSettings.cs similarity index 91% rename from src/Discord.Net.API/Rpc/UserVoiceSettings.cs rename to src/Discord.Net.Rpc/API/Rpc/UserVoiceSettings.cs index 9c876a66f..ff338a4a4 100644 --- a/src/Discord.Net.API/Rpc/UserVoiceSettings.cs +++ b/src/Discord.Net.Rpc/API/Rpc/UserVoiceSettings.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class UserVoiceSettings + internal class UserVoiceSettings { [JsonProperty("userId")] internal ulong UserId { get; set; } diff --git a/src/Discord.Net.API/Rpc/VoiceDevice.cs b/src/Discord.Net.Rpc/API/Rpc/VoiceDevice.cs similarity index 87% rename from src/Discord.Net.API/Rpc/VoiceDevice.cs rename to src/Discord.Net.Rpc/API/Rpc/VoiceDevice.cs index 4dc99d4cd..52bdef8a3 100644 --- a/src/Discord.Net.API/Rpc/VoiceDevice.cs +++ b/src/Discord.Net.Rpc/API/Rpc/VoiceDevice.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class VoiceDevice + internal class VoiceDevice { [JsonProperty("id")] public string Id { get; set; } diff --git a/src/Discord.Net.API/Rpc/VoiceDeviceSettings.cs b/src/Discord.Net.Rpc/API/Rpc/VoiceDeviceSettings.cs similarity index 90% rename from src/Discord.Net.API/Rpc/VoiceDeviceSettings.cs rename to src/Discord.Net.Rpc/API/Rpc/VoiceDeviceSettings.cs index 38473c803..c06eb2c02 100644 --- a/src/Discord.Net.API/Rpc/VoiceDeviceSettings.cs +++ b/src/Discord.Net.Rpc/API/Rpc/VoiceDeviceSettings.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class VoiceDeviceSettings + internal class VoiceDeviceSettings { [JsonProperty("device_id")] public Optional DeviceId { get; set; } diff --git a/src/Discord.Net.API/Rpc/VoiceMode.cs b/src/Discord.Net.Rpc/API/Rpc/VoiceMode.cs similarity index 94% rename from src/Discord.Net.API/Rpc/VoiceMode.cs rename to src/Discord.Net.Rpc/API/Rpc/VoiceMode.cs index a502cc960..35e9d453e 100644 --- a/src/Discord.Net.API/Rpc/VoiceMode.cs +++ b/src/Discord.Net.Rpc/API/Rpc/VoiceMode.cs @@ -2,7 +2,7 @@ namespace Discord.API.Rpc { - public class VoiceMode + internal class VoiceMode { [JsonProperty("type")] public Optional Type { get; set; } diff --git a/src/Discord.Net.API/Rpc/VoiceSettings.cs b/src/Discord.Net.Rpc/API/Rpc/VoiceSettings.cs similarity index 96% rename from src/Discord.Net.API/Rpc/VoiceSettings.cs rename to src/Discord.Net.Rpc/API/Rpc/VoiceSettings.cs index c3268a719..11fb3b6a8 100644 --- a/src/Discord.Net.API/Rpc/VoiceSettings.cs +++ b/src/Discord.Net.Rpc/API/Rpc/VoiceSettings.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class VoiceSettings + internal class VoiceSettings { [JsonProperty("input")] public VoiceDeviceSettings Input { get; set; } diff --git a/src/Discord.Net.API/Rpc/VoiceShortcut.cs b/src/Discord.Net.Rpc/API/Rpc/VoiceShortcut.cs similarity index 91% rename from src/Discord.Net.API/Rpc/VoiceShortcut.cs rename to src/Discord.Net.Rpc/API/Rpc/VoiceShortcut.cs index 5b0939d79..65e258033 100644 --- a/src/Discord.Net.API/Rpc/VoiceShortcut.cs +++ b/src/Discord.Net.Rpc/API/Rpc/VoiceShortcut.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Rpc { - public class VoiceShortcut + internal class VoiceShortcut { [JsonProperty("type")] public Optional Type { get; set; } diff --git a/src/Discord.Net.Rpc/Discord.Net.Rpc.csproj b/src/Discord.Net.Rpc/Discord.Net.Rpc.csproj index e69b5b66d..12b77e5bc 100644 --- a/src/Discord.Net.Rpc/Discord.Net.Rpc.csproj +++ b/src/Discord.Net.Rpc/Discord.Net.Rpc.csproj @@ -21,7 +21,6 @@ - diff --git a/src/Discord.Net.Rpc/DiscordRpcApiClient.cs b/src/Discord.Net.Rpc/DiscordRpcApiClient.cs index 0377350fd..05e047067 100644 --- a/src/Discord.Net.Rpc/DiscordRpcApiClient.cs +++ b/src/Discord.Net.Rpc/DiscordRpcApiClient.cs @@ -17,7 +17,7 @@ using System.Threading.Tasks; namespace Discord.API { - public class DiscordRpcApiClient : DiscordRestApiClient, IDisposable + internal class DiscordRpcApiClient : DiscordRestApiClient, IDisposable { private abstract class RpcRequest { diff --git a/src/Discord.Net.Rpc/DiscordRpcClient.cs b/src/Discord.Net.Rpc/DiscordRpcClient.cs index 06096d8df..e47cbf30c 100644 --- a/src/Discord.Net.Rpc/DiscordRpcClient.cs +++ b/src/Discord.Net.Rpc/DiscordRpcClient.cs @@ -1,7 +1,6 @@ using Discord.API.Rpc; using Discord.Logging; using Discord.Net.Converters; -using Discord.Net.Queue; using Discord.Rest; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -31,7 +30,7 @@ namespace Discord.Rpc //From DiscordRpcConfig internal int ConnectionTimeout { get; private set; } - public new API.DiscordRpcApiClient ApiClient => base.ApiClient as API.DiscordRpcApiClient; + internal new API.DiscordRpcApiClient ApiClient => base.ApiClient as API.DiscordRpcApiClient; public new RestSelfUser CurrentUser { get { return base.CurrentUser as RestSelfUser; } private set { base.CurrentUser = value; } } public RestApplication ApplicationInfo { get; private set; } @@ -308,20 +307,67 @@ namespace Discord.Rpc var model = await ApiClient.GetVoiceSettingsAsync(options).ConfigureAwait(false); return VoiceSettings.Create(model); } - public async Task SetVoiceSettingsAsync(Action func, RequestOptions options = null) + public async Task SetVoiceSettingsAsync(Action func, RequestOptions options = null) { - var settings = new API.Rpc.VoiceSettings(); - settings.Input = new VoiceDeviceSettings(); - settings.Output = new VoiceDeviceSettings(); - settings.Mode = new VoiceMode(); + if (func == null) throw new NullReferenceException(nameof(func)); + + var settings = new VoiceProperties(); + settings.Input = new VoiceDeviceProperties(); + settings.Output = new VoiceDeviceProperties(); + settings.Mode = new VoiceModeProperties(); func(settings); - await ApiClient.SetVoiceSettingsAsync(settings, options).ConfigureAwait(false); + + var model = new API.Rpc.VoiceSettings + { + AutomaticGainControl = settings.AutomaticGainControl, + EchoCancellation = settings.EchoCancellation, + NoiseSuppression = settings.NoiseSuppression, + QualityOfService = settings.QualityOfService, + SilenceWarning = settings.SilenceWarning + }; + model.Input = new API.Rpc.VoiceDeviceSettings + { + DeviceId = settings.Input.DeviceId, + Volume = settings.Input.Volume + }; + model.Output = new API.Rpc.VoiceDeviceSettings + { + DeviceId = settings.Output.DeviceId, + Volume = settings.Output.Volume + }; + model.Mode = new API.Rpc.VoiceMode + { + AutoThreshold = settings.Mode.AutoThreshold, + Delay = settings.Mode.Delay, + Threshold = settings.Mode.Threshold, + Type = settings.Mode.Type + }; + + if (settings.Input.AvailableDevices.IsSpecified) + model.Input.AvailableDevices = settings.Input.AvailableDevices.Value.Select(x => x.ToModel()).ToArray(); + if (settings.Output.AvailableDevices.IsSpecified) + model.Output.AvailableDevices = settings.Output.AvailableDevices.Value.Select(x => x.ToModel()).ToArray(); + if (settings.Mode.Shortcut.IsSpecified) + model.Mode.Shortcut = settings.Mode.Shortcut.Value.Select(x => x.ToModel()).ToArray(); + + await ApiClient.SetVoiceSettingsAsync(model, options).ConfigureAwait(false); } - public async Task SetUserVoiceSettingsAsync(ulong userId, Action func, RequestOptions options = null) + public async Task SetUserVoiceSettingsAsync(ulong userId, Action func, RequestOptions options = null) { - var settings = new API.Rpc.UserVoiceSettings(); + if (func == null) throw new NullReferenceException(nameof(func)); + + var settings = new UserVoiceProperties(); func(settings); - await ApiClient.SetUserVoiceSettingsAsync(userId, settings, options).ConfigureAwait(false); + + var model = new API.Rpc.UserVoiceSettings + { + Mute = settings.Mute, + UserId = settings.UserId, + Volume = settings.Volume + }; + if (settings.Pan.IsSpecified) + model.Pan = settings.Pan.Value.ToModel(); + await ApiClient.SetUserVoiceSettingsAsync(userId, model, options).ConfigureAwait(false); } private static string GetEventName(RpcGlobalEvent rpcEvent) diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs index ba0a31910..1fb6d5867 100644 --- a/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs +++ b/src/Discord.Net.Rpc/Entities/Channels/RpcDMChannel.cs @@ -44,7 +44,7 @@ namespace Discord.Rpc public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -108,7 +108,7 @@ namespace Discord.Rpc #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs index 599df7e50..504bf8670 100644 --- a/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs +++ b/src/Discord.Net.Rpc/Entities/Channels/RpcGroupChannel.cs @@ -46,7 +46,7 @@ namespace Discord.Rpc public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -107,7 +107,7 @@ namespace Discord.Rpc #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs b/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs index 0023ccdc1..29df5f643 100644 --- a/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs +++ b/src/Discord.Net.Rpc/Entities/Channels/RpcTextChannel.cs @@ -49,7 +49,7 @@ namespace Discord.Rpc public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -109,7 +109,7 @@ namespace Discord.Rpc #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs b/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs index f7600bbcb..71f35126a 100644 --- a/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs +++ b/src/Discord.Net.Rpc/Entities/Messages/RpcUserMessage.cs @@ -84,7 +84,7 @@ namespace Discord.Rpc { var embeds = ImmutableArray.CreateBuilder(value.Length); for (int i = 0; i < value.Length; i++) - embeds.Add(Embed.Create(value[i])); + embeds.Add(value[i].ToEntity()); _embeds = embeds.ToImmutable(); } else diff --git a/src/Discord.Net.Rpc/Entities/UserVoiceProperties.cs b/src/Discord.Net.Rpc/Entities/UserVoiceProperties.cs new file mode 100644 index 000000000..830ba16a3 --- /dev/null +++ b/src/Discord.Net.Rpc/Entities/UserVoiceProperties.cs @@ -0,0 +1,18 @@ +#pragma warning disable CS1591 + +using Newtonsoft.Json; + +namespace Discord.Rpc +{ + public class UserVoiceProperties + { + [JsonProperty("userId")] + internal ulong UserId { get; set; } + [JsonProperty("pan")] + public Optional Pan { get; set; } + [JsonProperty("volume")] + public Optional Volume { get; set; } + [JsonProperty("mute")] + public Optional Mute { get; set; } + } +} diff --git a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs index 074286dbc..9f30dc53f 100644 --- a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs +++ b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs @@ -47,7 +47,7 @@ namespace Discord.Rpc => UserHelper.CreateDMChannelAsync(this, Discord, options); public override string ToString() => $"{Username}#{Discriminator}"; - internal string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; + private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; //IUser Task IUser.GetDMChannelAsync(CacheMode mode, RequestOptions options) diff --git a/src/Discord.Net.Rpc/Entities/Users/RpcVoiceState.cs b/src/Discord.Net.Rpc/Entities/Users/RpcVoiceState.cs index f18a51434..66b4186d6 100644 --- a/src/Discord.Net.Rpc/Entities/Users/RpcVoiceState.cs +++ b/src/Discord.Net.Rpc/Entities/Users/RpcVoiceState.cs @@ -71,7 +71,7 @@ namespace Discord.Rpc } public override string ToString() => User.ToString(); - internal string DebuggerDisplay => $"{User} ({_voiceStates})"; + private string DebuggerDisplay => $"{User} ({_voiceStates})"; string IVoiceState.VoiceSessionId { get { throw new NotSupportedException(); } } IVoiceChannel IVoiceState.VoiceChannel { get { throw new NotSupportedException(); } } diff --git a/src/Discord.Net.Rpc/Entities/Users/UserVoiceProperties.cs b/src/Discord.Net.Rpc/Entities/Users/UserVoiceProperties.cs new file mode 100644 index 000000000..68409ae95 --- /dev/null +++ b/src/Discord.Net.Rpc/Entities/Users/UserVoiceProperties.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Discord.Rpc.Entities.Users +{ + class UserVoiceProperties + { + } +} diff --git a/src/Discord.Net.Rpc/Entities/VoiceDevice.cs b/src/Discord.Net.Rpc/Entities/VoiceDevice.cs index 34a718adc..18f929f93 100644 --- a/src/Discord.Net.Rpc/Entities/VoiceDevice.cs +++ b/src/Discord.Net.Rpc/Entities/VoiceDevice.cs @@ -20,6 +20,6 @@ namespace Discord.Rpc } public override string ToString() => $"{Name}"; - internal string DebuggerDisplay => $"{Name} ({Id})"; + private string DebuggerDisplay => $"{Name} ({Id})"; } } diff --git a/src/Discord.Net.Rpc/Entities/VoiceDeviceProperties.cs b/src/Discord.Net.Rpc/Entities/VoiceDeviceProperties.cs new file mode 100644 index 000000000..bdf87b235 --- /dev/null +++ b/src/Discord.Net.Rpc/Entities/VoiceDeviceProperties.cs @@ -0,0 +1,9 @@ +namespace Discord.Rpc +{ + public class VoiceDeviceProperties + { + public Optional DeviceId { get; set; } + public Optional Volume { get; set; } + public Optional AvailableDevices { get; set; } + } +} diff --git a/src/Discord.Net.Rpc/Entities/VoiceModeProperties.cs b/src/Discord.Net.Rpc/Entities/VoiceModeProperties.cs new file mode 100644 index 000000000..da791e7a7 --- /dev/null +++ b/src/Discord.Net.Rpc/Entities/VoiceModeProperties.cs @@ -0,0 +1,11 @@ +namespace Discord.Rpc +{ + public class VoiceModeProperties + { + public Optional Type { get; set; } + public Optional AutoThreshold { get; set; } + public Optional Threshold { get; set; } + public Optional Shortcut { get; set; } + public Optional Delay { get; set; } + } +} diff --git a/src/Discord.Net.Rpc/Entities/VoiceProperties.cs b/src/Discord.Net.Rpc/Entities/VoiceProperties.cs new file mode 100644 index 000000000..5939f83c8 --- /dev/null +++ b/src/Discord.Net.Rpc/Entities/VoiceProperties.cs @@ -0,0 +1,14 @@ +namespace Discord.Rpc +{ + public class VoiceProperties + { + public VoiceDeviceProperties Input { get; set; } + public VoiceDeviceProperties Output { get; set; } + public VoiceModeProperties Mode { get; set; } + public Optional AutomaticGainControl { get; set; } + public Optional EchoCancellation { get; set; } + public Optional NoiseSuppression { get; set; } + public Optional QualityOfService { get; set; } + public Optional SilenceWarning { get; set; } + } +} diff --git a/src/Discord.Net.Rpc/Entities/VoiceShortcut.cs b/src/Discord.Net.Rpc/Entities/VoiceShortcut.cs index 93ef21804..ea9be9977 100644 --- a/src/Discord.Net.Rpc/Entities/VoiceShortcut.cs +++ b/src/Discord.Net.Rpc/Entities/VoiceShortcut.cs @@ -22,6 +22,6 @@ namespace Discord.Rpc } public override string ToString() => $"{Name}"; - internal string DebuggerDisplay => $"{Name} ({Code}, {Type})"; + private string DebuggerDisplay => $"{Name} ({Code}, {Type})"; } } diff --git a/src/Discord.Net.API/Rpc/VoiceShortcutType.cs b/src/Discord.Net.Rpc/Entities/VoiceShortcutType.cs similarity index 100% rename from src/Discord.Net.API/Rpc/VoiceShortcutType.cs rename to src/Discord.Net.Rpc/Entities/VoiceShortcutType.cs diff --git a/src/Discord.Net.Rpc/Extensions/EntityExtensions.cs b/src/Discord.Net.Rpc/Extensions/EntityExtensions.cs new file mode 100644 index 000000000..00ccf5c68 --- /dev/null +++ b/src/Discord.Net.Rpc/Extensions/EntityExtensions.cs @@ -0,0 +1,31 @@ +namespace Discord.Rpc +{ + internal static class EntityExtensions + { + public static API.Rpc.Pan ToModel(this Pan entity) + { + return new API.Rpc.Pan + { + Left = entity.Left, + Right = entity.Right + }; + } + public static API.Rpc.VoiceDevice ToModel(this VoiceDevice entity) + { + return new API.Rpc.VoiceDevice + { + Id = entity.Id, + Name = entity.Name + }; + } + public static API.Rpc.VoiceShortcut ToModel(this VoiceShortcut entity) + { + return new API.Rpc.VoiceShortcut + { + Code = entity.Code, + Name = entity.Name, + Type = entity.Type + }; + } + } +} diff --git a/src/Discord.Net.API/Gateway/ExtendedGuild.cs b/src/Discord.Net.WebSocket/API/Gateway/ExtendedGuild.cs similarity index 94% rename from src/Discord.Net.API/Gateway/ExtendedGuild.cs rename to src/Discord.Net.WebSocket/API/Gateway/ExtendedGuild.cs index 5d5fb8001..910f6d909 100644 --- a/src/Discord.Net.API/Gateway/ExtendedGuild.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/ExtendedGuild.cs @@ -4,7 +4,7 @@ using System; namespace Discord.API.Gateway { - public class ExtendedGuild : Guild + internal class ExtendedGuild : Guild { [JsonProperty("unavailable")] public bool? Unavailable { get; set; } diff --git a/src/Discord.Net.API/Gateway/GatewayOpCode.cs b/src/Discord.Net.WebSocket/API/Gateway/GatewayOpCode.cs similarity index 97% rename from src/Discord.Net.API/Gateway/GatewayOpCode.cs rename to src/Discord.Net.WebSocket/API/Gateway/GatewayOpCode.cs index b6712922a..13a2bb462 100644 --- a/src/Discord.Net.API/Gateway/GatewayOpCode.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GatewayOpCode.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API.Gateway { - public enum GatewayOpCode : byte + internal enum GatewayOpCode : byte { /// C←S - Used to send most events. Dispatch = 0, diff --git a/src/Discord.Net.API/Gateway/GuildBanEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildBanEvent.cs similarity index 88% rename from src/Discord.Net.API/Gateway/GuildBanEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildBanEvent.cs index c3c4a02ce..59a3304dd 100644 --- a/src/Discord.Net.API/Gateway/GuildBanEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildBanEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildBanEvent + internal class GuildBanEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildEmojiUpdateEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildEmojiUpdateEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/GuildEmojiUpdateEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildEmojiUpdateEvent.cs index 5d895cbf8..715341dc5 100644 --- a/src/Discord.Net.API/Gateway/GuildEmojiUpdateEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildEmojiUpdateEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildEmojiUpdateEvent + internal class GuildEmojiUpdateEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildMemberAddEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberAddEvent.cs similarity index 77% rename from src/Discord.Net.API/Gateway/GuildMemberAddEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildMemberAddEvent.cs index 856fb01f9..350652faf 100644 --- a/src/Discord.Net.API/Gateway/GuildMemberAddEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberAddEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildMemberAddEvent : GuildMember + internal class GuildMemberAddEvent : GuildMember { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildMemberRemoveEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberRemoveEvent.cs similarity index 85% rename from src/Discord.Net.API/Gateway/GuildMemberRemoveEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildMemberRemoveEvent.cs index 4a9b0fc07..501408a7f 100644 --- a/src/Discord.Net.API/Gateway/GuildMemberRemoveEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberRemoveEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildMemberRemoveEvent + internal class GuildMemberRemoveEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildMemberUpdateEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberUpdateEvent.cs similarity index 76% rename from src/Discord.Net.API/Gateway/GuildMemberUpdateEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildMemberUpdateEvent.cs index 74a67bce2..a234d6da5 100644 --- a/src/Discord.Net.API/Gateway/GuildMemberUpdateEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildMemberUpdateEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildMemberUpdateEvent : GuildMember + internal class GuildMemberUpdateEvent : GuildMember { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildMembersChunkEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildMembersChunkEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/GuildMembersChunkEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildMembersChunkEvent.cs index b5f2e82f2..e401d7fa1 100644 --- a/src/Discord.Net.API/Gateway/GuildMembersChunkEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildMembersChunkEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildMembersChunkEvent + internal class GuildMembersChunkEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildRoleCreateEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleCreateEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/GuildRoleCreateEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildRoleCreateEvent.cs index 50f067eb1..3409b1c91 100644 --- a/src/Discord.Net.API/Gateway/GuildRoleCreateEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleCreateEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildRoleCreateEvent + internal class GuildRoleCreateEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildRoleDeleteEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleDeleteEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/GuildRoleDeleteEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildRoleDeleteEvent.cs index 05203df7f..dbdaeff67 100644 --- a/src/Discord.Net.API/Gateway/GuildRoleDeleteEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleDeleteEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildRoleDeleteEvent + internal class GuildRoleDeleteEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildRoleUpdateEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleUpdateEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/GuildRoleUpdateEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildRoleUpdateEvent.cs index fde9c5907..b04ecb182 100644 --- a/src/Discord.Net.API/Gateway/GuildRoleUpdateEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildRoleUpdateEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildRoleUpdateEvent + internal class GuildRoleUpdateEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/GuildSyncEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/GuildSyncEvent.cs similarity index 92% rename from src/Discord.Net.API/Gateway/GuildSyncEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/GuildSyncEvent.cs index 9a34fb8b8..6b2e6c02f 100644 --- a/src/Discord.Net.API/Gateway/GuildSyncEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/GuildSyncEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class GuildSyncEvent + internal class GuildSyncEvent { [JsonProperty("id")] public ulong Id { get; set; } diff --git a/src/Discord.Net.API/Gateway/HelloEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/HelloEvent.cs similarity index 86% rename from src/Discord.Net.API/Gateway/HelloEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/HelloEvent.cs index 1f03bc037..e1ed9463c 100644 --- a/src/Discord.Net.API/Gateway/HelloEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/HelloEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class HelloEvent + internal class HelloEvent { [JsonProperty("heartbeat_interval")] public int HeartbeatInterval { get; set; } diff --git a/src/Discord.Net.API/Gateway/IdentifyParams.cs b/src/Discord.Net.WebSocket/API/Gateway/IdentifyParams.cs similarity index 95% rename from src/Discord.Net.API/Gateway/IdentifyParams.cs rename to src/Discord.Net.WebSocket/API/Gateway/IdentifyParams.cs index 22aee7daa..e87c58221 100644 --- a/src/Discord.Net.API/Gateway/IdentifyParams.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/IdentifyParams.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; namespace Discord.API.Gateway { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class IdentifyParams + internal class IdentifyParams { [JsonProperty("token")] public string Token { get; set; } diff --git a/src/Discord.Net.API/Gateway/MessageDeleteBulkEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/MessageDeleteBulkEvent.cs similarity index 87% rename from src/Discord.Net.API/Gateway/MessageDeleteBulkEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/MessageDeleteBulkEvent.cs index 7a3df47b2..aba4a2f1c 100644 --- a/src/Discord.Net.API/Gateway/MessageDeleteBulkEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/MessageDeleteBulkEvent.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Discord.API.Gateway { - public class MessageDeleteBulkEvent + internal class MessageDeleteBulkEvent { [JsonProperty("channel_id")] public ulong ChannelId { get; set; } diff --git a/src/Discord.Net.API/Gateway/Reaction.cs b/src/Discord.Net.WebSocket/API/Gateway/Reaction.cs similarity index 93% rename from src/Discord.Net.API/Gateway/Reaction.cs rename to src/Discord.Net.WebSocket/API/Gateway/Reaction.cs index 2ed22a97b..62de456e2 100644 --- a/src/Discord.Net.API/Gateway/Reaction.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/Reaction.cs @@ -2,7 +2,7 @@ namespace Discord.API.Gateway { - public class Reaction + internal class Reaction { [JsonProperty("user_id")] public ulong UserId { get; set; } diff --git a/src/Discord.Net.API/Gateway/ReadyEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/ReadyEvent.cs similarity index 97% rename from src/Discord.Net.API/Gateway/ReadyEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/ReadyEvent.cs index a677ac281..ab92d8c36 100644 --- a/src/Discord.Net.API/Gateway/ReadyEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/ReadyEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class ReadyEvent + internal class ReadyEvent { public class ReadState { diff --git a/src/Discord.Net.API/Gateway/RecipientEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/RecipientEvent.cs similarity index 88% rename from src/Discord.Net.API/Gateway/RecipientEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/RecipientEvent.cs index 308b4958f..336ffd029 100644 --- a/src/Discord.Net.API/Gateway/RecipientEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/RecipientEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class RecipientEvent + internal class RecipientEvent { [JsonProperty("user")] public User User { get; set; } diff --git a/src/Discord.Net.API/Gateway/RemoveAllReactionsEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/RemoveAllReactionsEvent.cs similarity index 84% rename from src/Discord.Net.API/Gateway/RemoveAllReactionsEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/RemoveAllReactionsEvent.cs index 944a6e7c9..4833c5123 100644 --- a/src/Discord.Net.API/Gateway/RemoveAllReactionsEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/RemoveAllReactionsEvent.cs @@ -2,7 +2,7 @@ namespace Discord.API.Gateway { - public class RemoveAllReactionsEvent + internal class RemoveAllReactionsEvent { [JsonProperty("channel_id")] public ulong ChannelId { get; set; } diff --git a/src/Discord.Net.API/Gateway/RequestMembersParams.cs b/src/Discord.Net.WebSocket/API/Gateway/RequestMembersParams.cs similarity index 91% rename from src/Discord.Net.API/Gateway/RequestMembersParams.cs rename to src/Discord.Net.WebSocket/API/Gateway/RequestMembersParams.cs index 05ec87f56..6a8d283ed 100644 --- a/src/Discord.Net.API/Gateway/RequestMembersParams.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/RequestMembersParams.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; namespace Discord.API.Gateway { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class RequestMembersParams + internal class RequestMembersParams { [JsonProperty("query")] public string Query { get; set; } diff --git a/src/Discord.Net.API/Gateway/ResumeParams.cs b/src/Discord.Net.WebSocket/API/Gateway/ResumeParams.cs similarity index 92% rename from src/Discord.Net.API/Gateway/ResumeParams.cs rename to src/Discord.Net.WebSocket/API/Gateway/ResumeParams.cs index 219adcf16..ffb46327b 100644 --- a/src/Discord.Net.API/Gateway/ResumeParams.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/ResumeParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class ResumeParams + internal class ResumeParams { [JsonProperty("token")] public string Token { get; set; } diff --git a/src/Discord.Net.API/Gateway/ResumedEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/ResumedEvent.cs similarity index 85% rename from src/Discord.Net.API/Gateway/ResumedEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/ResumedEvent.cs index 398a716fd..d1347beae 100644 --- a/src/Discord.Net.API/Gateway/ResumedEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/ResumedEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class ResumedEvent + internal class ResumedEvent { [JsonProperty("heartbeat_interval")] public int HeartbeatInterval { get; set; } diff --git a/src/Discord.Net.API/Gateway/StatusUpdateParams.cs b/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs similarity index 92% rename from src/Discord.Net.API/Gateway/StatusUpdateParams.cs rename to src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs index ae1f79283..fc0964c17 100644 --- a/src/Discord.Net.API/Gateway/StatusUpdateParams.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class StatusUpdateParams + internal class StatusUpdateParams { [JsonProperty("status")] public UserStatus Status { get; set; } diff --git a/src/Discord.Net.API/Gateway/TypingStartEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs similarity index 90% rename from src/Discord.Net.API/Gateway/TypingStartEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs index 3a6cd3d5c..3cce512bd 100644 --- a/src/Discord.Net.API/Gateway/TypingStartEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class TypingStartEvent + internal class TypingStartEvent { [JsonProperty("user_id")] public ulong UserId { get; set; } diff --git a/src/Discord.Net.API/Gateway/VoiceServerUpdateEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/VoiceServerUpdateEvent.cs similarity index 88% rename from src/Discord.Net.API/Gateway/VoiceServerUpdateEvent.cs rename to src/Discord.Net.WebSocket/API/Gateway/VoiceServerUpdateEvent.cs index a300f0d2c..29167c1cc 100644 --- a/src/Discord.Net.API/Gateway/VoiceServerUpdateEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/VoiceServerUpdateEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { - public class VoiceServerUpdateEvent + internal class VoiceServerUpdateEvent { [JsonProperty("guild_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Gateway/VoiceStateUpdateParams.cs b/src/Discord.Net.WebSocket/API/Gateway/VoiceStateUpdateParams.cs similarity index 92% rename from src/Discord.Net.API/Gateway/VoiceStateUpdateParams.cs rename to src/Discord.Net.WebSocket/API/Gateway/VoiceStateUpdateParams.cs index f08973cb5..521160126 100644 --- a/src/Discord.Net.API/Gateway/VoiceStateUpdateParams.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/VoiceStateUpdateParams.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json; namespace Discord.API.Gateway { [JsonObject(MemberSerialization = MemberSerialization.OptIn)] - public class VoiceStateUpdateParams + internal class VoiceStateUpdateParams { [JsonProperty("self_mute")] public bool SelfMute { get; set; } diff --git a/src/Discord.Net.API/Voice/IdentifyParams.cs b/src/Discord.Net.WebSocket/API/Voice/IdentifyParams.cs similarity index 92% rename from src/Discord.Net.API/Voice/IdentifyParams.cs rename to src/Discord.Net.WebSocket/API/Voice/IdentifyParams.cs index e6a1fd288..d446867e1 100644 --- a/src/Discord.Net.API/Voice/IdentifyParams.cs +++ b/src/Discord.Net.WebSocket/API/Voice/IdentifyParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class IdentifyParams + internal class IdentifyParams { [JsonProperty("server_id")] public ulong GuildId { get; set; } diff --git a/src/Discord.Net.API/Voice/ReadyEvent.cs b/src/Discord.Net.WebSocket/API/Voice/ReadyEvent.cs similarity index 93% rename from src/Discord.Net.API/Voice/ReadyEvent.cs rename to src/Discord.Net.WebSocket/API/Voice/ReadyEvent.cs index 0fe52a587..e4446f814 100644 --- a/src/Discord.Net.API/Voice/ReadyEvent.cs +++ b/src/Discord.Net.WebSocket/API/Voice/ReadyEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class ReadyEvent + internal class ReadyEvent { [JsonProperty("ssrc")] public uint SSRC { get; set; } diff --git a/src/Discord.Net.API/Voice/SelectProtocolParams.cs b/src/Discord.Net.WebSocket/API/Voice/SelectProtocolParams.cs similarity index 86% rename from src/Discord.Net.API/Voice/SelectProtocolParams.cs rename to src/Discord.Net.WebSocket/API/Voice/SelectProtocolParams.cs index 4c4e3ca32..8c577e5b5 100644 --- a/src/Discord.Net.API/Voice/SelectProtocolParams.cs +++ b/src/Discord.Net.WebSocket/API/Voice/SelectProtocolParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class SelectProtocolParams + internal class SelectProtocolParams { [JsonProperty("protocol")] public string Protocol { get; set; } diff --git a/src/Discord.Net.API/Voice/SessionDescriptionEvent.cs b/src/Discord.Net.WebSocket/API/Voice/SessionDescriptionEvent.cs similarity index 85% rename from src/Discord.Net.API/Voice/SessionDescriptionEvent.cs rename to src/Discord.Net.WebSocket/API/Voice/SessionDescriptionEvent.cs index 5a8ec8a41..45befadcf 100644 --- a/src/Discord.Net.API/Voice/SessionDescriptionEvent.cs +++ b/src/Discord.Net.WebSocket/API/Voice/SessionDescriptionEvent.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class SessionDescriptionEvent + internal class SessionDescriptionEvent { [JsonProperty("secret_key")] public byte[] SecretKey { get; set; } diff --git a/src/Discord.Net.API/Voice/SpeakingParams.cs b/src/Discord.Net.WebSocket/API/Voice/SpeakingParams.cs similarity index 88% rename from src/Discord.Net.API/Voice/SpeakingParams.cs rename to src/Discord.Net.WebSocket/API/Voice/SpeakingParams.cs index ee0e737dc..abdf90667 100644 --- a/src/Discord.Net.API/Voice/SpeakingParams.cs +++ b/src/Discord.Net.WebSocket/API/Voice/SpeakingParams.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class SpeakingParams + internal class SpeakingParams { [JsonProperty("speaking")] public bool IsSpeaking { get; set; } diff --git a/src/Discord.Net.API/Voice/UdpProtocolInfo.cs b/src/Discord.Net.WebSocket/API/Voice/UdpProtocolInfo.cs similarity index 90% rename from src/Discord.Net.API/Voice/UdpProtocolInfo.cs rename to src/Discord.Net.WebSocket/API/Voice/UdpProtocolInfo.cs index eb57471a4..6f4719e7e 100644 --- a/src/Discord.Net.API/Voice/UdpProtocolInfo.cs +++ b/src/Discord.Net.WebSocket/API/Voice/UdpProtocolInfo.cs @@ -3,7 +3,7 @@ using Newtonsoft.Json; namespace Discord.API.Voice { - public class UdpProtocolInfo + internal class UdpProtocolInfo { [JsonProperty("address")] public string Address { get; set; } diff --git a/src/Discord.Net.API/Voice/VoiceOpCode.cs b/src/Discord.Net.WebSocket/API/Voice/VoiceOpCode.cs similarity index 96% rename from src/Discord.Net.API/Voice/VoiceOpCode.cs rename to src/Discord.Net.WebSocket/API/Voice/VoiceOpCode.cs index e7cda249d..ae11a4c8f 100644 --- a/src/Discord.Net.API/Voice/VoiceOpCode.cs +++ b/src/Discord.Net.WebSocket/API/Voice/VoiceOpCode.cs @@ -1,7 +1,7 @@ #pragma warning disable CS1591 namespace Discord.API.Voice { - public enum VoiceOpCode : byte + internal enum VoiceOpCode : byte { /// C→S - Used to associate a connection with a token. Identify = 0, diff --git a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj index 593d9e75e..0887e3554 100644 --- a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj +++ b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj @@ -17,7 +17,6 @@ - diff --git a/src/Discord.Net.WebSocket/DiscordShardedClient.cs b/src/Discord.Net.WebSocket/DiscordShardedClient.cs index 403f1e239..4bda2b479 100644 --- a/src/Discord.Net.WebSocket/DiscordShardedClient.cs +++ b/src/Discord.Net.WebSocket/DiscordShardedClient.cs @@ -22,7 +22,7 @@ namespace Discord.WebSocket internal UserStatus Status => _shards[0].Status; internal Game? Game => _shards[0].Game; - public new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient; + internal new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient; public new SocketSelfUser CurrentUser { get { return base.CurrentUser as SocketSelfUser; } private set { base.CurrentUser = value; } } public IReadOnlyCollection Guilds => GetGuilds().ToReadOnlyCollection(() => GetGuildCount()); public IReadOnlyCollection PrivateChannels => GetPrivateChannels().ToReadOnlyCollection(() => GetPrivateChannelCount()); @@ -150,11 +150,8 @@ namespace Discord.WebSocket public DiscordSocketClient GetShard(int id) { - for (int i = 0; i < _shards.Length; i++) - { - if (_shards[i].ShardId == id) - return _shards[i]; - } + if (_shardIdsToIndex.TryGetValue(id, out id)) + return _shards[id]; return null; } private int GetShardIdFor(ulong guildId) @@ -162,12 +159,7 @@ namespace Discord.WebSocket private int GetShardIdFor(IGuild guild) => GetShardIdFor(guild.Id); private DiscordSocketClient GetShardFor(ulong guildId) - { - int id = GetShardIdFor(guildId); - if (_shardIdsToIndex.TryGetValue(id, out id)) - return _shards[id]; - return null; - } + => GetShard(GetShardIdFor(guildId)); private DiscordSocketClient GetShardFor(IGuild guild) => GetShardFor(guild.Id); diff --git a/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs b/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs index bcc8e40b7..d5fbcc71d 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs @@ -16,7 +16,7 @@ using System.Threading.Tasks; namespace Discord.API { - public class DiscordSocketApiClient : DiscordRestApiClient + internal class DiscordSocketApiClient : DiscordRestApiClient { public event Func SentGatewayMessage { add { _sentGatewayMessageEvent.Add(value); } remove { _sentGatewayMessageEvent.Remove(value); } } private readonly AsyncEvent> _sentGatewayMessageEvent = new AsyncEvent>(); diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index a93ba5fcf..58c27dccc 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -60,7 +60,7 @@ namespace Discord.WebSocket internal WebSocketProvider WebSocketProvider { get; private set; } internal bool DownloadUsersOnGuildAvailable { get; private set; } - public new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient; + internal new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient; public new SocketSelfUser CurrentUser { get { return base.CurrentUser as SocketSelfUser; } private set { base.CurrentUser = value; } } public IReadOnlyCollection Guilds => State.Guilds; public IReadOnlyCollection PrivateChannels => State.PrivateChannels; diff --git a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs index 1773214ad..c8a857074 100644 --- a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs +++ b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs @@ -16,7 +16,7 @@ using System.Threading.Tasks; namespace Discord.Audio { - public class DiscordVoiceAPIClient + internal class DiscordVoiceAPIClient { public const int MaxBitrate = 128 * 1024; public const string Mode = "xsalsa20_poly1305"; diff --git a/src/Discord.Net.WebSocket/Entities/Channels/ISocketMessageChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/ISocketMessageChannel.cs index 0f8e1e156..43246f5ca 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/ISocketMessageChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/ISocketMessageChannel.cs @@ -11,7 +11,7 @@ namespace Discord.WebSocket IReadOnlyCollection CachedMessages { get; } /// Sends a message to this message channel. - new Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null); + new Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null); #if NETSTANDARD1_3 /// Sends a file to this text channel, with an optional caption. new Task SendFileAsync(string filePath, string text = null, bool isTTS = false, RequestOptions options = null); diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs index 34f67c1f0..c976b64f8 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs @@ -66,7 +66,7 @@ namespace Discord.WebSocket public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -138,7 +138,7 @@ namespace Discord.WebSocket #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs index 706d972df..ceba50a6e 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs @@ -95,7 +95,7 @@ namespace Discord.WebSocket public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -207,7 +207,7 @@ namespace Discord.WebSocket #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs index be99f3f9f..58c93ebaf 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs @@ -47,7 +47,7 @@ namespace Discord.WebSocket var overwrites = model.PermissionOverwrites.Value; var newOverwrites = ImmutableArray.CreateBuilder(overwrites.Length); for (int i = 0; i < overwrites.Length; i++) - newOverwrites.Add(new Overwrite(overwrites[i])); + newOverwrites.Add(overwrites[i].ToEntity()); _overwrites = newOverwrites.ToImmutable(); } @@ -77,12 +77,12 @@ namespace Discord.WebSocket public async Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions perms, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, user, perms, options).ConfigureAwait(false); - _overwrites = _overwrites.Add(new Overwrite(new API.Overwrite { Allow = perms.AllowValue, Deny = perms.DenyValue, TargetId = user.Id, TargetType = PermissionTarget.User })); + _overwrites = _overwrites.Add(new Overwrite(user.Id, PermissionTarget.User, new OverwritePermissions(perms.AllowValue, perms.DenyValue))); } public async Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions perms, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, role, perms, options).ConfigureAwait(false); - _overwrites.Add(new Overwrite(new API.Overwrite { Allow = perms.AllowValue, Deny = perms.DenyValue, TargetId = role.Id, TargetType = PermissionTarget.Role })); + _overwrites = _overwrites.Add(new Overwrite(role.Id, PermissionTarget.Role, new OverwritePermissions(perms.AllowValue, perms.DenyValue))); } public async Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null) { diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs index 4b1ec4ae8..ae2564959 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs @@ -72,7 +72,7 @@ namespace Discord.WebSocket public Task> GetPinnedMessagesAsync(RequestOptions options = null) => ChannelHelper.GetPinnedMessagesAsync(this, Discord, options); - public Task SendMessageAsync(string text, bool isTTS = false, EmbedBuilder embed = null, RequestOptions options = null) + public Task SendMessageAsync(string text, bool isTTS = false, Embed embed = null, RequestOptions options = null) => ChannelHelper.SendMessageAsync(this, Discord, text, isTTS, embed, options); #if NETSTANDARD1_3 public Task SendFileAsync(string filePath, string text, bool isTTS = false, RequestOptions options = null) @@ -139,7 +139,7 @@ namespace Discord.WebSocket #endif async Task IMessageChannel.SendFileAsync(Stream stream, string filename, string text, bool isTTS, RequestOptions options) => await SendFileAsync(stream, filename, text, isTTS, options).ConfigureAwait(false); - async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, EmbedBuilder embed, RequestOptions options) + async Task IMessageChannel.SendMessageAsync(string text, bool isTTS, Embed embed, RequestOptions options) => await SendMessageAsync(text, isTTS, embed, options).ConfigureAwait(false); IDisposable IMessageChannel.EnterTypingState(RequestOptions options) => EnterTypingState(options); diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs index eddee15c7..b46107dc6 100644 --- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs +++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs @@ -191,7 +191,7 @@ namespace Discord.WebSocket { var emojis = ImmutableArray.CreateBuilder(model.Emojis.Length); for (int i = 0; i < model.Emojis.Length; i++) - emojis.Add(GuildEmoji.Create(model.Emojis[i])); + emojis.Add(model.Emojis[i].ToEntity()); _emojis = emojis.ToImmutable(); } else @@ -244,7 +244,7 @@ namespace Discord.WebSocket { var emojis = ImmutableArray.CreateBuilder(model.Emojis.Length); for (int i = 0; i < model.Emojis.Length; i++) - emojis.Add(GuildEmoji.Create(model.Emojis[i])); + emojis.Add(model.Emojis[i].ToEntity()); _emojis = emojis.ToImmutable(); } diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs index 3e56644b1..c12d0fdea 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketReaction.cs @@ -22,7 +22,7 @@ namespace Discord.WebSocket } internal static SocketReaction Create(Model model, ISocketMessageChannel channel, Optional message, Optional user) { - return new SocketReaction(channel, model.MessageId, message, model.UserId, user, Emoji.Create(model.Emoji)); + return new SocketReaction(channel, model.MessageId, message, model.UserId, user, new Emoji(model.Emoji.Id, model.Emoji.Name)); } } } diff --git a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs index e50076986..e1a6853e2 100644 --- a/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs +++ b/src/Discord.Net.WebSocket/Entities/Messages/SocketUserMessage.cs @@ -79,7 +79,7 @@ namespace Discord.WebSocket { var embeds = ImmutableArray.CreateBuilder(value.Length); for (int i = 0; i < value.Length; i++) - embeds.Add(Embed.Create(value[i])); + embeds.Add(value[i].ToEntity()); _embeds = embeds.ToImmutable(); } else diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs index 629aa2093..00d4b4bbc 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs @@ -17,11 +17,11 @@ namespace Discord.WebSocket } internal static SocketPresence Create(Model model) { - return new SocketPresence(model.Status, model.Game != null ? Discord.Game.Create(model.Game) : (Game?)null); + return new SocketPresence(model.Status, model.Game != null ? model.Game.ToEntity() : (Game?)null); } public override string ToString() => Status.ToString(); - internal string DebuggerDisplay => $"{Status}{(Game != null ? $", {Game.Value.Name} ({Game.Value.StreamType})" : "")}"; + private string DebuggerDisplay => $"{Status}{(Game != null ? $", {Game.Value.Name} ({Game.Value.StreamType})" : "")}"; internal SocketPresence Clone() => this; } diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs index 4819de751..b94da2438 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs @@ -46,7 +46,7 @@ namespace Discord.WebSocket => UserHelper.CreateDMChannelAsync(this, Discord, options); public override string ToString() => $"{Username}#{Discriminator}"; - internal string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; + private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; internal SocketUser Clone() => MemberwiseClone() as SocketUser; //IUser diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketVoiceState.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketVoiceState.cs index 2a0eeed8f..480103326 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketVoiceState.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketVoiceState.cs @@ -56,7 +56,7 @@ namespace Discord.WebSocket } public override string ToString() => VoiceChannel?.Name ?? "Unknown"; - internal string DebuggerDisplay => $"{VoiceChannel?.Name ?? "Unknown"} ({_voiceStates})"; + private string DebuggerDisplay => $"{VoiceChannel?.Name ?? "Unknown"} ({_voiceStates})"; internal SocketVoiceState Clone() => this; IVoiceChannel IVoiceState.VoiceChannel => VoiceChannel; diff --git a/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs new file mode 100644 index 000000000..636ef68f4 --- /dev/null +++ b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs @@ -0,0 +1,12 @@ +namespace Discord.WebSocket +{ + internal static class EntityExtensions + { + public static Game ToEntity(this API.Game model) + { + return new Game(model.Name, + model.StreamUrl.GetValueOrDefault(null), + model.StreamType.GetValueOrDefault(null) ?? StreamType.NotStreaming); + } + } +} diff --git a/src/Discord.Net/Discord.Net.csproj b/src/Discord.Net/Discord.Net.csproj index 4d9388915..4645b3c7e 100644 --- a/src/Discord.Net/Discord.Net.csproj +++ b/src/Discord.Net/Discord.Net.csproj @@ -1,4 +1,4 @@ - + An aynchronous API wrapper for Discord. This metapackage includes all of the optional Discord.Net components. 1.0.0-beta2 @@ -16,7 +16,6 @@ -