Exposed SocketMessage.Channel

This commit is contained in:
RogueException
2016-10-04 10:21:02 -03:00
parent b33a7205c1
commit d443ccca13
3 changed files with 17 additions and 15 deletions

View File

@@ -11,8 +11,8 @@ namespace Discord.WebSocket
{ {
private long _timestampTicks; private long _timestampTicks;
public ulong ChannelId { get; }
public SocketUser Author { get; } public SocketUser Author { get; }
public ISocketMessageChannel Channel { get; }
public string Content { get; private set; } public string Content { get; private set; }
@@ -28,18 +28,18 @@ namespace Discord.WebSocket
public DateTimeOffset Timestamp => DateTimeUtils.FromTicks(_timestampTicks); public DateTimeOffset Timestamp => DateTimeUtils.FromTicks(_timestampTicks);
internal SocketMessage(DiscordSocketClient discord, ulong id, ulong channelId, SocketUser author) internal SocketMessage(DiscordSocketClient discord, ulong id, ISocketMessageChannel channel, SocketUser author)
: base(discord, id) : base(discord, id)
{ {
ChannelId = channelId; Channel = channel;
Author = author; Author = author;
} }
internal static SocketMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, Model model) internal static SocketMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, ISocketMessageChannel channel, Model model)
{ {
if (model.Type == MessageType.Default) if (model.Type == MessageType.Default)
return SocketUserMessage.Create(discord, state, author, model); return SocketUserMessage.Create(discord, state, author, channel, model);
else else
return SocketSystemMessage.Create(discord, state, author, model); return SocketSystemMessage.Create(discord, state, author, channel, model);
} }
internal virtual void Update(ClientState state, Model model) internal virtual void Update(ClientState state, Model model)
{ {
@@ -55,5 +55,7 @@ namespace Discord.WebSocket
//IMessage //IMessage
IUser IMessage.Author => Author; IUser IMessage.Author => Author;
MessageType IMessage.Type => MessageType.Default; MessageType IMessage.Type => MessageType.Default;
ulong IMessage.ChannelId => Channel.Id;
} }
} }

View File

@@ -6,13 +6,13 @@ namespace Discord.WebSocket
{ {
public MessageType Type { get; private set; } public MessageType Type { get; private set; }
internal SocketSystemMessage(DiscordSocketClient discord, ulong id, ulong channelId, SocketUser author) internal SocketSystemMessage(DiscordSocketClient discord, ulong id, ISocketMessageChannel channel, SocketUser author)
: base(discord, id, channelId, author) : base(discord, id, channel, author)
{ {
} }
internal new static SocketSystemMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, Model model) internal new static SocketSystemMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, ISocketMessageChannel channel, Model model)
{ {
var entity = new SocketSystemMessage(discord, model.Id, model.ChannelId, author); var entity = new SocketSystemMessage(discord, model.Id, channel, author);
entity.Update(state, model); entity.Update(state, model);
return entity; return entity;
} }

View File

@@ -28,13 +28,13 @@ namespace Discord.WebSocket
public override IReadOnlyCollection<IRole> MentionedRoles => _mentionedRoles; public override IReadOnlyCollection<IRole> MentionedRoles => _mentionedRoles;
public override IReadOnlyCollection<IUser> MentionedUsers => _mentionedUsers; public override IReadOnlyCollection<IUser> MentionedUsers => _mentionedUsers;
internal SocketUserMessage(DiscordSocketClient discord, ulong id, ulong channelId, SocketUser author) internal SocketUserMessage(DiscordSocketClient discord, ulong id, ISocketMessageChannel channel, SocketUser author)
: base(discord, id, channelId, author) : base(discord, id, channel, author)
{ {
} }
internal new static SocketUserMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, Model model) internal new static SocketUserMessage Create(DiscordSocketClient discord, ClientState state, SocketUser author, ISocketMessageChannel channel, Model model)
{ {
var entity = new SocketUserMessage(discord, model.Id, model.ChannelId, author); var entity = new SocketUserMessage(discord, model.Id, channel, author);
entity.Update(state, model); entity.Update(state, model);
return entity; return entity;
} }