private void Rotation()
        {
            while (Main.isLaunched)
            {
                try
                {
                    if (StatusChecker.OutOfCombat(RotationRole))
                    {
                        specialization.BuffRotation();
                    }

                    if (StatusChecker.InPull())
                    {
                        specialization.Pull();
                    }

                    if (StatusChecker.InCombat())
                    {
                        specialization.CombatRotation();
                    }

                    if (StatusChecker.InCombatNoTarget())
                    {
                        specialization.CombatNoTarget();
                    }
                }
                catch (Exception arg)
                {
                    Logging.WriteError("ERROR: " + arg, true);
                }
                Thread.Sleep(ToolBox.GetLatency() + settings.ThreadSleepCycle);
            }
            Logger.Log("Stopped.");
        }
        private void Rotation()
        {
            while (Main.isLaunched)
            {
                try
                {
                    if (StatusChecker.OOCMounted())
                    {
                        // Crusader Aura
                        if (CrusaderAura.KnownSpell &&
                            !Me.HaveBuff("Crusader Aura"))
                        {
                            cast.OnTarget(CrusaderAura);
                        }
                    }

                    if (StatusChecker.OutOfCombat(RotationRole))
                    {
                        specialization.BuffRotation();
                    }

                    if (StatusChecker.InPull())
                    {
                        specialization.PullRotation();
                    }

                    if (StatusChecker.InCombat())
                    {
                        specialization.CombatRotation();
                    }

                    if (StatusChecker.InCombatNoTarget())
                    {
                        specialization.CombatNoTarget();
                    }

                    if (AIOParty.GroupAndRaid.Any(p => p.InCombatFlagOnly && p.GetDistance < 50))
                    {
                        specialization.HealerCombat();
                    }
                }
                catch (Exception arg)
                {
                    Logging.WriteError("ERROR: " + arg, true);
                }
                Thread.Sleep(ToolBox.GetLatency() + settings.ThreadSleepCycle);
            }
            Logger.Log("Stopped.");
        }