Browse Source

Ensure User Left Event (#349)

pull/1966/head
Quin Lynch GitHub 3 years ago
parent
commit
cb1f489960
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 13 deletions
  1. +2
    -2
      src/Discord.Net.WebSocket/BaseSocketClient.Events.cs
  2. +5
    -11
      src/Discord.Net.WebSocket/DiscordSocketClient.cs

+ 2
- 2
src/Discord.Net.WebSocket/BaseSocketClient.Events.cs View File

@@ -424,12 +424,12 @@ namespace Discord.WebSocket
}
internal readonly AsyncEvent<Func<SocketGuildUser, Task>> _userJoinedEvent = new AsyncEvent<Func<SocketGuildUser, Task>>();
/// <summary> Fired when a user leaves a guild. </summary>
public event Func<SocketGuildUser, Task> UserLeft
public event Func<SocketUser, Task> UserLeft
{
add { _userLeftEvent.Add(value); }
remove { _userLeftEvent.Remove(value); }
}
internal readonly AsyncEvent<Func<SocketGuildUser, Task>> _userLeftEvent = new AsyncEvent<Func<SocketGuildUser, Task>>();
internal readonly AsyncEvent<Func<SocketUser, Task>> _userLeftEvent = new AsyncEvent<Func<SocketUser, Task>>();
/// <summary> Fired when a user is banned from a guild. </summary>
public event Func<SocketUser, SocketGuild, Task> UserBanned
{


+ 5
- 11
src/Discord.Net.WebSocket/DiscordSocketClient.cs View File

@@ -1300,7 +1300,7 @@ namespace Discord.WebSocket
var guild = State.GetGuild(data.GuildId);
if (guild != null)
{
var user = guild.RemoveUser(data.User.Id);
SocketUser user = guild.RemoveUser(data.User.Id);
guild.MemberCount--;

if (!guild.IsSynced)
@@ -1309,16 +1309,10 @@ namespace Discord.WebSocket
return;
}

if (user != null)
await TimedInvokeAsync(_userLeftEvent, nameof(UserLeft), user).ConfigureAwait(false);
else
{
if (!guild.HasAllMembers)
await IncompleteGuildUserAsync(type, data.User.Id, data.GuildId).ConfigureAwait(false);
else
await UnknownGuildUserAsync(type, data.User.Id, data.GuildId).ConfigureAwait(false);
return;
}
if(user == null)
user = SocketGlobalUser.Create(this, State, data.User);

await TimedInvokeAsync(_userLeftEvent, nameof(UserLeft), user).ConfigureAwait(false);
}
else
{


Loading…
Cancel
Save