Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }