Browse Source

Merge branch 'dev' of https://github.com/RogueException/Discord.Net into dev

tags/1.0-rc
Christopher F 8 years ago
parent
commit
80a3469c4f
9 changed files with 25 additions and 8 deletions
  1. +1
    -1
      README.md
  2. +12
    -0
      src/Discord.Net/DiscordSocketClient.cs
  3. +1
    -1
      src/Discord.Net/Entities/WebSocket/CachedDMChannel.cs
  4. +1
    -0
      src/Discord.Net/Entities/WebSocket/CachedGlobalUser.cs
  5. +1
    -2
      src/Discord.Net/Entities/WebSocket/CachedGroupChannel.cs
  6. +3
    -1
      src/Discord.Net/Entities/WebSocket/CachedSelfUser.cs
  7. +1
    -1
      src/Discord.Net/Entities/WebSocket/ICachedPrivateChannel.cs
  8. +2
    -0
      src/Discord.Net/Entities/WebSocket/ICachedUser.cs
  9. +3
    -2
      src/Discord.Net/Net/Queue/RequestQueueBucket.cs

+ 1
- 1
README.md View File

@@ -1,5 +1,5 @@
# Discord.Net v1.0.0-dev
[![NuGet Pre Release](https://img.shields.io/nuget/vpre/Discord.Net.svg?maxAge=2592000?style=plastic)](https://www.nuget.org/packages/Discord.Net) [![AppVeyor](https://img.shields.io/appveyor/ci/foxbot/discord-net.svg?maxAge=2592000?style=plastic)](https://ci.appveyor.com/project/foxbot/discord-net/) [![Discord](https://discordapp.com/api/servers/81384788765712384/widget.png)](https://discord.gg/0SBTUU1wZTYLhAAW)
[![MyGet](https://img.shields.io/myget/discord-net/vpre/Discord.Net.svg?maxAge=2592000)](https://www.myget.org/feed/Packages/discord-net) [![AppVeyor](https://img.shields.io/appveyor/ci/foxbot/discord-net.svg?maxAge=2592000?style=plastic)](https://ci.appveyor.com/project/foxbot/discord-net/) [![Discord](https://discordapp.com/api/servers/81384788765712384/widget.png)](https://discord.gg/0SBTUU1wZTYLhAAW)

An unofficial .Net API Wrapper for the Discord client (http://discordapp.com).



+ 12
- 0
src/Discord.Net/DiscordSocketClient.cs View File

@@ -892,6 +892,12 @@ namespace Discord
}
else
{
if (!guild.HasAllMembers)
{
await _gatewayLogger.DebugAsync("Ignored GUILD_MEMBER_UPDATE, this user has not been downloaded yet.").ConfigureAwait(false);
return;
}

await _gatewayLogger.WarningAsync("GUILD_MEMBER_UPDATE referenced an unknown user.").ConfigureAwait(false);
return;
}
@@ -926,6 +932,12 @@ namespace Discord
}
else
{
if (!guild.HasAllMembers)
{
await _gatewayLogger.DebugAsync("Ignored GUILD_MEMBER_REMOVE, this user has not been downloaded yet.").ConfigureAwait(false);
return;
}

await _gatewayLogger.WarningAsync("GUILD_MEMBER_REMOVE referenced an unknown user.").ConfigureAwait(false);
return;
}


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

@@ -13,7 +13,7 @@ namespace Discord
public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient;
public new CachedDMUser Recipient => base.Recipient as CachedDMUser;
public IReadOnlyCollection<ICachedUser> Members => ImmutableArray.Create<ICachedUser>(Discord.CurrentUser, Recipient);
IReadOnlyCollection<CachedDMUser> ICachedPrivateChannel.Recipients => ImmutableArray.Create(Recipient);
IReadOnlyCollection<ICachedUser> ICachedPrivateChannel.Recipients => ImmutableArray.Create(Recipient);

public CachedDMChannel(DiscordSocketClient discord, CachedDMUser recipient, Model model)
: base(discord, recipient, model)


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

@@ -11,6 +11,7 @@ namespace Discord
public Presence Presence { get; private set; }

public new DiscordSocketClient Discord { get { throw new NotSupportedException(); } }
CachedGlobalUser ICachedUser.User => this;

public CachedGlobalUser(Model model)
: base(model)


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

@@ -8,7 +8,6 @@ using MessageModel = Discord.API.Message;
using Model = Discord.API.Channel;
using UserModel = Discord.API.User;
using VoiceStateModel = Discord.API.VoiceState;
using Discord.API;

namespace Discord
{
@@ -20,7 +19,7 @@ namespace Discord
public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient;
public IReadOnlyCollection<ICachedUser> Members
=> _users.Select(x => x.Value as ICachedUser).Concat(ImmutableArray.Create(Discord.CurrentUser)).ToReadOnlyCollection(() => _users.Count + 1);
public new IReadOnlyCollection<CachedDMUser> Recipients => _users.Cast<CachedDMUser>().ToReadOnlyCollection(_users);
public new IReadOnlyCollection<ICachedUser> Recipients => _users.Select(x => x.Value as ICachedUser).ToReadOnlyCollection(_users);

public CachedGroupChannel(DiscordSocketClient discord, Model model)
: base(discord, model)


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

@@ -1,10 +1,12 @@
using Model = Discord.API.User;
using System;
using Model = Discord.API.User;

namespace Discord
{
internal class CachedSelfUser : SelfUser, ICachedUser
{
public new DiscordSocketClient Discord => base.Discord as DiscordSocketClient;
CachedGlobalUser ICachedUser.User { get { throw new NotSupportedException(); } }

public CachedSelfUser(DiscordSocketClient discord, Model model)
: base(discord, model)


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

@@ -4,6 +4,6 @@ namespace Discord
{
internal interface ICachedPrivateChannel : ICachedChannel, IPrivateChannel
{
new IReadOnlyCollection<CachedDMUser> Recipients { get; }
new IReadOnlyCollection<ICachedUser> Recipients { get; }
}
}

+ 2
- 0
src/Discord.Net/Entities/WebSocket/ICachedUser.cs View File

@@ -2,6 +2,8 @@
{
internal interface ICachedUser : IUser, ICachedEntity<ulong>
{
CachedGlobalUser User { get; }

ICachedUser Clone();
}
}

+ 3
- 2
src/Discord.Net/Net/Queue/RequestQueueBucket.cs View File

@@ -42,7 +42,7 @@ namespace Discord.Net.Queue
}
catch (HttpRateLimitException ex)
{
//When a 429 occurs, we drop all our locks, including the ones we wanted.
//When a 429 occurs, we drop all our locks.
//This is generally safe though since 429s actually occuring should be very rare.
RequestQueueBucket bucket;
bool success = FindBucket(ex.BucketId, out bucket);
@@ -152,7 +152,8 @@ namespace Discord.Net.Queue
if (millis <= 0 || !await _semaphore.WaitAsync(millis).ConfigureAwait(false))
throw new TimeoutException();
}
await _semaphore.WaitAsync().ConfigureAwait(false);
else
await _semaphore.WaitAsync().ConfigureAwait(false);
}
private async Task QueueExitAsync()
{


Loading…
Cancel
Save