private void VoiceStateUpdateEvents(JObject message) { var f = message["d"]["channel_id"]; if (f.Value<String>() == null) { DiscordLeftVoiceChannelEventArgs le = new DiscordLeftVoiceChannelEventArgs(); le.user = ServersList.Find(x => x.members.Find(y => y.user.id == message["d"]["user_id"].ToString()) != null).members.Find(x => x.user.id == message["d"]["user_id"].ToString()); le.guild = ServersList.Find(x => x.id == message["d"]["guild_id"].ToString()); le.RawJson = message; return; } DiscordVoiceStateUpdateEventArgs e = new DiscordVoiceStateUpdateEventArgs(); e.user = ServersList.Find(x => x.members.Find(y => y.user.id == message["d"]["user_id"].ToString()) != null).members.Find(x => x.user.id == message["d"]["user_id"].ToString()); e.guild = ServersList.Find(x => x.id == message["d"]["guild_id"].ToString()); e.channel = ServersList.Find(x => x.channels.Find(y => y.id == message["d"]["channel_id"].ToString()) != null).channels.Find(x => x.id == message["d"]["channel_id"].ToString()); e.self_deaf = message["d"]["self_deaf"].ToObject<bool>(); e.deaf = message["d"]["deaf"].ToObject<bool>(); e.self_mute = message["d"]["self_mute"].ToObject<bool>(); e.mute = message["d"]["mute"].ToObject<bool>(); e.suppress = message["d"]["suppress"].ToObject<bool>(); e.RawJson = message; if (VoiceStateUpdate != null) VoiceStateUpdate(this, e); }
private void VoiceStateUpdateEvents(JObject message) { var f = message["d"]["channel_id"]; if (f.Value<String>() == null) { DiscordLeftVoiceChannelEventArgs le = new DiscordLeftVoiceChannelEventArgs(); DiscordServer inServer = ServersList.Find(x => x.id == message["d"]["guild_id"].ToString()); le.user = inServer.members.Find(x => x.ID == message["d"]["user_id"].ToString()); le.guild = inServer; le.RawJson = message; if (UserLeftVoiceChannel != null) UserLeftVoiceChannel(this, le); return; } DiscordVoiceStateUpdateEventArgs e = new DiscordVoiceStateUpdateEventArgs(); e.user = ServersList.Find(x => x.members.Find(y => y.ID == message["d"]["user_id"].ToString()) != null).members.Find(x => x.ID == message["d"]["user_id"].ToString()); e.guild = ServersList.Find(x => x.id == message["d"]["guild_id"].ToString()); e.channel = ServersList.Find(x => x.channels.Find(y => y.id == message["d"]["channel_id"].ToString()) != null).channels.Find(x => x.id == message["d"]["channel_id"].ToString()); if(!message["d"]["self_deaf"].IsNullOrEmpty()) e.self_deaf = message["d"]["self_deaf"].ToObject<bool>(); e.deaf = message["d"]["deaf"].ToObject<bool>(); if(!message["d"]["self_mute"].IsNullOrEmpty()) e.self_mute = message["d"]["self_mute"].ToObject<bool>(); e.mute = message["d"]["mute"].ToObject<bool>(); e.suppress = message["d"]["suppress"].ToObject<bool>(); e.RawJson = message; if (!message["d"]["session_id"].IsNullOrEmpty()) { if(e.user.ID == Me.ID) { Me.Muted = e.self_mute; Me.Deaf = e.self_deaf; if(VoiceClient != null) VoiceClient.SessionID = message["d"]["session_id"].ToString(); } } if (VoiceStateUpdate != null) VoiceStateUpdate(this, e); }
private void VoiceStateUpdateEvents(JObject message) { var f = message["d"]["channel_id"]; if (f.ToString() == null) { DiscordLeftVoiceChannelEventArgs le = new DiscordLeftVoiceChannelEventArgs(); DiscordServer inServer = ServersList.Find(x => x.ID == message["d"]["guild_id"].ToString()); le.User = inServer.GetMemberByKey(message["d"]["user_id"].ToString()); le.Guild = inServer; le.RawJson = message; if (VoiceClient != null && VoiceClient.Connected) VoiceClient.MemberRemoved(le.User); if (UserLeftVoiceChannel != null) UserLeftVoiceChannel(this, le); return; } DiscordVoiceStateUpdateEventArgs e = new DiscordVoiceStateUpdateEventArgs(); e.Guild = ServersList.Find(x => x.ID == message["d"]["guild_id"].ToString()); DiscordMember memberToUpdate = e.Guild.GetMemberByKey(message["d"]["user_id"].ToString()); if (memberToUpdate != null) { e.Channel = e.Guild.Channels.Find(x => x.ID == message["d"]["channel_id"].ToString()); memberToUpdate.CurrentVoiceChannel = e.Channel; if (!message["d"]["self_deaf"].IsNullOrEmpty()) e.SelfDeaf = message["d"]["self_deaf"].ToObject<bool>(); e.Deaf = message["d"]["deaf"].ToObject<bool>(); if (!message["d"]["self_mute"].IsNullOrEmpty()) e.SelfMute = message["d"]["self_mute"].ToObject<bool>(); e.Mute = message["d"]["mute"].ToObject<bool>(); memberToUpdate.Muted = e.Mute; e.Suppress = message["d"]["suppress"].ToObject<bool>(); memberToUpdate.Deaf = e.Suppress; e.RawJson = message; e.User = memberToUpdate; if (VoiceClient != null && VoiceClient.Connected) VoiceClient.MemberAdded(e.User); if (!message["d"]["session_id"].IsNullOrEmpty()) //then this has to do with you { if (e.User.ID == Me.ID) { Me.Muted = e.SelfMute; Me.Deaf = e.SelfDeaf; if (VoiceClient != null) VoiceClient.SessionID = message["d"]["session_id"].ToString(); } } if (VoiceStateUpdate != null) VoiceStateUpdate(this, e); } }