Exemplo n.º 1
0
            public List <ACDItem> ByQuality(TrinityItemQuality quality)
            {
                return(Source().Where(i =>
                {
                    switch (quality)
                    {
                    case TrinityItemQuality.Invalid:
                        return false;

                    case TrinityItemQuality.None:
                        return false;

                    case TrinityItemQuality.Inferior:
                        return i.ItemQualityLevel == ItemQuality.Inferior;

                    case TrinityItemQuality.Common:
                        return i.ItemQualityLevel >= ItemQuality.Normal && i.ItemQualityLevel <= ItemQuality.Superior;

                    case TrinityItemQuality.Magic:
                        return i.ItemQualityLevel >= ItemQuality.Magic1 && i.ItemQualityLevel <= ItemQuality.Magic3;

                    case TrinityItemQuality.Rare:
                        return i.ItemQualityLevel >= ItemQuality.Rare4 && i.ItemQualityLevel <= ItemQuality.Rare6;

                    case TrinityItemQuality.Legendary:
                        return i.ItemQualityLevel == ItemQuality.Legendary;

                    case TrinityItemQuality.Set:
                        return i.IsSetItem();

                    default:
                        throw new ArgumentOutOfRangeException(nameof(quality), quality, null);
                    }
                }).ToList());
            }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pickUp"></param>
        /// <param name="validRule"></param>
        /// <param name="action"></param>
        private void logOut(ItemEvaluationType evaluationType, string validRule, InterpreterAction action)
        {
            // return if we have a evaluationtype sell or salvage
            if (evaluationType == ItemEvaluationType.Salvage || evaluationType == ItemEvaluationType.Sell)
            {
                return;
            }

            string logString = getFullItem() + validRule;

            TrinityItemQuality quality = getTrinityItemQualityFromString(itemDic["[QUALITY]"]);

            switch (action)
            {
            case InterpreterAction.PICKUP:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.IGNORE:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.KEEP:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.TRASH:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.SCORE:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.NULL:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pickUp"></param>
        /// <param name="validRule"></param>
        /// <param name="action"></param>
        private void logOut(ItemEvaluationType evaluationType, string validRule, InterpreterAction action)
        {
            string logString = getFullItem() + validRule;

            TrinityItemQuality quality = TrinityItemQuality.Unknown;

            if (itemDic.ContainsKey("[QUALITY]"))
            {
                quality = getTrinityItemQualityFromString(itemDic["[QUALITY]"]);
            }

            switch (action)
            {
            case InterpreterAction.PICKUP:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.IGNORE:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.IDENTIFY:
                //if (quality >= logPickQuality)
                //    logOut(logString, action, LogType.LOG);
                break;

            case InterpreterAction.UNIDENT:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.KEEP:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.TRASH:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.SCORE:
                if (quality >= logKeepQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;

            case InterpreterAction.SALVAGE:
                //if (quality >= logKeepQuality)
                //    logOut(logString, action, LogType.LOG);
                break;

            case InterpreterAction.SELL:
                //if (quality >= logKeepQuality)
                //    logOut(logString, action, LogType.LOG);
                break;

            case InterpreterAction.NULL:
                if (quality >= logPickQuality)
                {
                    logOut(logString, action, LogType.LOG);
                }
                break;
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries
        /// </summary>
        public void readConfiguration()
        {
            try
            {
                reset();

                // initialize or reset ruleSet array
                pickUpRuleSet      = new ArrayList();
                identifyRuleSet    = new ArrayList();
                keepRuleSet        = new ArrayList();
                salvageSellRuleSet = new ArrayList();

                // instantiating our macro dictonary
                macroDic = new Dictionary <string, string>();

                // use Trinity setting
                if (Trinity.Settings.Loot.ItemRules.Debug)
                {
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality);
                }

                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
                logPickQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.PickupLogLevel.ToString());
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality);
                logKeepQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.KeepLogLevel.ToString());
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality);

                string rulesPath;
                if (Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty)
                {
                    rulesPath = Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString();
                }
                else
                {
                    rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
                }
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath);
                if (!Directory.Exists(rulesPath))
                {
                    Logger.Log("ERROR: RulesPath {0} does not exist!", rulesPath);
                    return;
                }

                // fill translation dictionary
                nameToBalanceId = new Dictionary <string, string>();
                StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile));
                string       str;
                while ((str = streamReader.ReadLine()) != null)
                {
                    string[] strArrray = str.Split(';');
                    nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0];
                }
                //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count);

                // parse pickup file
                if (File.Exists(Path.Combine(rulesPath, pickupFile)))
                {
                    pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count);
                }
                else
                {
                    // create an empty pickup file
                    using (File.Create(Path.Combine(rulesPath, pickupFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty pickup rule file", identifyRuleSet.Count);
                }

                // parse identify file
                if (File.Exists(Path.Combine(rulesPath, identifyFile)))
                {
                    identifyRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, identifyFile)), identifyRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Identify rules", identifyRuleSet.Count);
                }
                else
                {
                    // create an empty identify file
                    using (File.Create(Path.Combine(rulesPath, identifyFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty identify rule file", identifyRuleSet.Count);
                }

                if (File.Exists(Path.Combine(rulesPath, salvageSellFile)))
                {
                    // parse salvage file
                    salvageSellRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, salvageSellFile)), salvageSellRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Salvage rules", salvageSellRuleSet.Count);
                }
                else
                {
                    // create an empty salvage file
                    using (File.Create(Path.Combine(rulesPath, salvageSellFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty salvage rules file", identifyRuleSet.Count);
                }

                // parse all keep files
                foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality)))
                {
                    string fileName = itemQuality.ToString().ToLower() + ".dis";
                    string filePath = Path.Combine(rulesPath, fileName);
                    int    oldValue = keepRuleSet.Count;
                    if (File.Exists(filePath))
                    {
                        keepRuleSet = readLinesToArray(new StreamReader(filePath), keepRuleSet);
                        Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} {1} Keep rules", (keepRuleSet.Count - oldValue), itemQuality.ToString());
                    }
                }

                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count);
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", keepRuleSet.Count, Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString());
            }
            catch (Exception ex)
            {
                Logger.Log("Error reading ItemRules configuration: {0}", ex.ToString());
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries
        /// </summary>
        public void readConfiguration()
        {
            try
            {
                reset();

                // initialize or reset ruleSet array
                pickUpRuleSet = new ArrayList();
                identifyRuleSet = new ArrayList();
                keepRuleSet = new ArrayList();
                salvageSellRuleSet = new ArrayList();

                // instantiating our macro dictonary
                macroDic = new Dictionary<string, string>();

                // use Trinity setting
                if (Trinity.Settings.Loot.ItemRules.Debug)
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality);

                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
                logPickQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.PickupLogLevel.ToString());
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality);
                logKeepQuality = getTrinityItemQualityFromString(Trinity.Settings.Loot.ItemRules.KeepLogLevel.ToString());
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality);

                string rulesPath;
                if (Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty)
                {
                    rulesPath = Trinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString();
                }
                else
                {
                    rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
                }
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath);
                if (!Directory.Exists(rulesPath))
                {
                    Logger.Log("ERROR: RulesPath {0} does not exist!", rulesPath);
                    return;
                }

                // fill translation dictionary
                nameToBalanceId = new Dictionary<string, string>();
                StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile));
                string str;
                while ((str = streamReader.ReadLine()) != null)
                {
                    string[] strArrray = str.Split(';');
                    nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0];
                }
                //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count);

                // parse pickup file
                if (File.Exists(Path.Combine(rulesPath, pickupFile)))
                {
                    pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count);
                }
                else
                {
                    // create an empty pickup file
                    using (File.Create(Path.Combine(rulesPath, pickupFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty pickup rule file", identifyRuleSet.Count);
                }

                // parse identify file
                if (File.Exists(Path.Combine(rulesPath, identifyFile)))
                {
                    identifyRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, identifyFile)), identifyRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Identify rules", identifyRuleSet.Count);
                }
                else
                {
                    // create an empty identify file
                    using (File.Create(Path.Combine(rulesPath, identifyFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty identify rule file", identifyRuleSet.Count);
                }

                if (File.Exists(Path.Combine(rulesPath, salvageSellFile)))
                {
                    // parse salvage file
                    salvageSellRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, salvageSellFile)), salvageSellRuleSet);
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Salvage rules", salvageSellRuleSet.Count);
                }
                else
                {
                    // create an empty salvage file
                    using (File.Create(Path.Combine(rulesPath, salvageSellFile))) { }
                    Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... created empty salvage rules file", identifyRuleSet.Count);
                }

                // parse all keep files
                foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality)))
                {
                    string fileName = itemQuality.ToString().ToLower() + ".dis";
                    string filePath = Path.Combine(rulesPath, fileName);
                    int oldValue = keepRuleSet.Count;
                    if (File.Exists(filePath))
                    {
                        keepRuleSet = readLinesToArray(new StreamReader(filePath), keepRuleSet);
                        Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} {1} Keep rules", (keepRuleSet.Count - oldValue), itemQuality.ToString());
                    }
                }

                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count);
                Logger.Log(TrinityLogLevel.Info, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", keepRuleSet.Count, Trinity.Settings.Loot.ItemRules.ItemRuleType.ToString());
            }
            catch (Exception ex)
            {
                Logger.Log("Error reading ItemRules configuration: {0}", ex.ToString());
            }
        }
Exemplo n.º 6
0
 public List <TrinityItem> ByQuality(TrinityItemQuality quality) => Source().Where(i => i.TrinityItemQuality == quality).ToList();
Exemplo n.º 7
0
        /// <summary>
        /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries
        /// </summary>
        public void readConfiguration()
        {
            reset();

            // initialize or reset ruleSet array
            ruleSet         = new ArrayList();
            pickUpRuleSet   = new ArrayList();
            salvageRuleSet  = new ArrayList();
            unidKeepRuleSet = new ArrayList();

            // instantiating our macro dictonary
            macroDic = new Dictionary <string, string>();

            // use giles setting
            if (Bot.Settings.ItemRules.ItemRuleDebug)
            {
                Logger.DBLog.InfoFormat("ItemRules is running in debug mode!", logPickQuality);
            }
            Logger.DBLog.InfoFormat("ItemRules is using the {0} rule set.", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower());
            logPickQuality = getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogPickup.ToString());
            Logger.DBLog.InfoFormat("PICKLOG = {0} ", logPickQuality);
            logKeepQuality = getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogKeep.ToString());
            Logger.DBLog.InfoFormat("KEEPLOG = {0} ", logKeepQuality);

            string rulesPath;

            if (Bot.Settings.ItemRules.ItemRuleType.Equals("Custom"))
            {
                rulesPath = Path.GetFullPath(Bot.Settings.ItemRules.ItemRuleCustomPath);
            }
            else
            {
                rulesPath = Path.Combine(itemrulesPath, "Rules", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower());
            }

            Logger.DBLog.InfoFormat("RULEPATH = {0} ", rulesPath);

            // fill translation dictionary
            nameToBalanceId = new Dictionary <string, string>();
            StreamReader streamReader = new StreamReader(Path.Combine(itemrulesPath, "Rules", translationFile));
            string       str;

            while ((str = streamReader.ReadLine()) != null)
            {
                string[] strArrray = str.Split(';');
                nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0];
            }
            //DbHelper.Logger.DBLog.InfoFormat(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count);

            // parse pickup file
            pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet);
            Logger.DBLog.InfoFormat("... loaded: {0} Pickup rules", pickUpRuleSet.Count);

            //parse savlage file
            salvageRuleSet = readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", salvageFile)), salvageRuleSet);
            Logger.DBLog.InfoFormat("... loaded: {0} Salvage rules", salvageRuleSet.Count);

            //parse unid keep file
            unidKeepRuleSet = readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", unidFile)), unidKeepRuleSet);
            Logger.DBLog.InfoFormat("... loaded: {0} Unid Keep rules", unidKeepRuleSet.Count);

            // parse all item files
            foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality)))
            {
                string fileName = itemQuality.ToString().ToLower() + ".dis";
                string filePath = Path.Combine(rulesPath, fileName);
                int    oldValue = ruleSet.Count;
                if (File.Exists(filePath))
                {
                    ruleSet = readLinesToArray(new StreamReader(filePath), ruleSet);
                    Logger.DBLog.InfoFormat("... loaded: {0} {1} rules", (ruleSet.Count - oldValue), itemQuality.ToString());
                }
            }

            Logger.DBLog.InfoFormat("... loaded: {0} Macros", macroDic.Count);
            Logger.DBLog.InfoFormat("ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, Bot.Settings.ItemRules.ItemRuleType.ToString());
        }
Exemplo n.º 8
0
        /// <summary>
        /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries
        /// </summary>
        public void readConfiguration()
        {
            reset();

                // initialize or reset ruleSet array
                ruleSet=new ArrayList();
                pickUpRuleSet=new ArrayList();
                salvageRuleSet=new ArrayList();
                unidKeepRuleSet=new ArrayList();

                // instantiating our macro dictonary
                macroDic=new Dictionary<string, string>();

                // use giles setting
                if (Bot.Settings.ItemRules.ItemRuleDebug)
                     Logger.DBLog.InfoFormat("ItemRules is running in debug mode!", logPickQuality);
                Logger.DBLog.InfoFormat("ItemRules is using the {0} rule set.", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower());
                logPickQuality=getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogPickup.ToString());
                Logger.DBLog.InfoFormat("PICKLOG = {0} ", logPickQuality);
                logKeepQuality=getTrinityItemQualityFromString(Bot.Settings.ItemRules.ItemRuleLogKeep.ToString());
                Logger.DBLog.InfoFormat("KEEPLOG = {0} ", logKeepQuality);

                string rulesPath;
                if (Bot.Settings.ItemRules.ItemRuleType.Equals("Custom"))
                {
                     rulesPath=Path.GetFullPath(Bot.Settings.ItemRules.ItemRuleCustomPath);
                }
                else
                     rulesPath=Path.Combine(itemrulesPath, "Rules", Bot.Settings.ItemRules.ItemRuleType.ToString().ToLower());

                Logger.DBLog.InfoFormat("RULEPATH = {0} ", rulesPath);

                // fill translation dictionary
                nameToBalanceId=new Dictionary<string, string>();
                StreamReader streamReader=new StreamReader(Path.Combine(itemrulesPath, "Rules", translationFile));
                string str;
                while ((str=streamReader.ReadLine())!=null)
                {
                     string[] strArrray=str.Split(';');
                     nameToBalanceId[strArrray[1].Replace(" ", "")]=strArrray[0];
                }
                //DbHelper.Logger.DBLog.InfoFormat(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count);

                // parse pickup file
                pickUpRuleSet=readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet);
                Logger.DBLog.InfoFormat("... loaded: {0} Pickup rules", pickUpRuleSet.Count);

                //parse savlage file
                salvageRuleSet=readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", salvageFile)), salvageRuleSet);
                Logger.DBLog.InfoFormat("... loaded: {0} Salvage rules", salvageRuleSet.Count);

                //parse unid keep file
                unidKeepRuleSet=readLinesToArray(new StreamReader(Path.Combine(itemrulesPath, "Rules", unidFile)), unidKeepRuleSet);
                Logger.DBLog.InfoFormat("... loaded: {0} Unid Keep rules", unidKeepRuleSet.Count);

                // parse all item files
                foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality)))
                {
                     string fileName=itemQuality.ToString().ToLower()+".dis";
                     string filePath=Path.Combine(rulesPath, fileName);
                     int oldValue=ruleSet.Count;
                     if (File.Exists(filePath))
                     {
                          ruleSet=readLinesToArray(new StreamReader(filePath), ruleSet);
                          Logger.DBLog.InfoFormat("... loaded: {0} {1} rules", (ruleSet.Count-oldValue), itemQuality.ToString());
                     }
                }

                Logger.DBLog.InfoFormat("... loaded: {0} Macros", macroDic.Count);
                Logger.DBLog.InfoFormat("ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, Bot.Settings.ItemRules.ItemRuleType.ToString());
        }
Exemplo n.º 9
0
        /// <summary>
        /// Loads (or re-loads) the ItemRules configuration from settings and .dis entries
        /// </summary>
        public void readConfiguration()
        {
            reset();

            // initialize or reset ruleSet array
            ruleSet       = new ArrayList();
            pickUpRuleSet = new ArrayList();

            // instantiating our macro dictonary
            macroDic = new Dictionary <string, string>();

            // use giles setting
            if (GilesTrinity.Settings.Loot.ItemRules.Debug)
            {
                DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules is running in debug mode!", logPickQuality);
            }
            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules is using the {0} rule set.", GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
            logPickQuality = getTrinityItemQualityFromString(GilesTrinity.Settings.Loot.ItemRules.PickupLogLevel.ToString());
            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "PICKLOG = {0} ", logPickQuality);
            logKeepQuality = getTrinityItemQualityFromString(GilesTrinity.Settings.Loot.ItemRules.KeepLogLevel.ToString());
            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "KEEPLOG = {0} ", logKeepQuality);

            string rulesPath;

            if (GilesTrinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString() != String.Empty)
            {
                rulesPath = @GilesTrinity.Settings.Loot.ItemRules.ItemRuleSetPath.ToString();
            }
            else
            {
                rulesPath = Path.Combine(FileManager.ItemRulePath, "Rules", GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString().ToLower());
            }

            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "RULEPATH = {0} ", rulesPath);

            // fill translation dictionary
            nameToBalanceId = new Dictionary <string, string>();
            StreamReader streamReader = new StreamReader(Path.Combine(FileManager.ItemRulePath, translationFile));
            string       str;

            while ((str = streamReader.ReadLine()) != null)
            {
                string[] strArrray = str.Split(';');
                nameToBalanceId[strArrray[1].Replace(" ", "")] = strArrray[0];
            }
            //DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} ITEMID translations", nameToBalanceId.Count);

            // parse pickup file
            pickUpRuleSet = readLinesToArray(new StreamReader(Path.Combine(rulesPath, pickupFile)), pickUpRuleSet);
            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} Pickup rules", pickUpRuleSet.Count);

            // parse all item files
            foreach (TrinityItemQuality itemQuality in Enum.GetValues(typeof(TrinityItemQuality)))
            {
                string fileName = itemQuality.ToString().ToLower() + ".dis";
                string filePath = Path.Combine(rulesPath, fileName);
                int    oldValue = ruleSet.Count;
                if (File.Exists(filePath))
                {
                    ruleSet = readLinesToArray(new StreamReader(filePath), ruleSet);
                    DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} {1} rules", (ruleSet.Count - oldValue), itemQuality.ToString());
                }
            }

            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "... loaded: {0} Macros", macroDic.Count);
            DbHelper.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "ItemRules loaded a total of {0} {1} rules!", ruleSet.Count, GilesTrinity.Settings.Loot.ItemRules.ItemRuleType.ToString());
        }