@@ -177,15 +177,15 @@ namespace Discord
{
{
if (_voiceSocket.State == WebSocketState.Connected)
if (_voiceSocket.State == WebSocketState.Connected)
{
{
var memb er = _users[e.UserId, socket.CurrentServerId];
var us er = _users[e.UserId, socket.CurrentServerId];
bool value = e.IsSpeaking;
bool value = e.IsSpeaking;
if (memb er.IsSpeaking != value)
if (us er.IsSpeaking != value)
{
{
memb er.IsSpeaking = value;
us er.IsSpeaking = value;
var channel = _channels[_voiceSocket.CurrentChannelId];
var channel = _channels[_voiceSocket.CurrentChannelId];
RaiseUserIsSpeaking(memb er, channel, value);
RaiseUserIsSpeaking(us er, channel, value);
if (Config.TrackActivity)
if (Config.TrackActivity)
memb er.UpdateActivity();
us er.UpdateActivity();
}
}
}
}
};
};
@@ -359,9 +359,9 @@ namespace Discord
Channel channel;
Channel channel;
if (data.IsPrivate)
if (data.IsPrivate)
{
{
var memb er = _users.GetOrAdd(data.Recipient.Id, null);
memb er.Update(data.Recipient);
channel = _channels.GetOrAdd(data.Id, null, memb er.Id);
var us er = _users.GetOrAdd(data.Recipient.Id, null);
us er.Update(data.Recipient);
channel = _channels.GetOrAdd(data.Id, null, us er.Id);
}
}
else
else
channel = _channels.GetOrAdd(data.Id, data.GuildId, null);
channel = _channels.GetOrAdd(data.Id, data.GuildId, null);
@@ -393,30 +393,30 @@ namespace Discord
case "GUILD_MEMBER_ADD":
case "GUILD_MEMBER_ADD":
{
{
var data = e.Payload.ToObject<MemberAddEvent>(_serializer);
var data = e.Payload.ToObject<MemberAddEvent>(_serializer);
var memb er = _users.GetOrAdd(data.User.Id, data.GuildId);
memb er.Update(data);
var us er = _users.GetOrAdd(data.User.Id, data.GuildId);
us er.Update(data);
if (Config.TrackActivity)
if (Config.TrackActivity)
memb er.UpdateActivity();
RaiseUserAdded(memb er);
us er.UpdateActivity();
RaiseUserAdded(us er);
}
}
break;
break;
case "GUILD_MEMBER_UPDATE":
case "GUILD_MEMBER_UPDATE":
{
{
var data = e.Payload.ToObject<MemberUpdateEvent>(_serializer);
var data = e.Payload.ToObject<MemberUpdateEvent>(_serializer);
var memb er = _users[data.User.Id, data.GuildId];
if (memb er != null)
var us er = _users[data.User.Id, data.GuildId];
if (us er != null)
{
{
memb er.Update(data);
RaiseMemberUpdated(memb er);
us er.Update(data);
RaiseMemberUpdated(us er);
}
}
}
}
break;
break;
case "GUILD_MEMBER_REMOVE":
case "GUILD_MEMBER_REMOVE":
{
{
var data = e.Payload.ToObject<MemberRemoveEvent>(_serializer);
var data = e.Payload.ToObject<MemberRemoveEvent>(_serializer);
var memb er = _users.TryRemove(data.UserId, data.GuildId);
if (memb er != null)
RaiseUserRemoved(memb er);
var us er = _users.TryRemove(data.UserId, data.GuildId);
if (us er != null)
RaiseUserRemoved(us er);
}
}
break;
break;
@@ -494,9 +494,9 @@ namespace Discord
var channel = msg.Channel;
var channel = msg.Channel;
if (channel?.IsPrivate == false)
if (channel?.IsPrivate == false)
{
{
var memb er = msg.User;
if (memb er != null)
memb er.UpdateActivity(data.Timestamp);
var us er = msg.User;
if (us er != null)
us er.UpdateActivity(data.Timestamp);
}
}
}
}
@@ -538,11 +538,11 @@ namespace Discord
case "PRESENCE_UPDATE":
case "PRESENCE_UPDATE":
{
{
var data = e.Payload.ToObject<PresenceUpdateEvent>(_serializer);
var data = e.Payload.ToObject<PresenceUpdateEvent>(_serializer);
var memb er = _users.GetOrAdd(data.User.Id, data.GuildId);
if (memb er != null)
var us er = _users.GetOrAdd(data.User.Id, data.GuildId);
if (us er != null)
{
{
memb er.Update(data);
RaiseUserPresenceUpdated(memb er);
us er.Update(data);
RaiseUserPresenceUpdated(us er);
}
}
}
}
break;
break;
@@ -553,19 +553,18 @@ namespace Discord
if (channel != null)
if (channel != null)
{
{
var user = _users[data.UserId, channel.Server?.Id];
var user = _users[data.UserId, channel.Server?.Id];
if (user != null)
if (user != null)
{
{
if (channel != null)
if (channel != null)
RaiseUserIsTyping(user, channel);
RaiseUserIsTyping(user, channel);
}
}
if (Config.TrackActivity)
if (Config.TrackActivity)
{
{
if (!channel.IsPrivate)
if (!channel.IsPrivate)
{
{
var member = _users[data.UserId, channel.Server.Id];
if (member != null)
member.UpdateActivity();
if (user != null)
user.UpdateActivity();
}
}
}
}
}
}
@@ -576,17 +575,17 @@ namespace Discord
case "VOICE_STATE_UPDATE":
case "VOICE_STATE_UPDATE":
{
{
var data = e.Payload.ToObject<MemberVoiceStateUpdateEvent>(_serializer);
var data = e.Payload.ToObject<MemberVoiceStateUpdateEvent>(_serializer);
var memb er = _users[data.UserId, data.GuildId];
if (memb er != null)
var us er = _users[data.UserId, data.GuildId];
if (us er != null)
{
{
var voiceChannel = memb er.VoiceChannel;
if (voiceChannel != null && data.ChannelId != voiceChannel.Id && memb er.IsSpeaking)
var voiceChannel = us er.VoiceChannel;
if (voiceChannel != null && data.ChannelId != voiceChannel.Id && us er.IsSpeaking)
{
{
memb er.IsSpeaking = false;
RaiseUserIsSpeaking(memb er, _channels[voiceChannel.Id], false);
us er.IsSpeaking = false;
RaiseUserIsSpeaking(us er, _channels[voiceChannel.Id], false);
}
}
memb er.Update(data);
RaiseUserVoiceStateUpdated(memb er);
us er.Update(data);
RaiseUserVoiceStateUpdated(us er);
}
}
}
}
break;
break;