public ItemInfoPrinter()
        {
            detectItemsIdentifiedByUser.ItemIdentified += new EventHandler <ItemInfoIdentArgs>(detectItemsIdentifiedByUser_ItemIdentified);
            detectItemsInContainers.ItemIdentified     += new EventHandler <ItemInfoIdentArgs>(detectItemsInContainers_ItemIdentified);

            // Virindi Tank Extensions, depends on utank2-i.dll
            try
            {
                virindiTankLootRuleProcessor = new VirindiTankLootRuleProcessor();
            }
            catch (FileNotFoundException) { virindiTankLootRuleProcessor = null; /* Eat this error (Virindi Tank isn't loaded) */ }
            catch (Exception ex) { Debug.LogException(ex); }
        }
		public ItemInfoPrinter()
		{
			detectItemsIdentifiedByUser.ItemIdentified += new EventHandler<ItemInfoIdentArgs>(detectItemsIdentifiedByUser_ItemIdentified);
			detectItemsInContainers.ItemIdentified += new EventHandler<ItemInfoIdentArgs>(detectItemsInContainers_ItemIdentified);

			// Virindi Tank Extensions, depends on utank2-i.dll
			try
			{
				virindiTankLootRuleProcessor = new VirindiTankLootRuleProcessor();
			}
			catch (FileNotFoundException) { virindiTankLootRuleProcessor = null; /* Eat this error (Virindi Tank isn't loaded) */ }
			catch (Exception ex) { Debug.LogException(ex); }
		}
        void processDetectedItem(ItemInfoIdentArgs e, bool allowAutoClipboard = false)
        {
            if (virindiTankLootRuleProcessor != null)
            {
                try
                {
                    if (allowAutoClipboard && Settings.SettingsManager.ItemInfoOnIdent.AutoClipboard.Value)
                    {
                        if (virindiTankLootRuleProcessor.GetLootRuleInfoFromItemInfo(e, processItemInfoCallbackWithAutoClipboard))
                        {
                            return;
                        }
                    }
                    else
                    {
                        if (virindiTankLootRuleProcessor.GetLootRuleInfoFromItemInfo(e, processItemInfoCallback))
                        {
                            return;
                        }
                    }
                }
                catch (FileNotFoundException) { virindiTankLootRuleProcessor = null; /* Eat this error (Virindi Tank isn't loaded) */ }
                catch (Exception ex) { Debug.LogException(ex); }
            }

            if (!e.DontShowIfItemHasNoRule)
            {
                ItemInfo itemInfo = new ItemInfo(e.IdentifiedItem);

                MyClasses.VCS_Connector.SendChatTextCategorized("IDs", itemInfo.ToString(), 14, Settings.SettingsManager.Misc.OutputTargetWindow.Value);

                if (allowAutoClipboard && Settings.SettingsManager.ItemInfoOnIdent.AutoClipboard.Value)
                {
                    try
                    {
                        System.Windows.Forms.Clipboard.SetDataObject(itemInfo.ToString());
                    }
                    catch
                    {
                    }
                }
            }
        }
		void processDetectedItem(ItemInfoIdentArgs e, bool allowAutoClipboard = false)
		{
			if (virindiTankLootRuleProcessor != null)
			{
				try
				{
					if (allowAutoClipboard && Settings.SettingsManager.ItemInfoOnIdent.AutoClipboard.Value)
					{
						if (virindiTankLootRuleProcessor.GetLootRuleInfoFromItemInfo(e, processItemInfoCallbackWithAutoClipboard))
							return;
					}
					else
					{
						if (virindiTankLootRuleProcessor.GetLootRuleInfoFromItemInfo(e, processItemInfoCallback))
							return;
					}
				}
				catch (FileNotFoundException) { virindiTankLootRuleProcessor = null; /* Eat this error (Virindi Tank isn't loaded) */ }
				catch (Exception ex) { Debug.LogException(ex); }
			}

			if (!e.DontShowIfItemHasNoRule)
			{
				ItemInfo itemInfo = new ItemInfo(e.IdentifiedItem);

				CoreManager.Current.Actions.AddChatText(itemInfo.ToString(), 14, Settings.SettingsManager.Misc.OutputTargetWindow.Value);

				if (allowAutoClipboard && Settings.SettingsManager.ItemInfoOnIdent.AutoClipboard.Value)
				{
					try
					{
						System.Windows.Forms.Clipboard.SetDataObject(itemInfo.ToString());
					}
					catch
					{
					}
				}
			}
		}