This reverts commit 389372b93f
.
tags/docs-0.9
@@ -1,63 +0,0 @@ | |||||
############################################################################### | |||||
# Set default behavior to automatically normalize line endings. | |||||
############################################################################### | |||||
* text=auto | |||||
############################################################################### | |||||
# Set default behavior for command prompt diff. | |||||
# | |||||
# This is need for earlier builds of msysgit that does not have it on by | |||||
# default for csharp files. | |||||
# Note: This is only used by command line | |||||
############################################################################### | |||||
#*.cs diff=csharp | |||||
############################################################################### | |||||
# Set the merge driver for project and solution files | |||||
# | |||||
# Merging from the command prompt will add diff markers to the files if there | |||||
# are conflicts (Merging from VS is not affected by the settings below, in VS | |||||
# the diff markers are never inserted). Diff markers may cause the following | |||||
# file extensions to fail to load in VS. An alternative would be to treat | |||||
# these files as binary and thus will always conflict and require user | |||||
# intervention with every merge. To do so, just uncomment the entries below | |||||
############################################################################### | |||||
#*.sln merge=binary | |||||
#*.csproj merge=binary | |||||
#*.vbproj merge=binary | |||||
#*.vcxproj merge=binary | |||||
#*.vcproj merge=binary | |||||
#*.dbproj merge=binary | |||||
#*.fsproj merge=binary | |||||
#*.lsproj merge=binary | |||||
#*.wixproj merge=binary | |||||
#*.modelproj merge=binary | |||||
#*.sqlproj merge=binary | |||||
#*.wwaproj merge=binary | |||||
############################################################################### | |||||
# behavior for image files | |||||
# | |||||
# image files are treated as binary by default. | |||||
############################################################################### | |||||
#*.jpg binary | |||||
#*.png binary | |||||
#*.gif binary | |||||
############################################################################### | |||||
# diff behavior for common document formats | |||||
# | |||||
# Convert binary document formats to text before diffing them. This feature | |||||
# is only available from the command line. Turn it on by uncommenting the | |||||
# entries below. | |||||
############################################################################### | |||||
#*.doc diff=astextplain | |||||
#*.DOC diff=astextplain | |||||
#*.docx diff=astextplain | |||||
#*.DOCX diff=astextplain | |||||
#*.dot diff=astextplain | |||||
#*.DOT diff=astextplain | |||||
#*.pdf diff=astextplain | |||||
#*.PDF diff=astextplain | |||||
#*.rtf diff=astextplain | |||||
#*.RTF diff=astextplain |
@@ -106,7 +106,7 @@ namespace Discord.API.Models | |||||
[JsonProperty(PropertyName = "channels")] | [JsonProperty(PropertyName = "channels")] | ||||
public ChannelInfo[] Channels; | public ChannelInfo[] Channels; | ||||
[JsonProperty(PropertyName = "joined_at")] | [JsonProperty(PropertyName = "joined_at")] | ||||
public DateTime? JoinedAt; | |||||
public DateTime JoinedAt; | |||||
[JsonProperty(PropertyName = "members")] | [JsonProperty(PropertyName = "members")] | ||||
public MembershipInfo[] Members; | public MembershipInfo[] Members; | ||||
[JsonProperty(PropertyName = "owner_id")] | [JsonProperty(PropertyName = "owner_id")] | ||||
@@ -49,9 +49,10 @@ | |||||
<Compile Include="API\Models\ApiRequests.cs" /> | <Compile Include="API\Models\ApiRequests.cs" /> | ||||
<Compile Include="API\Endpoints.cs" /> | <Compile Include="API\Endpoints.cs" /> | ||||
<Compile Include="API\Models\WebSocketCommands.cs" /> | <Compile Include="API\Models\WebSocketCommands.cs" /> | ||||
<Compile Include="Role.cs" /> | |||||
<Compile Include="ChatMessage.cs" /> | |||||
<Compile Include="Channel.cs" /> | |||||
<Compile Include="Models\Role.cs" /> | |||||
<Compile Include="Models\ChatMessageReference.cs" /> | |||||
<Compile Include="Models\ChatMessage.cs" /> | |||||
<Compile Include="Models\Channel.cs" /> | |||||
<Compile Include="DiscordWebSocket.Events.cs" /> | <Compile Include="DiscordWebSocket.Events.cs" /> | ||||
<Compile Include="Helpers\Http.cs" /> | <Compile Include="Helpers\Http.cs" /> | ||||
<Compile Include="API\DiscordAPI.cs" /> | <Compile Include="API\DiscordAPI.cs" /> | ||||
@@ -61,8 +62,8 @@ | |||||
<Compile Include="DiscordClient.Events.cs" /> | <Compile Include="DiscordClient.Events.cs" /> | ||||
<Compile Include="Properties\AssemblyInfo.cs" /> | <Compile Include="Properties\AssemblyInfo.cs" /> | ||||
<Compile Include="DiscordWebSocket.cs" /> | <Compile Include="DiscordWebSocket.cs" /> | ||||
<Compile Include="Server.cs" /> | |||||
<Compile Include="User.cs" /> | |||||
<Compile Include="Models\Server.cs" /> | |||||
<Compile Include="Models\User.cs" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="packages.config" /> | <None Include="packages.config" /> | ||||
@@ -1,4 +1,5 @@ | |||||
using System; | |||||
using Discord.Models; | |||||
using System; | |||||
namespace Discord | namespace Discord | ||||
{ | { | ||||
@@ -97,35 +98,40 @@ namespace Discord | |||||
} | } | ||||
//Message | //Message | ||||
public sealed class MessageEventArgs : EventArgs | |||||
public sealed class MessageCreateEventArgs : EventArgs | |||||
{ | { | ||||
public readonly ChatMessage Message; | public readonly ChatMessage Message; | ||||
internal MessageEventArgs(ChatMessage msg) { Message = msg; } | |||||
internal MessageCreateEventArgs(ChatMessage msg) { Message = msg; } | |||||
} | |||||
public sealed class MessageEventArgs : EventArgs | |||||
{ | |||||
public readonly ChatMessageReference Message; | |||||
internal MessageEventArgs(ChatMessageReference msg) { Message = msg; } | |||||
} | } | ||||
public event EventHandler<MessageEventArgs> MessageCreated; | |||||
public event EventHandler<MessageCreateEventArgs> MessageCreated; | |||||
private void RaiseMessageCreated(ChatMessage msg) | private void RaiseMessageCreated(ChatMessage msg) | ||||
{ | { | ||||
if (MessageCreated != null) | if (MessageCreated != null) | ||||
MessageCreated(this, new MessageEventArgs(msg)); | |||||
MessageCreated(this, new MessageCreateEventArgs(msg)); | |||||
} | } | ||||
public event EventHandler<MessageEventArgs> MessageDeleted; | public event EventHandler<MessageEventArgs> MessageDeleted; | ||||
private void RaiseMessageDeleted(ChatMessage msg) | |||||
private void RaiseMessageDeleted(ChatMessageReference msg) | |||||
{ | { | ||||
if (MessageDeleted != null) | if (MessageDeleted != null) | ||||
MessageDeleted(this, new MessageEventArgs(msg)); | MessageDeleted(this, new MessageEventArgs(msg)); | ||||
} | } | ||||
public event EventHandler<MessageEventArgs> MessageUpdated; | public event EventHandler<MessageEventArgs> MessageUpdated; | ||||
private void RaiseMessageUpdated(ChatMessage msg) | |||||
private void RaiseMessageUpdated(ChatMessageReference msg) | |||||
{ | { | ||||
if (MessageUpdated != null) | if (MessageUpdated != null) | ||||
MessageUpdated(this, new MessageEventArgs(msg)); | MessageUpdated(this, new MessageEventArgs(msg)); | ||||
} | } | ||||
public event EventHandler<MessageEventArgs> MessageAcknowledged; | public event EventHandler<MessageEventArgs> MessageAcknowledged; | ||||
private void RaiseMessageAcknowledged(ChatMessage msg) | |||||
private void RaiseMessageAcknowledged(ChatMessageReference msg) | |||||
{ | { | ||||
if (MessageAcknowledged != null) | if (MessageAcknowledged != null) | ||||
MessageAcknowledged(this, new MessageEventArgs(msg)); | MessageAcknowledged(this, new MessageEventArgs(msg)); | ||||
@@ -1,11 +1,13 @@ | |||||
using Discord.API; | using Discord.API; | ||||
using Discord.API.Models; | using Discord.API.Models; | ||||
using Discord.Helpers; | using Discord.Helpers; | ||||
using Discord.Models; | |||||
using System; | using System; | ||||
using System.Collections.Concurrent; | using System.Collections.Concurrent; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Reflection; | using System.Reflection; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using Role = Discord.Models.Role; | |||||
namespace Discord | namespace Discord | ||||
{ | { | ||||
@@ -370,7 +372,7 @@ namespace Discord | |||||
var extendedModel = model as ExtendedServerInfo; | var extendedModel = model as ExtendedServerInfo; | ||||
server.AFKChannelId = extendedModel.AFKChannelId; | server.AFKChannelId = extendedModel.AFKChannelId; | ||||
server.AFKTimeout = extendedModel.AFKTimeout; | server.AFKTimeout = extendedModel.AFKTimeout; | ||||
server.JoinedAt = extendedModel.JoinedAt ?? DateTime.MinValue; | |||||
server.JoinedAt = extendedModel.JoinedAt; | |||||
server.OwnerId = extendedModel.OwnerId; | server.OwnerId = extendedModel.OwnerId; | ||||
server.Presence = extendedModel.Presence; | server.Presence = extendedModel.Presence; | ||||
server.Region = extendedModel.Region; | server.Region = extendedModel.Region; | ||||
@@ -418,7 +420,7 @@ namespace Discord | |||||
private Channel DeleteChannel(string id) | private Channel DeleteChannel(string id) | ||||
{ | { | ||||
Channel channel = null; | Channel channel = null; | ||||
if (_channels.TryRemove(id, out channel) && !channel.IsPrivate) | |||||
if (_channels.TryRemove(id, out channel)) | |||||
{ | { | ||||
bool ignored; | bool ignored; | ||||
channel.Server._channels.TryRemove(id, out ignored); | channel.Server._channels.TryRemove(id, out ignored); | ||||
@@ -427,10 +429,10 @@ namespace Discord | |||||
} | } | ||||
//TODO: Temporary measure, unsure if we want to store these or not. | //TODO: Temporary measure, unsure if we want to store these or not. | ||||
private ChatMessage GetMessage(string id, string channelId) | |||||
private ChatMessageReference GetMessage(string id, string channelId) | |||||
{ | { | ||||
if (id == null || channelId == null) return null; | if (id == null || channelId == null) return null; | ||||
return new ChatMessage(id, channelId, this); | |||||
return new ChatMessageReference(id, channelId, this); | |||||
} | } | ||||
private ChatMessage UpdateMessage(WebSocketEvents.MessageCreate model, bool addNew = true) | private ChatMessage UpdateMessage(WebSocketEvents.MessageCreate model, bool addNew = true) | ||||
{ | { | ||||
@@ -114,14 +114,14 @@ namespace Discord | |||||
RaiseGotEvent(msg.Type, msg.Payload as JToken); | RaiseGotEvent(msg.Type, msg.Payload as JToken); | ||||
break; | break; | ||||
default: | default: | ||||
RaiseOnDebugMessage("Warning: Unknown WebSocket operation ID: " + msg.Operation); | |||||
RaiseOnDebugMessage("Unknown WebSocket operation ID: " + msg.Operation); | |||||
break; | break; | ||||
} | } | ||||
builder.Clear(); | builder.Clear(); | ||||
} | } | ||||
} | } | ||||
catch (Exception ex) { RaiseOnDebugMessage($"Error: {ex.Message}"); } | |||||
catch { } | |||||
finally { _cancelToken.Cancel(); } | finally { _cancelToken.Cancel(); } | ||||
} | } | ||||
@@ -1,6 +1,6 @@ | |||||
using Newtonsoft.Json; | using Newtonsoft.Json; | ||||
namespace Discord | |||||
namespace Discord.Models | |||||
{ | { | ||||
public sealed class Channel | public sealed class Channel | ||||
{ | { |
@@ -1,23 +1,15 @@ | |||||
using Newtonsoft.Json; | using Newtonsoft.Json; | ||||
using System; | using System; | ||||
namespace Discord | |||||
namespace Discord.Models | |||||
{ | { | ||||
public sealed class ChatMessage | |||||
public sealed class ChatMessage : ChatMessageReference | |||||
{ | { | ||||
private readonly DiscordClient _client; | |||||
public string Id { get; } | |||||
public bool IsMentioningEveryone { get; internal set; } | public bool IsMentioningEveryone { get; internal set; } | ||||
public bool IsTTS { get; internal set; } | public bool IsTTS { get; internal set; } | ||||
public string Text { get; internal set; } | public string Text { get; internal set; } | ||||
public DateTime Timestamp { get; internal set; } | public DateTime Timestamp { get; internal set; } | ||||
public string ChannelId { get; internal set; } | |||||
[JsonIgnore] | |||||
public Channel Channel { get { return _client.GetChannel(ChannelId); } } | |||||
public string UserId { get; internal set; } | public string UserId { get; internal set; } | ||||
[JsonIgnore] | [JsonIgnore] | ||||
public User User { get { return _client.GetUser(UserId); } } | public User User { get { return _client.GetUser(UserId); } } | ||||
@@ -27,11 +19,9 @@ namespace Discord | |||||
public object[] Embeds { get; internal set; } | public object[] Embeds { get; internal set; } | ||||
internal ChatMessage(string id, string channelId, DiscordClient client) | internal ChatMessage(string id, string channelId, DiscordClient client) | ||||
: base(id, channelId, client) | |||||
{ | { | ||||
Id = id; | |||||
ChannelId = channelId; | |||||
_client = client; | |||||
} | |||||
} | |||||
public override string ToString() | public override string ToString() | ||||
{ | { |
@@ -0,0 +1,22 @@ | |||||
using Newtonsoft.Json; | |||||
namespace Discord.Models | |||||
{ | |||||
public class ChatMessageReference | |||||
{ | |||||
protected readonly DiscordClient _client; | |||||
public string Id { get; } | |||||
public string ChannelId { get; } | |||||
[JsonIgnore] | |||||
public Channel Channel { get { return _client.GetChannel(ChannelId); } } | |||||
internal ChatMessageReference(string id, string channelId, DiscordClient client) | |||||
{ | |||||
Id = id; | |||||
ChannelId = channelId; | |||||
_client = client; | |||||
} | |||||
} | |||||
} |
@@ -1,6 +1,6 @@ | |||||
using Newtonsoft.Json; | using Newtonsoft.Json; | ||||
namespace Discord | |||||
namespace Discord.Models | |||||
{ | { | ||||
public sealed class Role | public sealed class Role | ||||
{ | { |
@@ -4,7 +4,7 @@ using System.Collections.Concurrent; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
namespace Discord | |||||
namespace Discord.Models | |||||
{ | { | ||||
public sealed class Server | public sealed class Server | ||||
{ | { |
@@ -1,6 +1,6 @@ | |||||
using System; | using System; | ||||
namespace Discord | |||||
namespace Discord.Models | |||||
{ | { | ||||
public sealed class User | public sealed class User | ||||
{ | { |