Moved Rpc/WebSocket entities, fixed nullref on RPC message events

This commit is contained in:
RogueException
2016-07-29 18:11:41 -03:00
parent 79f11455b9
commit 260a0153f4
26 changed files with 27 additions and 13 deletions

View File

@@ -90,7 +90,7 @@ namespace Discord.API
using (var reader = new StreamReader(decompressed))
using (var jsonReader = new JsonTextReader(reader))
{
var msg = _serializer.Deserialize<RpcMessage>(jsonReader);
var msg = _serializer.Deserialize<API.Rpc.RpcMessage>(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<RpcMessage>(jsonReader);
var msg = _serializer.Deserialize<API.Rpc.RpcMessage>(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<SubscriptionResponse>("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))

View File

@@ -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;

View File

@@ -355,7 +355,7 @@ namespace Discord.Rpc
{
await _rpcLogger.DebugAsync("Received Dispatch (MESSAGE_CREATE)").ConfigureAwait(false);
var data = (payload.Value as JToken).ToObject<MessageEvent>(_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<MessageEvent>(_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);
}

View File

@@ -1,8 +1,8 @@
namespace Discord.Entities.Rpc
namespace Discord.Rpc
{
public interface IRemoteUserGuild : ISnowflakeEntity
/*public interface IRemoteUserGuild : ISnowflakeEntity
{
/// <summary> Gets the name of this guild. </summary>
string Name { get; }
}
}*/
}

View File

@@ -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<ulong>.IsAttached => false;
}
}*/
}

View File

@@ -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;
}
}
}