public override void Start()
        {
            PBLog.Debug("Start Called");
            IsRunning = true;
            AttachEvents();
            // make sure bank frame is closed on start to ensure Util.IsGBankFrameOpen is synced
            Util.CloseBankFrames();

            if (IsExecutingActionWhileHonorbuddyIsStopped)
            {
                IsExecutingActionWhileHonorbuddyIsStopped = false;
                ResetSecondaryBot();
            }
            else
            {
                // reset all actions
                Reset();
                if (DynamicCodeCompiler.CodeIsModified)
                {
                    DynamicCodeCompiler.GenorateDynamicCode();
                }
            }

            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }

            if (!SecondaryBot.Initialized)
            {
                SecondaryBot.DoInitialize();
            }
        }
Beispiel #2
0
        private void Init()
        {
            try
            {
                if (!_init)
                {
                    Debug("Initializing ...");
                    if (!Directory.Exists(BotPath))
                    {
                        Directory.CreateDirectory(BotPath);
                    }
                    DynamicCodeCompiler.WipeTempFolder();
                    // force Tripper.Tools.dll to load........
                    new Vector3(0, 0, 0);

                    MySettings = new ProfessionBuddySettings(
                        Path.Combine(Logging.ApplicationPath, string.Format(@"Settings\{0}\{0}[{1}-{2}].xml",
                                                                            Name, Me.Name,
                                                                            Lua.GetReturnVal <string>(
                                                                                "return GetRealmName()", 0)))
                        );
                    GlobalSettings = new GlobalPBSettings(
                        Path.Combine(Logging.ApplicationPath, string.Format(@"Settings\{0}\{0}.xml", Name)));

                    IsTradeSkillsLoaded = false;
                    MaterialList        = new Dictionary <uint, int>();
                    TradeSkillList      = new List <TradeSkill>();
                    LoadProtectedItems();
                    LoadTradeSkills();
                    DataStore = new DataStore();
                    DataStore.ImportDataStore();
                    // load localized strings
                    LoadStrings();
                    BotBase bot =
                        BotManager.Instance.Bots.Values.FirstOrDefault(
                            b =>
                            b.Name.IndexOf(MySettings.LastBotBase, StringComparison.InvariantCultureIgnoreCase) >= 0);
                    if (bot != null)
                    {
                        _root.SecondaryBot = bot;
                    }
                    // check for Professionbuddy updates
                    new Thread(Updater.CheckForUpdate)
                    {
                        IsBackground = true
                    }.Start();
                    _init = true;
                }
            }
            catch (Exception ex)
            {
                Logging.Write(Color.Red, ex.ToString());
            }
        }
        private void Init()
        {
            try
            {
                if (!_init)
                {
                    Lua.Events.AttachEvent("BAG_UPDATE", OnBagUpdate);
                    Lua.Events.AttachEvent("SKILL_LINES_CHANGED", OnSkillUpdate);
                    Lua.Events.AttachEvent("SPELLS_CHANGED", OnSpellsChanged);
                    Lua.Events.AttachEvent("BANKFRAME_OPENED", Util.OnBankFrameOpened);
                    Lua.Events.AttachEvent("BANKFRAME_CLOSED", Util.OnBankFrameClosed);
                    Debug("Initializing ...");
                    if (!Directory.Exists(BotPath))
                    {
                        Directory.CreateDirectory(BotPath);
                    }
                    DynamicCodeCompiler.WipeTempFolder();
                    // force Tripper.Tools.dll to load........
                    new Tripper.Tools.Math.Vector3(0, 0, 0);

                    MySettings = new ProfessionBuddySettings(
                        Path.Combine(Logging.ApplicationPath, string.Format(@"Settings\{0}\{0}[{1}-{2}].xml",
                                                                            Name, Me.Name, Lua.GetReturnVal <string>("return GetRealmName()", 0)))
                        );

                    IsTradeSkillsLoaded = false;
                    MaterialList        = new Dictionary <uint, int>();
                    TradeSkillList      = new List <TradeSkill>();
                    LoadProtectedItems();
                    LoadTradeSkills();
                    DataStore = new DataStore();
                    DataStore.ImportDataStore();

                    if (!string.IsNullOrEmpty(MySettings.LastProfile))
                    {
                        try
                        {
                            LoadProfile(string.IsNullOrEmpty(_profileToLoad) ? MySettings.LastProfile : _profileToLoad);
                        }
                        catch (Exception ex) { Err(ex.ToString()); }
                    }
                    BotBase bot = BotManager.Instance.Bots.Values.FirstOrDefault(b => b.Name.IndexOf(MySettings.LastBotBase, StringComparison.InvariantCultureIgnoreCase) >= 0);
                    if (bot != null)
                    {
                        _root.SecondaryBot = bot;
                    }
                    //HonorBuddyProfilePath = ProfileManager.XmlLocation;
                    _init = true;
                }
            }
            catch (Exception ex) { Logging.Write(Color.Red, ex.ToString()); }
        }
        public static void LoadPBProfile(string path, XElement element = null)
        {
            PbProfile profile = null;

            if (!string.IsNullOrEmpty(path))
            {
                if (File.Exists(path))
                {
                    PBLog.Log("Loading profile {0} from file", Path.GetFileName(path));
                    profile = PbProfile.LoadFromFile(path);
                    Instance.MySettings.LastProfile = path;
                }
                else
                {
                    PBLog.Warn("Profile: {0} does not exist", path);
                    Instance.MySettings.LastProfile = path;
                    return;
                }
            }
            else if (element != null)
            {
                PBLog.Log("Loading profile from Xml element");
                profile = PbProfile.LoadFromXml(element);
            }

            if (profile == null)
            {
                return;
            }
            Instance.CurrentProfile = profile;

            Instance.MySettings.LastProfile = path;
            Instance.ProfileSettings.Load();
            DynamicCodeCompiler.GenorateDynamicCode();
            Instance.UpdateMaterials();
            if (MainForm.IsValid)
            {
                MainForm.Instance.InitActionTree();
                MainForm.Instance.RefreshTradeSkillTabs();
            }


            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }

            Instance.MySettings.Save();
        }
Beispiel #5
0
 private void MainFormLoad(object sender, EventArgs e)
 {
     if (!_pb.IsTradeSkillsLoaded)
     {
         _pb.OnTradeSkillsLoaded -= OnTradeSkillsLoadedEventHandler;
         _pb.OnTradeSkillsLoaded += OnTradeSkillsLoadedEventHandler;
     }
     else
     {
         Initialize();
     }
     if (DynamicCodeCompiler.CodeWasModified)
     {
         DynamicCodeCompiler.GenorateDynamicCode();
     }
 }
Beispiel #6
0
 private void MainFormLoad(object sender, EventArgs e)
 {
     if (!ProfessionbuddyBot.Instance.IsTradeSkillsLoaded)
     {
         ProfessionbuddyBot.Instance.OnTradeSkillsLoaded -= OnTradeSkillsLoadedEventHandler;
         ProfessionbuddyBot.Instance.OnTradeSkillsLoaded += OnTradeSkillsLoadedEventHandler;
     }
     else
     {
         Initialize();
     }
     if (DynamicCodeCompiler.CodeIsModified)
     {
         DynamicCodeCompiler.GenorateDynamicCode();
     }
 }
        public override void Start()
        {
            Debug("Start Called");
            IsRunning = true;

            if (!_isChangingBot)
            {
                // reset all actions
                PbBehavior.Reset();
                if (DynamicCodeCompiler.CodeWasModified)
                {
                    DynamicCodeCompiler.GenorateDynamicCode();
                }
            }

            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }
            try
            {
                try
                {
                    if (SecondaryBot != null)
                    {
                        SecondaryBot.Start();
                    }
                }
                catch (Exception ex)
                {
                    Logging.WriteDebug(ex.ToString());
                }
            }
            catch (Exception ex)
            {
                if (SecondaryBot != null)
                {
                    Err("{0} {1}", SecondaryBot.Name, ex);
                }
            }
        }
Beispiel #8
0
        public static void LoadPBProfile(string path)
        {
            bool preloadedHBProfile = false;

            if (File.Exists(path))
            {
                Log("Loading profile {0}", Path.GetFileName(path));
                PbDecorator idComp = Instance.CurrentProfile.LoadFromFile(path);
                if (idComp != null)
                {
                    Instance.PbBehavior             = idComp;
                    Instance.MySettings.LastProfile = path;
                    Instance.ProfileSettings.Load();
                    DynamicCodeCompiler.GenorateDynamicCode();
                    Instance.UpdateMaterials();
                    preloadedHBProfile = PreLoadHbProfile();
                    if (MainForm.IsValid)
                    {
                        MainForm.Instance.InitActionTree();
                        MainForm.Instance.RefreshTradeSkillTabs();
                    }
                }
            }
            else
            {
                Err("Profile: {0} does not exist", path);
                Instance.MySettings.LastProfile = path;
                return;
            }
            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }
            if (!preloadedHBProfile && LastProfileIsHBProfile && !string.IsNullOrEmpty(_lastProfilePath))
            {
                ProfileManager.LoadNew(_lastProfilePath, true);
            }
            Instance.MySettings.Save();
        }
 public static bool LoadProfile(string path)
 {
     if (File.Exists(path))
     {
         Log("Loading profile {0}", Path.GetFileName(path));
         PbDecorator idComp = Instance.CurrentProfile.LoadFromFile(path);
         if (idComp != null)
         {
             Instance.PbBehavior             = idComp;
             Instance.MySettings.LastProfile = path;
             Instance.ProfileSettings.Load();
             DynamicCodeCompiler.GenorateDynamicCode();
             Instance.UpdateMaterials();
             PreLoadHbProfile();
             if (MainForm.IsValid)
             {
                 MainForm.Instance.InitActionTree();
                 MainForm.Instance.RefreshTradeSkillTabs();
             }
         }
         else
         {
             return(false);
         }
     }
     else
     {
         Err("Profile: {0} does not exist", path);
         Instance.MySettings.LastProfile = path;
         return(false);
     }
     if (MainForm.IsValid)
     {
         MainForm.Instance.UpdateControls();
     }
     Instance.MySettings.Save();
     return(true);
 }
Beispiel #10
0
        public override void Start()
        {
            Debug("Start Called");
            IsRunning = true;
            // reattach lua events on bot start in case it they get destroyed from loging out of game
            Lua.Events.DetachEvent("BAG_UPDATE", OnBagUpdate);
            Lua.Events.DetachEvent("SKILL_LINES_CHANGED", OnSkillUpdate);
            Lua.Events.DetachEvent("SPELLS_CHANGED", OnSpellsChanged);
            Lua.Events.DetachEvent("BANKFRAME_OPENED", Util.OnBankFrameOpened);
            Lua.Events.DetachEvent("BANKFRAME_CLOSED", Util.OnBankFrameClosed);

            Lua.Events.AttachEvent("BAG_UPDATE", OnBagUpdate);
            Lua.Events.AttachEvent("SKILL_LINES_CHANGED", OnSkillUpdate);
            Lua.Events.AttachEvent("SPELLS_CHANGED", OnSpellsChanged);
            Lua.Events.AttachEvent("BANKFRAME_OPENED", Util.OnBankFrameOpened);
            Lua.Events.AttachEvent("BANKFRAME_CLOSED", Util.OnBankFrameClosed);

            if (!_isChangingBot)
            {
                // reset all actions
                PbBehavior.Reset();
                if (DynamicCodeCompiler.CodeWasModified)
                {
                    DynamicCodeCompiler.GenorateDynamicCode();
                }
            }

            if (MainForm.IsValid)
            {
                MainForm.Instance.UpdateControls();
            }

            if (!_firstStartDone)
            {
                try
                {
                    if (!string.IsNullOrEmpty(_profileToLoad))
                    {
                        LoadPBProfile(_profileToLoad);
                        LastProfileIsHBProfile = false;
                    }
                    else if (!string.IsNullOrEmpty(MySettings.LastProfile))
                    {
                        LoadPBProfile(MySettings.LastProfile);
                    }
                }
                catch (Exception ex)
                {
                    Err(ex.ToString());
                }
                _firstStartDone = true;
            }
            try
            {
                if (SecondaryBot != null)
                {
                    SecondaryBot.Start();
                }
            }
            catch (Exception ex)
            {
                Logging.WriteDebug(ex.ToString());
            }
        }
        public override void Initialize()
        {
            try
            {
                if (!_init)
                {
                    PBLog.Debug("Initializing ...");
                    Util.ScanForOffsets();
                    if (!Directory.Exists(BotPath))
                    {
                        Directory.CreateDirectory(BotPath);
                    }
                    DynamicCodeCompiler.WipeTempFolder();
                    // force Tripper.Tools.dll to load........
                    new Vector3(0, 0, 0);

                    MySettings =
                        new ProfessionBuddySettings(
                            Path.Combine(
                                Utilities.AssemblyDirectory,
                                string.Format(@"Settings\{0}\{0}[{1}-{2}].xml", Name, Me.Name, Lua.GetReturnVal <string>("return GetRealmName()", 0))));

                    IsTradeSkillsLoaded = false;
                    LoadTradeSkills();
                    DataStore = new DataStore();
                    DataStore.ImportDataStore();
                    LoadTradeskillTools();
                    // load localized strings
                    LoadStrings();

                    // load the previous
                    BotBase bot =
                        BotManager.Instance.Bots.Values.FirstOrDefault(
                            b => b.Name.IndexOf(MySettings.LastBotBase, StringComparison.InvariantCultureIgnoreCase) >= 0);

                    if (bot == null)
                    {
                        // look for combat bot, otherwise select first bot if combat bot is not found
                        bot = BotManager.Instance.Bots.Values.FirstOrDefault(b => b.GetType().ToString() == "CombatBot")
                              ?? BotManager.Instance.Bots.Values.FirstOrDefault();
                        MySettings.LastBotBase = bot.Name;
                        MySettings.Save();
                    }
                    SecondaryBot = bot;

                    bot.DoInitialize();

                    try
                    {
                        if (!string.IsNullOrEmpty(_profileToLoad))
                        {
                            LoadPBProfile(_profileToLoad);
                        }
                        else if (!string.IsNullOrEmpty(MySettings.LastProfile))
                        {
                            LoadPBProfile(MySettings.LastProfile);
                        }
                    }
                    catch (Exception ex)
                    {
                        PBLog.Warn(ex.ToString());
                    }

                    _init = true;
                }
            }
            catch (Exception ex)
            {
                Logging.Write(Colors.Red, ex.ToString());
            }
        }