void OnUpdated(EventArgs args)
        {
            //if (Player.HasBuff("blindmonkqtwodash"))
            //{
            //    Game.PrintChat("dash");
            //}
            //  Console.WriteLine(Environment.TickCount - LeeSin.lasttotarget);
            ProcessHandler.ProcessHandlers();
            BubbaKush.DrawRect();
            //WardSorter.HasPoachers();
            // WardSorter.Wards();
            //  Game.PrintChat(WardSorter.HasPoachers().ToString());
            //  Game.PrintChat(ItemReady(3711).ToString());
            if (Player.IsRecalling() || MenuGUI.IsChatOpen)
            {
                return;
            }

            if (GetBool("smiteenable", typeof(KeyBind)))
            {
                ActiveModes.Smite.AutoSmite();
            }
            if (GetBool("wardjump", typeof(KeyBind)))
            {
                Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
                WardManager.WardJump.WardJumped(Player.Position.Extend(Game.CursorPos, 590), true, true);
            }

            if (GetBool("wardinsec", typeof(KeyBind)))
            {
                Insec.InsecTo.insec();
            }

            if (GetBool("starcombo", typeof(KeyBind)))
            {
                ActiveModes.Star.StarCombo();
            }

            switch (Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                ActiveModes.ComboMode.Combo();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                LaneClear.Lane();
                LaneClear.Lane2();
                JungleClear.Jungle();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass.Harassed();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                LaneClear.LastHit();
                break;
            }
            AutoUlt.AutoUlti();


            var target = TargetSelector.GetTarget(Q.Range + 800, TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            target = TargetSelector.GetSelectedTarget() == null ? target : TargetSelector.SelectedTarget;

            if (target == null)
            {
                return;
            }

            //Console.WriteLine(target.Buffs.Where(x => x.Name.ToLower().Contains("blindmonkqone")).Any());
            LastQ(target);
            CanWardFlash(target);
        }
        public static void OnSpellcast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            //if (sender.IsMe)
            //{
            //    Game.PrintChat(args.SData.Name);
            //}
            //var en = HeroManager.Enemies.Where(x => x.Distance(Player) < 1200).ToList();
            //var getresults = BubbaKush.GetPositions(Player, 1125, (byte)GetValue("enemiescount"), en);
            //if (getresults.Count > 1)
            //{
            //    Game.PrintChat("JUSTDOIT");
            //    if (R.IsReady() && GetBool("xeflash", typeof(bool)))
            //    {
            //        for (int[] i = {0}; i[0] < getresults.Count; i[0]++)
            //        {
            //            var order =
            //                en.Where(a => a.Distance(Player) < R.Range).OrderBy(x => x.Distance(getresults[i[0]]));

            //            if (order.FirstOrDefault() != null)
            //            R.Cast(order.FirstOrDefault());
            //        }
            //    }

            //    if (GetBool("xeflash", typeof (bool)))
            //    {
            //        if (R.IsReady())
            //        if (GetBool("wardinsec", typeof (KeyBind)) ||
            //            Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            //            return;

            //        var getposition = BubbaKush.SelectBest(getresults, Player);
            //        if (args.SData.Name == "BlindMonkRKick")
            //        {
            //            var poss = getposition;

            //            Player.Spellbook.CastSpell(Player.GetSpellSlot("SummonerFlash"), poss, true);
            //        }
            //    }
            //}
            if (sender.IsMe)
            {
                if (args.SData.Name.Contains("flash"))
                {
                    LeeSin.LastTeleported = Environment.TickCount;
                }
                switch (args.SData.Name)
                {
                case "BlindMonkQOne":
                case "blinkmonkqtwo":
                    _junglelastq = Environment.TickCount;
                    break;

                case "BlindMonkWOne":
                case "blindmonkwtwo":
                    _junglelastw = Environment.TickCount;
                    break;

                case "BlindMonkEOne":
                case "blindmonketwo":
                    _junglelaste = Environment.TickCount;
                    break;
                }
            }

            if (args.SData.Name.ToLower() == "blindmonkqtwo")
            {
                LeeSin._lastq2casted = Environment.TickCount;
            }

            if (args.SData.Name == "BlindMonkQOne")
            {
                LeeSin._lastq1casted = Environment.TickCount;
            }

            if (args.SData.Name == "BlindMonkRKick")
            {
                if (Environment.TickCount - BubbaKush.lastthingy < 2000 && GetBool("activatebubba", typeof(KeyBind)))
                {
                    var getresults = BubbaKush.GetPositions(Player, 600, (byte)GetValue("enemiescount"),
                                                            HeroManager.Enemies.Where(x => x.Distance(Player) < 1200).ToList());
                    if (getresults.Count > 1)
                    {
                        var getposition = BubbaKush.SelectBest(getresults, Player);

                        var poss = getposition;

                        Player.Spellbook.CastSpell(Player.GetSpellSlot("SummonerFlash"), poss, true);
                    }
                }

                lastr = Environment.TickCount;
                var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
                if (target != null)
                {
                    target = TargetSelector.GetSelectedTarget() == null ? target : TargetSelector.SelectedTarget;
                }

                if (target != null && HasFlash())
                {
                    if (Environment.TickCount - LeeSin.lsatcanjump1 > 3000)
                    {
                        if (Steps == LeeSin.steps.Flash ||
                            (Environment.TickCount - _lastflashward < 2000 && _wardjumpedtotarget) ||
                            Environment.TickCount - lastflashoverprio < 3000 ||
                            Environment.TickCount - _wardjumpedto < 2000 ||
                            Environment.TickCount - BubbaKush.lastthingy < 2000)
                        {
                            if (GetBool("wardinsec", typeof(KeyBind)) || GetBool("starcombo", typeof(KeyBind)) ||
                                Environment.TickCount - BubbaKush.lastthingy < 2000)
                            {
                                var pos  = InsecPos.FlashInsecPosition.InsecPos(target, 230);
                                var poss = Player.Position.Extend(target.Position,
                                                                  +target.Position.Distance(Player.Position) + 230);

                                Player.Spellbook.CastSpell(Player.GetSpellSlot("SummonerFlash"),
                                                           !GetBool("wardinsec", typeof(KeyBind)) ? poss : pos, true);
                            }
                        }
                    }
                }
            }

            if (sender.IsMe || sender.IsAlly || !sender.IsChampion())
            {
                return;
            }

            switch (args.SData.Name)
            {
            case "MonkeyKingDecoy":
            case "AkaliSmokeBomb":
                if (sender.Distance(Player) < E.Range)
                {
                    E.Cast();
                }
                break;
            }
        }