Moved Rpc/WebSocket entities, fixed nullref on RPC message events
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}*/
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
15
src/Discord.Net/Rpc/Entities/RpcMessage.cs
Normal file
15
src/Discord.Net/Rpc/Entities/RpcMessage.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user