diff --git a/src/Discord.Net/API/DiscordRpcAPIClient.cs b/src/Discord.Net/API/DiscordRpcAPIClient.cs index 27c8a68c0..e82c5c83f 100644 --- a/src/Discord.Net/API/DiscordRpcAPIClient.cs +++ b/src/Discord.Net/API/DiscordRpcAPIClient.cs @@ -90,7 +90,7 @@ namespace Discord.API using (var reader = new StreamReader(decompressed)) using (var jsonReader = new JsonTextReader(reader)) { - var msg = _serializer.Deserialize(jsonReader); + var msg = _serializer.Deserialize(jsonReader); await _receivedRpcEvent.InvokeAsync(msg.Cmd, msg.Event, msg.Data).ConfigureAwait(false); if (msg.Nonce.IsSpecified && msg.Nonce.Value.HasValue) ProcessMessage(msg); @@ -102,7 +102,7 @@ namespace Discord.API using (var reader = new StringReader(text)) using (var jsonReader = new JsonTextReader(reader)) { - var msg = _serializer.Deserialize(jsonReader); + var msg = _serializer.Deserialize(jsonReader); await _receivedRpcEvent.InvokeAsync(msg.Cmd, msg.Event, msg.Data).ConfigureAwait(false); if (msg.Nonce.IsSpecified && msg.Nonce.Value.HasValue) ProcessMessage(msg); @@ -219,7 +219,7 @@ namespace Discord.API { byte[] bytes = null; var guid = Guid.NewGuid(); - payload = new RpcMessage { Cmd = cmd, Event = evt, Args = payload, Nonce = guid }; + payload = new API.Rpc.RpcMessage { Cmd = cmd, Event = evt, Args = payload, Nonce = guid }; if (payload != null) { var json = SerializeJson(payload); @@ -338,7 +338,7 @@ namespace Discord.API return await SendRpcAsync("UNSUBSCRIBE", msg, evt: evt, options: options).ConfigureAwait(false); } - private bool ProcessMessage(RpcMessage msg) + private bool ProcessMessage(API.Rpc.RpcMessage msg) { RpcRequest requestTracker; if (_requests.TryGetValue(msg.Nonce.Value.Value, out requestTracker)) diff --git a/src/Discord.Net/Entities/Messages/Message.cs b/src/Discord.Net/Entities/Messages/Message.cs index aaf81aad2..df6bf7e2c 100644 --- a/src/Discord.Net/Entities/Messages/Message.cs +++ b/src/Discord.Net/Entities/Messages/Message.cs @@ -53,7 +53,6 @@ namespace Discord var guildChannel = Channel as GuildChannel; var guild = guildChannel?.Guild; - var discord = Discord; if (model.IsTextToSpeech.IsSpecified) IsTTS = model.IsTextToSpeech.Value; diff --git a/src/Discord.Net/Rpc/DiscordRpcClient.cs b/src/Discord.Net/Rpc/DiscordRpcClient.cs index 7cdbccfff..53886d41d 100644 --- a/src/Discord.Net/Rpc/DiscordRpcClient.cs +++ b/src/Discord.Net/Rpc/DiscordRpcClient.cs @@ -355,7 +355,7 @@ namespace Discord.Rpc { await _rpcLogger.DebugAsync("Received Dispatch (MESSAGE_CREATE)").ConfigureAwait(false); var data = (payload.Value as JToken).ToObject(_serializer); - var msg = new Message(null, new User(data.Message.Author.Value), data.Message); + var msg = new RpcMessage(this, data.Message); await _messageReceivedEvent.InvokeAsync(data.ChannelId, msg).ConfigureAwait(false); } @@ -364,7 +364,7 @@ namespace Discord.Rpc { await _rpcLogger.DebugAsync("Received Dispatch (MESSAGE_UPDATE)").ConfigureAwait(false); var data = (payload.Value as JToken).ToObject(_serializer); - var msg = new Message(null, new User(data.Message.Author.Value), data.Message); + var msg = new RpcMessage(this, data.Message); await _messageUpdatedEvent.InvokeAsync(data.ChannelId, msg).ConfigureAwait(false); } diff --git a/src/Discord.Net/Entities/Rpc/IRemoteUserGuild.cs b/src/Discord.Net/Rpc/Entities/IRemoteUserGuild.cs similarity index 51% rename from src/Discord.Net/Entities/Rpc/IRemoteUserGuild.cs rename to src/Discord.Net/Rpc/Entities/IRemoteUserGuild.cs index f1cdc8203..5f92edb9b 100644 --- a/src/Discord.Net/Entities/Rpc/IRemoteUserGuild.cs +++ b/src/Discord.Net/Rpc/Entities/IRemoteUserGuild.cs @@ -1,8 +1,8 @@ -namespace Discord.Entities.Rpc +namespace Discord.Rpc { - public interface IRemoteUserGuild : ISnowflakeEntity + /*public interface IRemoteUserGuild : ISnowflakeEntity { /// Gets the name of this guild. string Name { get; } - } + }*/ } diff --git a/src/Discord.Net/Entities/Rpc/RemoteUserGuild.cs b/src/Discord.Net/Rpc/Entities/RemoteUserGuild.cs similarity index 86% rename from src/Discord.Net/Entities/Rpc/RemoteUserGuild.cs rename to src/Discord.Net/Rpc/Entities/RemoteUserGuild.cs index bc2f441e4..e0337237a 100644 --- a/src/Discord.Net/Entities/Rpc/RemoteUserGuild.cs +++ b/src/Discord.Net/Rpc/Entities/RemoteUserGuild.cs @@ -2,9 +2,9 @@ using System; using Model = Discord.API.Rpc.RpcUserGuild; -namespace Discord.Entities.Rpc +namespace Discord.Rpc { - internal class RemoteUserGuild : IRemoteUserGuild, ISnowflakeEntity + /*internal class RemoteUserGuild : IRemoteUserGuild, ISnowflakeEntity { public ulong Id { get; } public DiscordRestClient Discord { get; } @@ -26,5 +26,5 @@ namespace Discord.Entities.Rpc } bool IEntity.IsAttached => false; - } + }*/ } diff --git a/src/Discord.Net/Rpc/Entities/RpcMessage.cs b/src/Discord.Net/Rpc/Entities/RpcMessage.cs new file mode 100644 index 000000000..86d67bfa4 --- /dev/null +++ b/src/Discord.Net/Rpc/Entities/RpcMessage.cs @@ -0,0 +1,15 @@ +using Discord.Rest; + +namespace Discord.Rpc +{ + internal class RpcMessage : Message + { + public override DiscordRestClient Discord { get; } + + public RpcMessage(DiscordRpcClient discord, API.Message model) + : base(null, model.Author.IsSpecified ? new User(model.Author.Value) : null, model) + { + Discord = discord; + } + } +} diff --git a/src/Discord.Net/Entities/WebSocket/Channels/ISocketChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/ISocketChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/ISocketChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/ISocketChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/ISocketGuildChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/ISocketGuildChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/ISocketGuildChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/ISocketGuildChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/ISocketMessageChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/ISocketMessageChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/ISocketMessageChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/ISocketMessageChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/ISocketPrivateChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/ISocketPrivateChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/ISocketPrivateChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/ISocketPrivateChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/MessageCache.cs b/src/Discord.Net/WebSocket/Entities/Channels/MessageCache.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/MessageCache.cs rename to src/Discord.Net/WebSocket/Entities/Channels/MessageCache.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/MessageManager.cs b/src/Discord.Net/WebSocket/Entities/Channels/MessageManager.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/MessageManager.cs rename to src/Discord.Net/WebSocket/Entities/Channels/MessageManager.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/SocketDMChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/SocketDMChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/SocketDMChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/SocketDMChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/SocketGroupChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/SocketGroupChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/SocketGroupChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/SocketGroupChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/SocketTextChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/SocketTextChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/SocketTextChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/SocketTextChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Channels/SocketVoiceChannel.cs b/src/Discord.Net/WebSocket/Entities/Channels/SocketVoiceChannel.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Channels/SocketVoiceChannel.cs rename to src/Discord.Net/WebSocket/Entities/Channels/SocketVoiceChannel.cs diff --git a/src/Discord.Net/Entities/WebSocket/Guilds/SocketGuild.cs b/src/Discord.Net/WebSocket/Entities/Guilds/SocketGuild.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Guilds/SocketGuild.cs rename to src/Discord.Net/WebSocket/Entities/Guilds/SocketGuild.cs diff --git a/src/Discord.Net/Entities/WebSocket/Messages/SocketMessage.cs b/src/Discord.Net/WebSocket/Entities/Messages/SocketMessage.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Messages/SocketMessage.cs rename to src/Discord.Net/WebSocket/Entities/Messages/SocketMessage.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/ISocketUser.cs b/src/Discord.Net/WebSocket/Entities/Users/ISocketUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/ISocketUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/ISocketUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/Presence.cs b/src/Discord.Net/WebSocket/Entities/Users/Presence.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/Presence.cs rename to src/Discord.Net/WebSocket/Entities/Users/Presence.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/SocketDMUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketDMUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/SocketDMUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/SocketDMUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/SocketGlobalUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketGlobalUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/SocketGlobalUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/SocketGlobalUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/SocketGroupUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketGroupUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/SocketGroupUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/SocketGroupUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/SocketGuildUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/SocketGuildUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/SocketGuildUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/SocketSelfUser.cs b/src/Discord.Net/WebSocket/Entities/Users/SocketSelfUser.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/SocketSelfUser.cs rename to src/Discord.Net/WebSocket/Entities/Users/SocketSelfUser.cs diff --git a/src/Discord.Net/Entities/WebSocket/Users/VoiceState.cs b/src/Discord.Net/WebSocket/Entities/Users/VoiceState.cs similarity index 100% rename from src/Discord.Net/Entities/WebSocket/Users/VoiceState.cs rename to src/Discord.Net/WebSocket/Entities/Users/VoiceState.cs