Browse Source

Reorganized classes into Rpc/Rest/WebSocket namespaces

tags/1.0-rc
RogueException 8 years ago
parent
commit
c565bdf55b
50 changed files with 113 additions and 79 deletions
  1. +5
    -5
      src/Discord.Net/API/CDN.cs
  2. +15
    -14
      src/Discord.Net/API/DiscordRestApiClient.cs
  3. +1
    -0
      src/Discord.Net/API/DiscordRpcAPIClient.cs
  4. +4
    -2
      src/Discord.Net/API/Rest/GetChannelMessagesParams.cs
  5. +1
    -0
      src/Discord.Net/Audio/AudioClient.cs
  6. +1
    -2
      src/Discord.Net/DataStore.cs
  7. +4
    -0
      src/Discord.Net/DiscordConfig.cs
  8. +2
    -1
      src/Discord.Net/Entities/Application.cs
  9. +1
    -0
      src/Discord.Net/Entities/Channels/DMChannel.cs
  10. +1
    -1
      src/Discord.Net/Entities/Channels/GroupChannel.cs
  11. +1
    -0
      src/Discord.Net/Entities/Channels/GuildChannel.cs
  12. +2
    -2
      src/Discord.Net/Entities/Channels/IMessageChannel.cs
  13. +3
    -1
      src/Discord.Net/Entities/Entity.cs
  14. +1
    -1
      src/Discord.Net/Entities/Guilds/Guild.cs
  15. +1
    -0
      src/Discord.Net/Entities/Guilds/GuildIntegration.cs
  16. +2
    -1
      src/Discord.Net/Entities/Guilds/UserGuild.cs
  17. +4
    -3
      src/Discord.Net/Entities/Invites/Invite.cs
  18. +2
    -1
      src/Discord.Net/Entities/Invites/InviteMetadata.cs
  19. +1
    -0
      src/Discord.Net/Entities/Messages/Message.cs
  20. +1
    -3
      src/Discord.Net/Entities/Roles/Role.cs
  21. +2
    -1
      src/Discord.Net/Entities/Rpc/RemoteUserGuild.cs
  22. +1
    -0
      src/Discord.Net/Entities/Users/GroupUser.cs
  23. +1
    -0
      src/Discord.Net/Entities/Users/GuildUser.cs
  24. +1
    -0
      src/Discord.Net/Entities/Users/SelfUser.cs
  25. +2
    -1
      src/Discord.Net/Entities/Users/User.cs
  26. +3
    -2
      src/Discord.Net/Entities/WebSocket/Channels/MessageCache.cs
  27. +3
    -1
      src/Discord.Net/Entities/WebSocket/Channels/MessageManager.cs
  28. +2
    -1
      src/Discord.Net/Entities/WebSocket/Channels/SocketDMChannel.cs
  29. +1
    -1
      src/Discord.Net/Entities/WebSocket/Channels/SocketGroupChannel.cs
  30. +5
    -3
      src/Discord.Net/Entities/WebSocket/Channels/SocketTextChannel.cs
  31. +1
    -0
      src/Discord.Net/Entities/WebSocket/Channels/SocketVoiceChannel.cs
  32. +1
    -1
      src/Discord.Net/Entities/WebSocket/Guilds/SocketGuild.cs
  33. +2
    -1
      src/Discord.Net/Entities/WebSocket/Messages/SocketMessage.cs
  34. +2
    -1
      src/Discord.Net/Entities/WebSocket/Users/SocketDMUser.cs
  35. +2
    -1
      src/Discord.Net/Entities/WebSocket/Users/SocketGlobalUser.cs
  36. +2
    -1
      src/Discord.Net/Entities/WebSocket/Users/SocketGroupUser.cs
  37. +2
    -1
      src/Discord.Net/Entities/WebSocket/Users/SocketGuildUser.cs
  38. +1
    -0
      src/Discord.Net/Entities/WebSocket/Users/SocketSelfUser.cs
  39. +1
    -1
      src/Discord.Net/Extensions/CollectionExtensions.cs
  40. +3
    -2
      src/Discord.Net/Extensions/DiscordClientExtensions.cs
  41. +1
    -1
      src/Discord.Net/Extensions/GuildExtensions.cs
  42. +1
    -1
      src/Discord.Net/Extensions/GuildUserExtensions.cs
  43. +3
    -1
      src/Discord.Net/Rest/DiscordRestClient.cs
  44. +2
    -6
      src/Discord.Net/Rest/DiscordRestConfig.cs
  45. +3
    -10
      src/Discord.Net/Rpc/DiscordRpcClient.cs
  46. +2
    -1
      src/Discord.Net/Rpc/DiscordRpcConfig.cs
  47. +6
    -0
      src/Discord.Net/Rpc/RpcEvents.cs
  48. +1
    -1
      src/Discord.Net/WebSocket/DiscordSocketClient.Events.cs
  49. +2
    -2
      src/Discord.Net/WebSocket/DiscordSocketClient.cs
  50. +1
    -0
      src/Discord.Net/WebSocket/DiscordSocketConfig.cs

+ 5
- 5
src/Discord.Net/API/CDN.cs View File

@@ -3,14 +3,14 @@
internal static class CDN internal static class CDN
{ {
public static string GetApplicationIconUrl(ulong appId, string iconId) public static string GetApplicationIconUrl(ulong appId, string iconId)
=> iconId != null ? $"{DiscordRestConfig.CDNUrl}app-icons/{appId}/{iconId}.jpg" : null;
=> iconId != null ? $"{DiscordConfig.CDNUrl}app-icons/{appId}/{iconId}.jpg" : null;
public static string GetUserAvatarUrl(ulong userId, string avatarId) public static string GetUserAvatarUrl(ulong userId, string avatarId)
=> avatarId != null ? $"{DiscordRestConfig.CDNUrl}avatars/{userId}/{avatarId}.jpg" : null;
=> avatarId != null ? $"{DiscordConfig.CDNUrl}avatars/{userId}/{avatarId}.jpg" : null;
public static string GetGuildIconUrl(ulong guildId, string iconId) public static string GetGuildIconUrl(ulong guildId, string iconId)
=> iconId != null ? $"{DiscordRestConfig.CDNUrl}icons/{guildId}/{iconId}.jpg" : null;
=> iconId != null ? $"{DiscordConfig.CDNUrl}icons/{guildId}/{iconId}.jpg" : null;
public static string GetGuildSplashUrl(ulong guildId, string splashId) public static string GetGuildSplashUrl(ulong guildId, string splashId)
=> splashId != null ? $"{DiscordRestConfig.CDNUrl}splashes/{guildId}/{splashId}.jpg" : null;
=> splashId != null ? $"{DiscordConfig.CDNUrl}splashes/{guildId}/{splashId}.jpg" : null;
public static string GetChannelIconUrl(ulong channelId, string iconId) public static string GetChannelIconUrl(ulong channelId, string iconId)
=> iconId != null ? $"{DiscordRestConfig.CDNUrl}channel-icons/{channelId}/{iconId}.jpg" : null;
=> iconId != null ? $"{DiscordConfig.CDNUrl}channel-icons/{channelId}/{iconId}.jpg" : null;
} }
} }

+ 15
- 14
src/Discord.Net/API/DiscordRestApiClient.cs View File

@@ -5,6 +5,7 @@ using Discord.Net.Converters;
using Discord.Net.Queue; using Discord.Net.Queue;
using Discord.Net.Rest; using Discord.Net.Rest;
using Discord.Net.WebSockets; using Discord.Net.WebSockets;
using Discord.Rest;
using Newtonsoft.Json; using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -594,13 +595,13 @@ namespace Discord.API


List<GuildMember[]> result; List<GuildMember[]> result;
if (args._limit.IsSpecified) if (args._limit.IsSpecified)
result = new List<GuildMember[]>((limit + DiscordRestConfig.MaxUsersPerBatch - 1) / DiscordRestConfig.MaxUsersPerBatch);
result = new List<GuildMember[]>((limit + DiscordConfig.MaxUsersPerBatch - 1) / DiscordConfig.MaxUsersPerBatch);
else else
result = new List<GuildMember[]>(); result = new List<GuildMember[]>();


while (true) while (true)
{ {
int runLimit = (limit >= DiscordRestConfig.MaxUsersPerBatch) ? DiscordRestConfig.MaxUsersPerBatch : limit;
int runLimit = (limit >= DiscordConfig.MaxUsersPerBatch) ? DiscordConfig.MaxUsersPerBatch : limit;
string endpoint = $"guilds/{guildId}/members?limit={runLimit}&after={afterUserId}"; string endpoint = $"guilds/{guildId}/members?limit={runLimit}&after={afterUserId}";
var models = await SendAsync<GuildMember[]>("GET", endpoint, options: options).ConfigureAwait(false); var models = await SendAsync<GuildMember[]>("GET", endpoint, options: options).ConfigureAwait(false);


@@ -609,11 +610,11 @@ namespace Discord.API


result.Add(models); result.Add(models);


limit -= DiscordRestConfig.MaxUsersPerBatch;
limit -= DiscordConfig.MaxUsersPerBatch;
afterUserId = models[models.Length - 1].User.Id; afterUserId = models[models.Length - 1].User.Id;


//Was this an incomplete (the last) batch? //Was this an incomplete (the last) batch?
if (models.Length != DiscordRestConfig.MaxUsersPerBatch) break;
if (models.Length != DiscordConfig.MaxUsersPerBatch) break;
} }


if (result.Count > 1) if (result.Count > 1)
@@ -723,14 +724,14 @@ namespace Discord.API
break; break;
} }


int runs = (limit + DiscordRestConfig.MaxMessagesPerBatch - 1) / DiscordRestConfig.MaxMessagesPerBatch;
int lastRunCount = limit - (runs - 1) * DiscordRestConfig.MaxMessagesPerBatch;
int runs = (limit + DiscordConfig.MaxMessagesPerBatch - 1) / DiscordConfig.MaxMessagesPerBatch;
int lastRunCount = limit - (runs - 1) * DiscordConfig.MaxMessagesPerBatch;
var result = new API.Message[runs][]; var result = new API.Message[runs][];


int i = 0; int i = 0;
for (; i < runs; i++) for (; i < runs; i++)
{ {
int runCount = i == (runs - 1) ? lastRunCount : DiscordRestConfig.MaxMessagesPerBatch;
int runCount = i == (runs - 1) ? lastRunCount : DiscordConfig.MaxMessagesPerBatch;
string endpoint; string endpoint;
if (relativeId != null) if (relativeId != null)
endpoint = $"channels/{channelId}/messages?limit={runCount}&{relativeDir}={relativeId}"; endpoint = $"channels/{channelId}/messages?limit={runCount}&{relativeDir}={relativeId}";
@@ -769,7 +770,7 @@ namespace Discord.API
} }


//Was this an incomplete (the last) batch? //Was this an incomplete (the last) batch?
if (models.Length != DiscordRestConfig.MaxMessagesPerBatch) { i++; break; }
if (models.Length != DiscordConfig.MaxMessagesPerBatch) { i++; break; }
} }


if (i > 1) if (i > 1)
@@ -814,8 +815,8 @@ namespace Discord.API
Preconditions.NotEqual(channelId, 0, nameof(channelId)); Preconditions.NotEqual(channelId, 0, nameof(channelId));
Preconditions.NotNull(args, nameof(args)); Preconditions.NotNull(args, nameof(args));
Preconditions.NotNullOrEmpty(args._content, nameof(args.Content)); Preconditions.NotNullOrEmpty(args._content, nameof(args.Content));
if (args._content.Length > DiscordRestConfig.MaxMessageSize)
throw new ArgumentException($"Message content is too long, length must be less or equal to {DiscordRestConfig.MaxMessageSize}.", nameof(args.Content));
if (args._content.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentException($"Message content is too long, length must be less or equal to {DiscordConfig.MaxMessageSize}.", nameof(args.Content));


if (guildId != 0) if (guildId != 0)
return await SendAsync<Message>("POST", $"channels/{channelId}/messages", args, GuildBucket.SendEditMessage, guildId, options: options).ConfigureAwait(false); return await SendAsync<Message>("POST", $"channels/{channelId}/messages", args, GuildBucket.SendEditMessage, guildId, options: options).ConfigureAwait(false);
@@ -843,8 +844,8 @@ namespace Discord.API
{ {
if (args._content.Value == null) if (args._content.Value == null)
args._content = ""; args._content = "";
if (args._content.Value?.Length > DiscordRestConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException($"Message content is too long, length must be less or equal to {DiscordRestConfig.MaxMessageSize}.", nameof(args.Content));
if (args._content.Value?.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException($"Message content is too long, length must be less or equal to {DiscordConfig.MaxMessageSize}.", nameof(args.Content));
} }


if (guildId != 0) if (guildId != 0)
@@ -924,8 +925,8 @@ namespace Discord.API
if (args._content.IsSpecified) if (args._content.IsSpecified)
{ {
Preconditions.NotNullOrEmpty(args._content, nameof(args.Content)); Preconditions.NotNullOrEmpty(args._content, nameof(args.Content));
if (args._content.Value.Length > DiscordRestConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException($"Message content is too long, length must be less or equal to {DiscordRestConfig.MaxMessageSize}.", nameof(args.Content));
if (args._content.Value.Length > DiscordConfig.MaxMessageSize)
throw new ArgumentOutOfRangeException($"Message content is too long, length must be less or equal to {DiscordConfig.MaxMessageSize}.", nameof(args.Content));
} }


if (guildId != 0) if (guildId != 0)


+ 1
- 0
src/Discord.Net/API/DiscordRpcAPIClient.cs View File

@@ -2,6 +2,7 @@
using Discord.Net.Queue; using Discord.Net.Queue;
using Discord.Net.Rest; using Discord.Net.Rest;
using Discord.Net.WebSockets; using Discord.Net.WebSockets;
using Discord.Rpc;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;


+ 4
- 2
src/Discord.Net/API/Rest/GetChannelMessagesParams.cs View File

@@ -1,8 +1,10 @@
namespace Discord.API.Rest
using Discord.Rest;

namespace Discord.API.Rest
{ {
public class GetChannelMessagesParams public class GetChannelMessagesParams
{ {
public int Limit { internal get; set; } = DiscordRestConfig.MaxMessagesPerBatch;
public int Limit { internal get; set; } = DiscordConfig.MaxMessagesPerBatch;


public Direction RelativeDirection { internal get; set; } = Direction.Before; public Direction RelativeDirection { internal get; set; } = Direction.Before;




+ 1
- 0
src/Discord.Net/Audio/AudioClient.cs View File

@@ -1,6 +1,7 @@
using Discord.API.Voice; using Discord.API.Voice;
using Discord.Logging; using Discord.Logging;
using Discord.Net.Converters; using Discord.Net.Converters;
using Discord.WebSocket;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;


src/Discord.Net/Data/DataStore.cs → src/Discord.Net/DataStore.cs View File

@@ -1,5 +1,4 @@
using Discord.Extensions;
using System;
using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;

+ 4
- 0
src/Discord.Net/DiscordConfig.cs View File

@@ -14,6 +14,10 @@ namespace Discord
public const string CDNUrl = "https://cdn.discordapp.com/"; public const string CDNUrl = "https://cdn.discordapp.com/";
public const string InviteUrl = "https://discord.gg/"; public const string InviteUrl = "https://discord.gg/";


public const int MaxMessageSize = 2000;
public const int MaxMessagesPerBatch = 100;
public const int MaxUsersPerBatch = 1000;

/// <summary> Gets or sets the minimum log level severity that will be sent to the LogMessage event. </summary> /// <summary> Gets or sets the minimum log level severity that will be sent to the LogMessage event. </summary>
public LogSeverity LogLevel { get; set; } = LogSeverity.Info; public LogSeverity LogLevel { get; set; } = LogSeverity.Info;
} }


+ 2
- 1
src/Discord.Net/Entities/Application.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.Rest;
using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.Application; using Model = Discord.API.Application;




+ 1
- 0
src/Discord.Net/Entities/Channels/DMChannel.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 1
- 1
src/Discord.Net/Entities/Channels/GroupChannel.cs View File

@@ -1,5 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Extensions;
using Discord.Rest;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;


+ 1
- 0
src/Discord.Net/Entities/Channels/GuildChannel.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 2
- 2
src/Discord.Net/Entities/Channels/IMessageChannel.cs View File

@@ -20,9 +20,9 @@ namespace Discord
/// <summary> Gets the message from this channel's cache with the given id, or null if not found. </summary> /// <summary> Gets the message from this channel's cache with the given id, or null if not found. </summary>
IMessage GetCachedMessage(ulong id); IMessage GetCachedMessage(ulong id);
/// <summary> Gets the last N messages from this message channel. </summary> /// <summary> Gets the last N messages from this message channel. </summary>
Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordRestConfig.MaxMessagesPerBatch);
Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch);
/// <summary> Gets a collection of messages in this channel. </summary> /// <summary> Gets a collection of messages in this channel. </summary>
Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordRestConfig.MaxMessagesPerBatch);
Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch);
/// <summary> Bulk deletes multiple messages. </summary> /// <summary> Bulk deletes multiple messages. </summary>
Task DeleteMessagesAsync(IEnumerable<IMessage> messages); Task DeleteMessagesAsync(IEnumerable<IMessage> messages);




+ 3
- 1
src/Discord.Net/Entities/Entity.cs View File

@@ -1,4 +1,6 @@
namespace Discord
using Discord.Rest;

namespace Discord
{ {
internal abstract class Entity<T> : IEntity<T> internal abstract class Entity<T> : IEntity<T>
{ {


+ 1
- 1
src/Discord.Net/Entities/Guilds/Guild.cs View File

@@ -1,6 +1,6 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Audio; using Discord.Audio;
using Discord.Extensions;
using Discord.Rest;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;


+ 1
- 0
src/Discord.Net/Entities/Guilds/GuildIntegration.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;


+ 2
- 1
src/Discord.Net/Entities/Guilds/UserGuild.cs View File

@@ -1,4 +1,5 @@
using System.Diagnostics;
using Discord.Rest;
using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.UserGuild; using Model = Discord.API.UserGuild;




+ 4
- 3
src/Discord.Net/Entities/Invites/Invite.cs View File

@@ -1,4 +1,5 @@
using System.Diagnostics;
using Discord.Rest;
using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.Invite; using Model = Discord.API.Invite;


@@ -16,8 +17,8 @@ namespace Discord
public override DiscordRestClient Discord { get; } public override DiscordRestClient Discord { get; }


public string Code => Id; public string Code => Id;
public string Url => $"{DiscordRestConfig.InviteUrl}/{XkcdCode ?? Code}";
public string XkcdUrl => XkcdCode != null ? $"{DiscordRestConfig.InviteUrl}/{XkcdCode}" : null;
public string Url => $"{DiscordConfig.InviteUrl}/{XkcdCode ?? Code}";
public string XkcdUrl => XkcdCode != null ? $"{DiscordConfig.InviteUrl}/{XkcdCode}" : null;


public Invite(DiscordRestClient discord, Model model) public Invite(DiscordRestClient discord, Model model)
: base(model.Code) : base(model.Code)


+ 2
- 1
src/Discord.Net/Entities/Invites/InviteMetadata.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.Rest;
using System;
using Model = Discord.API.InviteMetadata; using Model = Discord.API.InviteMetadata;


namespace Discord namespace Discord


+ 1
- 0
src/Discord.Net/Entities/Messages/Message.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 1
- 3
src/Discord.Net/Entities/Roles/Role.cs View File

@@ -1,9 +1,7 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics; using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.Role; using Model = Discord.API.Role;




+ 2
- 1
src/Discord.Net/Entities/Rpc/RemoteUserGuild.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.Rest;
using System;
using Model = Discord.API.Rpc.RpcUserGuild; using Model = Discord.API.Rpc.RpcUserGuild;


namespace Discord.Entities.Rpc namespace Discord.Entities.Rpc


+ 1
- 0
src/Discord.Net/Entities/Users/GroupUser.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;




+ 1
- 0
src/Discord.Net/Entities/Users/GuildUser.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 1
- 0
src/Discord.Net/Entities/Users/SelfUser.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.User; using Model = Discord.API.User;


+ 2
- 1
src/Discord.Net/Entities/Users/User.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.Rest;
using System;
using System.Diagnostics; using System.Diagnostics;
using Model = Discord.API.User; using Model = Discord.API.User;




+ 3
- 2
src/Discord.Net/Entities/WebSocket/Channels/MessageCache.cs View File

@@ -1,4 +1,5 @@
using Discord.Extensions;
using Discord.Rest;
using Discord.WebSocket;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@@ -51,7 +52,7 @@ namespace Discord
return result; return result;
return null; return null;
} }
public override IImmutableList<SocketMessage> GetMany(ulong? fromMessageId, Direction dir, int limit = DiscordRestConfig.MaxMessagesPerBatch)
public override IImmutableList<SocketMessage> GetMany(ulong? fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
{ {
if (limit < 0) throw new ArgumentOutOfRangeException(nameof(limit)); if (limit < 0) throw new ArgumentOutOfRangeException(nameof(limit));
if (limit == 0) return ImmutableArray<SocketMessage>.Empty; if (limit == 0) return ImmutableArray<SocketMessage>.Empty;


+ 3
- 1
src/Discord.Net/Entities/WebSocket/Channels/MessageManager.cs View File

@@ -1,4 +1,6 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.Rest;
using Discord.WebSocket;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
@@ -25,7 +27,7 @@ namespace Discord
public virtual SocketMessage Remove(ulong id) => null; public virtual SocketMessage Remove(ulong id) => null;
public virtual SocketMessage Get(ulong id) => null; public virtual SocketMessage Get(ulong id) => null;


public virtual IImmutableList<SocketMessage> GetMany(ulong? fromMessageId, Direction dir, int limit = DiscordRestConfig.MaxMessagesPerBatch)
public virtual IImmutableList<SocketMessage> GetMany(ulong? fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
=> ImmutableArray.Create<SocketMessage>(); => ImmutableArray.Create<SocketMessage>();


public virtual async Task<SocketMessage> DownloadAsync(ulong id) public virtual async Task<SocketMessage> DownloadAsync(ulong id)


+ 2
- 1
src/Discord.Net/Entities/WebSocket/Channels/SocketDMChannel.cs View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Discord.WebSocket;
using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
using System.Threading.Tasks; using System.Threading.Tasks;
using MessageModel = Discord.API.Message; using MessageModel = Discord.API.Message;


+ 1
- 1
src/Discord.Net/Entities/WebSocket/Channels/SocketGroupChannel.cs View File

@@ -1,4 +1,4 @@
using Discord.Extensions;
using Discord.WebSocket;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 5
- 3
src/Discord.Net/Entities/WebSocket/Channels/SocketTextChannel.cs View File

@@ -1,4 +1,6 @@
using System.Collections.Generic;
using Discord.Rest;
using Discord.WebSocket;
using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -48,11 +50,11 @@ namespace Discord
{ {
return await _messages.DownloadAsync(id).ConfigureAwait(false); return await _messages.DownloadAsync(id).ConfigureAwait(false);
} }
public override async Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordRestConfig.MaxMessagesPerBatch)
public override async Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(int limit = DiscordConfig.MaxMessagesPerBatch)
{ {
return await _messages.DownloadAsync(null, Direction.Before, limit).ConfigureAwait(false); return await _messages.DownloadAsync(null, Direction.Before, limit).ConfigureAwait(false);
} }
public override async Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordRestConfig.MaxMessagesPerBatch)
public override async Task<IReadOnlyCollection<IMessage>> GetMessagesAsync(ulong fromMessageId, Direction dir, int limit = DiscordConfig.MaxMessagesPerBatch)
{ {
return await _messages.DownloadAsync(fromMessageId, dir, limit).ConfigureAwait(false); return await _messages.DownloadAsync(fromMessageId, dir, limit).ConfigureAwait(false);
} }


+ 1
- 0
src/Discord.Net/Entities/WebSocket/Channels/SocketVoiceChannel.cs View File

@@ -1,4 +1,5 @@
using Discord.Audio; using Discord.Audio;
using Discord.WebSocket;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;


+ 1
- 1
src/Discord.Net/Entities/WebSocket/Guilds/SocketGuild.cs View File

@@ -1,5 +1,5 @@
using Discord.Audio; using Discord.Audio;
using Discord.Extensions;
using Discord.WebSocket;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;


+ 2
- 1
src/Discord.Net/Entities/WebSocket/Messages/SocketMessage.cs View File

@@ -1,4 +1,5 @@
using Model = Discord.API.Message;
using Discord.WebSocket;
using Model = Discord.API.Message;


namespace Discord namespace Discord
{ {


+ 2
- 1
src/Discord.Net/Entities/WebSocket/Users/SocketDMUser.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.WebSocket;
using System;
using System.Diagnostics; using System.Diagnostics;
using PresenceModel = Discord.API.Presence; using PresenceModel = Discord.API.Presence;




+ 2
- 1
src/Discord.Net/Entities/WebSocket/Users/SocketGlobalUser.cs View File

@@ -1,4 +1,5 @@
using System;
using Discord.WebSocket;
using System;
using Model = Discord.API.User; using Model = Discord.API.User;
using PresenceModel = Discord.API.Presence; using PresenceModel = Discord.API.Presence;




+ 2
- 1
src/Discord.Net/Entities/WebSocket/Users/SocketGroupUser.cs View File

@@ -1,4 +1,5 @@
using System.Diagnostics;
using Discord.WebSocket;
using System.Diagnostics;


namespace Discord namespace Discord
{ {


+ 2
- 1
src/Discord.Net/Entities/WebSocket/Users/SocketGuildUser.cs View File

@@ -1,4 +1,5 @@
using Model = Discord.API.GuildMember;
using Discord.WebSocket;
using Model = Discord.API.GuildMember;
using PresenceModel = Discord.API.Presence; using PresenceModel = Discord.API.Presence;


namespace Discord namespace Discord


+ 1
- 0
src/Discord.Net/Entities/WebSocket/Users/SocketSelfUser.cs View File

@@ -1,4 +1,5 @@
using Discord.API.Rest; using Discord.API.Rest;
using Discord.WebSocket;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.User; using Model = Discord.API.User;


+ 1
- 1
src/Discord.Net/Extensions/CollectionExtensions.cs View File

@@ -4,7 +4,7 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;


namespace Discord.Extensions
namespace Discord
{ {
internal static class CollectionExtensions internal static class CollectionExtensions
{ {


+ 3
- 2
src/Discord.Net/Extensions/DiscordClientExtensions.cs View File

@@ -1,7 +1,8 @@
using System.Linq;
using Discord.Rest;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord.Extensions
namespace Discord
{ {
public static class DiscordClientExtensions public static class DiscordClientExtensions
{ {


+ 1
- 1
src/Discord.Net/Extensions/GuildExtensions.cs View File

@@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord.Extensions
namespace Discord
{ {
public static class GuildExtensions public static class GuildExtensions
{ {


+ 1
- 1
src/Discord.Net/Extensions/GuildUserExtensions.cs View File

@@ -2,7 +2,7 @@
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord.Extensions
namespace Discord
{ {
public static class GuildUserExtensions public static class GuildUserExtensions
{ {


src/Discord.Net/DiscordRestClient.cs → src/Discord.Net/Rest/DiscordRestClient.cs View File

@@ -10,8 +10,10 @@ using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using Discord.Rpc;
using Discord.WebSocket;


namespace Discord
namespace Discord.Rest
{ {
public class DiscordRestClient : IDiscordClient public class DiscordRestClient : IDiscordClient
{ {

src/Discord.Net/DiscordRestConfig.cs → src/Discord.Net/Rest/DiscordRestConfig.cs View File

@@ -1,15 +1,11 @@
using Discord.Net.Rest; using Discord.Net.Rest;


namespace Discord
namespace Discord.Rest
{ {
public class DiscordRestConfig : DiscordConfig public class DiscordRestConfig : DiscordConfig
{ {
public static string UserAgent { get; } = $"DiscordBot (https://github.com/RogueException/Discord.Net, v{Version})"; public static string UserAgent { get; } = $"DiscordBot (https://github.com/RogueException/Discord.Net, v{Version})";

public const int MaxMessageSize = 2000;
public const int MaxMessagesPerBatch = 100;
public const int MaxUsersPerBatch = 1000;

internal const int RestTimeout = 10000; internal const int RestTimeout = 10000;
internal const int MessageQueueInterval = 100; internal const int MessageQueueInterval = 100;
internal const int WebSocketQueueInterval = 100; internal const int WebSocketQueueInterval = 100;

src/Discord.Net/DiscordRpcClient.cs → src/Discord.Net/Rpc/DiscordRpcClient.cs View File

@@ -2,6 +2,7 @@
using Discord.Logging; using Discord.Logging;
using Discord.Net.Converters; using Discord.Net.Converters;
using Discord.Net.Queue; using Discord.Net.Queue;
using Discord.Rest;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
@@ -9,18 +10,10 @@ using System.Runtime.InteropServices;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord
namespace Discord.Rpc
{ {
public class DiscordRpcClient : DiscordRestClient
public partial class DiscordRpcClient : DiscordRestClient
{ {
public event Func<Task> Connected { add { _connectedEvent.Add(value); } remove { _connectedEvent.Remove(value); } }
private readonly AsyncEvent<Func<Task>> _connectedEvent = new AsyncEvent<Func<Task>>();
public event Func<Exception, Task> Disconnected { add { _disconnectedEvent.Add(value); } remove { _disconnectedEvent.Remove(value); } }
private readonly AsyncEvent<Func<Exception, Task>> _disconnectedEvent = new AsyncEvent<Func<Exception, Task>>();

public event Func<Task> Ready { add { _readyEvent.Add(value); } remove { _readyEvent.Remove(value); } }
private readonly AsyncEvent<Func<Task>> _readyEvent = new AsyncEvent<Func<Task>>();
private readonly ILogger _rpcLogger; private readonly ILogger _rpcLogger;
private readonly JsonSerializer _serializer; private readonly JsonSerializer _serializer;



src/Discord.Net/DiscordRpcConfig.cs → src/Discord.Net/Rpc/DiscordRpcConfig.cs View File

@@ -1,6 +1,7 @@
using Discord.Net.WebSockets; using Discord.Net.WebSockets;
using Discord.Rest;


namespace Discord
namespace Discord.Rpc
{ {
public class DiscordRpcConfig : DiscordRestConfig public class DiscordRpcConfig : DiscordRestConfig
{ {

+ 6
- 0
src/Discord.Net/Rpc/RpcEvents.cs View File

@@ -0,0 +1,6 @@
namespace Discord.Rpc
{
public enum RpcEvent
{
}
}

src/Discord.Net/DiscordSocketClient.Events.cs → src/Discord.Net/WebSocket/DiscordSocketClient.Events.cs View File

@@ -1,7 +1,7 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord
namespace Discord.WebSocket
{ {
//TODO: Add event docstrings //TODO: Add event docstrings
public partial class DiscordSocketClient public partial class DiscordSocketClient

src/Discord.Net/DiscordSocketClient.cs → src/Discord.Net/WebSocket/DiscordSocketClient.cs View File

@@ -1,10 +1,10 @@
using Discord.API.Gateway; using Discord.API.Gateway;
using Discord.Audio; using Discord.Audio;
using Discord.Extensions;
using Discord.Logging; using Discord.Logging;
using Discord.Net.Converters; using Discord.Net.Converters;
using Discord.Net.Queue; using Discord.Net.Queue;
using Discord.Net.WebSockets; using Discord.Net.WebSockets;
using Discord.Rest;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
@@ -15,7 +15,7 @@ using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


namespace Discord
namespace Discord.WebSocket
{ {
public partial class DiscordSocketClient : DiscordRestClient, IDiscordClient public partial class DiscordSocketClient : DiscordRestClient, IDiscordClient
{ {

src/Discord.Net/DiscordSocketConfig.cs → src/Discord.Net/WebSocket/DiscordSocketConfig.cs View File

@@ -1,5 +1,6 @@
using Discord.Audio; using Discord.Audio;
using Discord.Net.WebSockets; using Discord.Net.WebSockets;
using Discord.Rest;


namespace Discord namespace Discord
{ {

Loading…
Cancel
Save