From e0e302400733887eb1c4c84d7bc825bcb7b2b630 Mon Sep 17 00:00:00 2001 From: Jennifer Date: Fri, 30 Oct 2020 16:07:04 +0000 Subject: [PATCH] 0166 --- CHANGELOG.txt | 51 ++++ EMA.toc | 2 +- Locales/Core-Locale-enUS.lua | 34 ++- Modules/Information.lua | 537 +++++++++++++++++++++++++++++++----------- Modules/Mail.lua | 90 ++++++- Modules/Quest.lua | 29 ++- Modules/QuestWatcher.lua | 5 +- Modules/Toon.lua | 51 +++- Modules/Trade.lua | 63 ++++- 9 files changed, 686 insertions(+), 176 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5491269..20ab3a5 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,57 @@ --------------------------- ChangeLogs: --------------------------- +EMA Version: v9.0.1-Release-v3.1(0164-0166) +Game Version: 9.0.1 +Release Date: 30/10/2020 + +## Information + -- Added Support For Bagspace Information + -- Information Panel Can Now Startup On All Team Members + -- Added Some Options To Support The Removal Of "Expansions" From Dropdown List. + -- Added Shadowlands Currencies. + +## Toon + -- Added Support To Tell The Team When Your Bag Space Is Getting Low Then Just Full. (by RobinFrcd ) + +## Quest + -- Fixed Issue #8 + +# Trade + -- Added Support To Trade All Recipes by Akandesh + +# Mail + -- Added Support To Mail All Recipes by Akandesh + +--------------------------- +EMA Version: v9.0.1-Release-v3.0(0163) +Game Version: 9.0.1 +Release Date: 29/10/2020 + +## Quest-Tracker + - Should now remove "Popup" quests when you click the box. + + + + + +--------------------------- +EMA Version: v9.0.1-Release-v3.0(0161) +Game Version: 9.0.1 +Release Date: 25/10/2020 + + +## Quest + - fixed (bitbucket) issue #124 + + +## Information + -- command line now should be right with how there coded with /ema-info + -- show is now a toggle. + + + +--------------------------- EMA Version: v9.0.1-Release-v3.0(0160) Game Version: 9.0.1 Release Date: 23/10/2020 diff --git a/EMA.toc b/EMA.toc index b1a3c8d..4b5b193 100644 --- a/EMA.toc +++ b/EMA.toc @@ -2,7 +2,7 @@ ## Title: EMA ## Notes: Ebony's MultiBoxing Assistant ## Author: Jennifer Calladine 'Ebony' -## Version: v9.0.1-Release-v3.0(0160) +## Version: v9.0.1-Release-v3.1(0166) ## SavedVariables: CoreProfileDB, CommunicationsProfileDB, TeamProfileDB, TagProfileDB, MessageProfileDB, InformationProfileDB, DisplayTeamProfileDB, FollowProfileDB, GuildProfileDB, InteractionProfileDB, ItemUseProfileDB, PurchaseProfileDB, QuestProfileDB, QuestWatcherProfileDB, SellProfileDB, TalkProfileDB, ToonProfileDB, TradeProfileDB, MailProfileDB, BankProfileDB, ISBoxerProfileDB #Libs diff --git a/Locales/Core-Locale-enUS.lua b/Locales/Core-Locale-enUS.lua index 9a71408..c4e78d3 100644 --- a/Locales/Core-Locale-enUS.lua +++ b/Locales/Core-Locale-enUS.lua @@ -449,20 +449,36 @@ end -- infomation Locale L["EMA_CURRENCY"] = "Currency" L["SHOW_CURRENCY"] = "Show Currency" -L["SHOW_CURRENCY_HELP"] = "Show The Currency Frame Window." +L["SHOW_CURRENCY_HELP"] = "Toggle The Currency Window Frame." L["HIDE_CURRENCY"] = "Hide Currency" L["HIDE_CURRENCY_HELP"] = "Hide The Currency Values For All Members In The Team." L["CURRENCY_HEADER"] = "Currency Selection To Show On Frame" +L["BAG_SPACE"] = "Bag Space" L["GOLD"] = "Gold" L["GOLD_HELP"] = "Shows The Minion's Gold" L["GOLD_GB"] = "Include Gold In Guild Bank" L["GOLD_GB_HELP"] = "Show Gold In Guild Bank\n(This Does Not Update Unless You Visit The Guildbank)" -L["CURR_STARTUP"] = "Open Currency List On Start Up" -L["CURR_STARTUP_HELP"] = "Open Currency List On Start Up.\nThe Master Only)" +L["SHOW_BAG_SPACE"] = "Bag Space" +L["SHOW_BAG_SPACE_HELP"] = "Shows The Minion's Bag Space" +L["CURRENCY_CLASSIC"] = "Classic" +L["CURRENCY_CLASSIC_HELP"] = "Shows Anything Before Warlords Of Draenor Currencies" +L["CURRENCY_WOD"] = "Warlords Of Draenor" +L["CURRENCY_WOD_HELP"] = "Shows Warlords Of Draenor Currencies" +L["CURRENCY_LEGION"] = "Legion" +L["CURRENCY_LEGION_HELP"] = "Shows Legion Currencies" +L["CURRENCY_BFA"] = "Battle for Azeroth" +L["CURRENCY_BFA_HELP"] = "Battle for Azeroth Currencies" +L["CURRENCY_SHADOWLANDS"] = "Shadowlands" +L["CURRENCY_SHADOWLANDS_HELP"] = "Shadowlands Currencies" +L["CURR_STARTUP"] = "Open Currency List On Startup" +L["CURR_STARTUP_HELP"] = "Open Currency List On Startup On Everyone." +L["CURR_STARTUP_MASTER"] = "Only On Master" +L["CURR_STARTUP_MASTER_HELP"] = "Open Currency List On The Master Only" L["LOCK_CURR_LIST"] = "Lock The Currency List Frame" L["LOCK_CURR_LIST_HELP"] = "Locks The Currency List Frame And Enables Mouse Click-Through" L["SPACE_FOR_NAME"] = "Space For Name" L["SPACE_FOR_GOLD"] = "Space For Gold" +L["SPACE_FOR_OTHER"] = "Space For Other" L["SPACE_FOR_POINTS"] = "Space For Points" L["SPACE_BETWEEN_VALUES"] = "Space Between Values" L["TOTAL"] = "Total" @@ -547,6 +563,8 @@ L["POWER_BAR_HEADER"] = "Power Bar" L["CLASS_BAR_HEADER"] = "Class Power Bar" L["CAN_NOT_FIND_TRUFIGCD_ADDON"] = "TrufiGCD Missing" L["NOT_SUPPORTED"] = "UnSupported" + + -------------------------- -- Follow Locale L["FOLLOW_BINDING_HEADER"] = "Follow Key Bindings" @@ -632,9 +650,11 @@ L["TRADE_LIST"] = "Trade Items" L["GLOBAL_TRADE_LIST"] = "Global Trade List" L["TRADE_LIST_HELP"] = "Trade Items With The Selected EMA-Group Member" L["TRADE_BOE_ITEMS"] = "Trades Binds When Equipped Items With:" -L["TRADE_BOE_ITEMS_HELP"] = "Trade All Binds When Equipped Items with EMA Group" +L["TRADE_BOE_ITEMS_HELP"] = "Trade All Binds When Equipped Items with EMA Groups" L["TRADE_REAGENTS"] = "Trades Crafting Reagents Items With:" -L["TRADE_REAGENTS_HELP"] = "Trades All Crafting Reagent Items" +L["TRADE_REAGENTS_HELP"] = "Trades All Crafting Reagent Items with EMA Groups" +L["TRADE_RECIPE_FORMULA"] = "Trades Recipe Items WIth:" +L["TRADE_RECIPE_FORMULA_HELP"] = "Trades All Recipe/Patterns/BulePrints Items with EMA Groups" L["TRADE_OPTIONS"] = "Trade To Options" L["TRADE_GOLD"] = "Trade Excess Gold To Master From Minion" L["TRADE_GOLD_HELP"] = "Trade Excess Gold To Master From Minions \nAlways Be Careful When Auto Trading." @@ -704,6 +724,8 @@ L["DURABILITY_DROPS_BELOW_HELP"] = "Warn Master If My Durability Drops Below A C L["DURABILITY_PERCENTAGE"] = "Warn If My Durability Drops Below" L["LOW_DURABILITY_TEXT"] = "Low Durability Text" L["DURABILITY_LOW_MSG"] = "I Have My Durability At" +L["BAG_SLOTS_HELP"] = "Empty Bags Slots Allowed Before Warning" +L["BAGS_ALMOST_FULL"] = "Bags Are Almost Full" L["BAGS_FULL"] = "Warn If Bags Are Full" L["BAGS_FULL_HELP"] = "Warn If All Regular Bags Are Full" L["BAG_SPACE"] = "Bag Space" @@ -951,6 +973,8 @@ L["MAIL_BOE_ITEMS"] = "Mail All BoE Items To:" L["MAIL_BOE_ITEMS_HELP"] = "Mail All BoE Items To The Selected Character" L["MAIL_REAGENTS"] = "Mail All Reagents To:" L["MAIL_REAGENTS_HELP"] = "Mails All Crafting Reagents Items To The Selected Character" +L["MAIL_RECIPES"] = "Mails Recipe Items To:" +L["MAIL_RECIPES_HELP"] = "Mails All Recipe/Patterns/BulePrints To The Selected Character" L["MAIL_GOLD"] = "Adjust Characters Money While Visiting A Mail Box" L["MAIL_GOLD_HELP"] = "Adjust Characters Money While Visiting A Mail Box" L["SENT_AUTO_MAILER"] = "Sent By EMA Auto Mailer" diff --git a/Modules/Information.lua b/Modules/Information.lua index 45eaf51..ed219af 100644 --- a/Modules/Information.lua +++ b/Modules/Information.lua @@ -39,80 +39,143 @@ EMA.moduleIcon = "Interface\\Addons\\EMA\\Media\\SellIcon.tga" EMA.moduleOrder = 3 EMA.globalCurrencyFramePrefix = "EMAToonCurrencyListFrame" -EMA.currTypes = {} +--EMA.currTypes = {} EMA.simpleCurrList = {} -- Currency Identifiers. To add you own just add a new line at the bottom of this part -- http://www.wowhead.com/currencies --- Old Stuff ---EMA.currTypes.DalaranJewelcraftingToken = 61 -EMA.currTypes.ChampionsSeal = 241 ---EMA.currTypes.IllustriousJewelcraftersToken = 361 -EMA.currTypes.TolBaradCommendation = 391 -EMA.currTypes.LesserCharmOfGoodFortune = 738 -EMA.currTypes.ElderCharmOfGoodFortune = 697 -EMA.currTypes.MoguRuneOfFate = 752 -EMA.currTypes.WarforgedSeal = 776 -EMA.currTypes.BloodyCoin = 789 -EMA.currTypes.TimelessCoin = 777 ---WoD Currency -EMA.currTypes.GarrisonResources = 824 -EMA.currTypes.TemperedFate = 994 -EMA.currTypes.ApexisCrystal = 823 -EMA.currTypes.Darkmoon = 515 -EMA.currTypes.Oil = 1101 -EMA.currTypes.InevitableFate = 1129 -EMA.currTypes.TimeWalker = 1166 -EMA.currTypes.Valor = 1191 + +local function allAlwaysCurrencys() + local allAlwaysCurrencys = {} + allAlwaysCurrencys.Honor = 1792 + allAlwaysCurrencys.TimeWalker = 1166 + allAlwaysCurrencys.Darkmoon = 515 + return allAlwaysCurrencys +end + +-- Before WOD +local function classicCurrencys() + local classicCurrencys = {} + classicCurrencys.ChampionsSeal = 241 + classicCurrencys.TolBaradCommendation = 391 + classicCurrencys.LesserCharmOfGoodFortune = 738 + classicCurrencys.ElderCharmOfGoodFortune = 697 + classicCurrencys.MoguRuneOfFate = 752 + classicCurrencys.WarforgedSeal = 776 + classicCurrencys.BloodyCoin = 789 + classicCurrencys.TimelessCoin = 777 + return classicCurrencys +end + +-- Wod Currency +local function wodCurrencys() + local wodCurrencys = {} + wodCurrencys.GarrisonResources = 824 + wodCurrencys.TemperedFate = 994 + wodCurrencys.ApexisCrystal = 823 + wodCurrencys.Oil = 1101 + wodCurrencys.InevitableFate = 1129 + wodCurrencys.Valor = 1191 + return wodCurrencys +end + --Legion Currency -EMA.currTypes.OrderResources = 1220 -EMA.currTypes.AncientMana = 1155 -EMA.currTypes.NetherShard = 1226 -EMA.currTypes.SealofBrokenFate = 1273 -EMA.currTypes.ShadowyCoins = 1154 -EMA.currTypes.SightlessEye = 1149 -EMA.currTypes.TimeWornArtifact = 1268 -EMA.currTypes.CuriousCoin = 1275 ---7.2 -EMA.currTypes.LegionfallWarSupplies = 1342 ---7.2.5 -EMA.currTypes.CoinsOfAir = 1416 ---7.3 -EMA.currTypes.WakeningEssence = 1533 -EMA.currTypes.VeiledArgunite = 1508 ---8.0 -EMA.currTypes.WarResources = 1560 -EMA.currTypes.RichAzeriteFragment = 1565 -EMA.currTypes.SeafarersDubloon = 1710 -EMA.currTypes.SealofWartornFate = 1580 -EMA.currTypes.WarSupplies = 1587 ---8.1 -EMA.currTypes.SeventhLegionService = 1717 -EMA.currTypes.HonorboundService = 1716 -EMA.currTypes.TitanResiduum = 1718 ---8.2 -EMA.currTypes.PrismaticManapearl = 1721 ---8.3 -EMA.currTypes.CoalescingVisions = 1755 -EMA.currTypes.CorruptedMementos = 1719 -EMA.currTypes.EchoesOfNyalotha = 1803 - ---9.0 -EMA.currTypes.Honor = 1792 +local function legionCurrencys() + local legionCurrencys = {} + legionCurrencys.OrderResources = 1220 + legionCurrencys.AncientMana = 1155 + legionCurrencys.NetherShard = 1226 + legionCurrencys.SealofBrokenFate = 1273 + legionCurrencys.ShadowyCoins = 1154 + legionCurrencys.SightlessEye = 1149 + legionCurrencys.TimeWornArtifact = 1268 + legionCurrencys.CuriousCoin = 1275 + legionCurrencys.LegionfallWarSupplies = 1342 + legionCurrencys.CoinsOfAir = 1416 + legionCurrencys.WakeningEssence = 1533 + legionCurrencys.VeiledArgunite = 1508 + return legionCurrencys + +end + +-- BattleforAzeroth Currency +local function battleforAzerothnCurrencys() + local bfa = {} + bfa.WarResources = 1560 + bfa.RichAzeriteFragment = 1565 + bfa.SeafarersDubloon = 1710 + bfa.SealofWartornFate = 1580 + bfa.WarSupplies = 1587 + bfa.SeventhLegionService = 1717 + bfa.HonorboundService = 1716 + bfa.TitanResiduum = 1718 + bfa.PrismaticManapearl = 1721 + bfa.CoalescingVisions = 1755 + bfa.CorruptedMementos = 1719 + bfa.EchoesOfNyalotha = 1803 + return bfa +end + +local function shadowlandsCurrencys() + local shadowlandsCurrencys = {} + shadowlandsCurrencys.ArgentCommendation = 1754 + shadowlandsCurrencys.SoulAsh = 1828 + shadowlandsCurrencys.Stygia = 1767 + shadowlandsCurrencys.ReservoirAnima = 1813 + shadowlandsCurrencys.SinstoneFragments = 1816 + shadowlandsCurrencys.InfusedRuby = 1820 + shadowlandsCurrencys.FreedSoul = 1751 + return shadowlandsCurrencys +end + + +local function testcode() + return EMA.currTypes +end -------------------------------------- End of edit -------------------------------------------------------------- function EMA:CurrencyIconAndName( id ) local info = C_CurrencyInfo.GetCurrencyInfo(id) - --local info.fullName, info.amount, info.icon, info.earnedThisWeek, info.weeklyMax, info.totalMax, info.isDiscovered, info.quality -- = C_CurrencyInfo.GetCurrencyInfo(id) - - --EMA:Print("test", info.name, info.icon) + --EMA:Print("test", info.name, info.iconFileID, info.description ) if info.iconFileID ~= nil then local currName = strconcat(" |T"..info.iconFileID..":20|t", L[" "]..info.name) return currName end end + +function EMA:AddCurrencyToTable() + table.wipe( EMA.currTypes ) + for name, id in pairs( allAlwaysCurrencys() ) do + EMA.currTypes[name] = id + end + if EMA.db.currClassicCurrencys == true then + for name, id in pairs( classicCurrencys() ) do + EMA.currTypes[name] = id + end + end + if EMA.db.currWodCurrencys == true then + for name, id in pairs( wodCurrencys() ) do + EMA.currTypes[name] = id + end + end + if EMA.db.currLegionCurrencys == true then + for name, id in pairs( legionCurrencys() ) do + EMA.currTypes[name] = id + end + end + if EMA.db.currBattleforAzerothCurrencys == true then + for name, id in pairs( battleforAzerothnCurrencys() ) do + EMA.currTypes[name] = id + end + end + if EMA.db.currShadowlands == true then + for name, id in pairs( shadowlandsCurrencys() ) do + EMA.currTypes[name] = id + end + end +end -- Settings - the values to store and their defaults for the settings database. EMA.settings = { @@ -120,19 +183,25 @@ EMA.settings = { currChatTrigger = false, currGold = true, currGoldInGuildBank = false, - -- Currency default's - CcurrTypeOne = EMA.currTypes.OrderResources, - CcurrTypeOneName = EMA:CurrencyIconAndName(EMA.currTypes.WarResources), - CcurrTypeTwo = EMA.currTypes.AncientMana, - CcurrTypeTwoName = EMA:CurrencyIconAndName(EMA.currTypes.WarSupplies), - CcurrTypeThree = EMA.currTypes.TimeWalker, - CcurrTypeThreeName = EMA:CurrencyIconAndName(EMA.currTypes.TimeWalker), - CcurrTypeFour = EMA.currTypes.SightlessEye, - CcurrTypeFourName = EMA:CurrencyIconAndName(EMA.currTypes.SealofWartornFate), + currBagSpace = false, + currClassicCurrencys = false, + currWodCurrencys = false, + currLegionCurrencys = false, + currBattleforAzerothCurrencys = false, + currShadowlands = true, + -- Currency default's ALL NONE! (saves updating every xpac....) + CcurrTypeOne = 1, + CcurrTypeOneName = "", + CcurrTypeTwo = 1, + CcurrTypeTwoName = "", + CcurrTypeThree = 1, + CcurrTypeThreeName = "", + CcurrTypeFour = 1, + CcurrTypeFourName = "", CcurrTypeFive = 1, CcurrTypeFiveName = "", CcurrTypeSix = 1, - CcurrTypeSixName = "", + CcurrTypeSixName = "", currencyFrameAlpha = 1.0, currencyFramePoint = "CENTER", currencyFrameRelativePoint = "CENTER", @@ -154,9 +223,11 @@ EMA.settings = { currencyNameWidth = 60, currencyPointsWidth = 50, currencyGoldWidth = 140, + currencyOtherWidth = 50, currencySpacingWidth = 3, currencyLockWindow = false, currOpenStartUpMaster = false, + currOpenStartUpAll = false }, } @@ -182,15 +253,15 @@ function EMA:GetConfiguration() type = "input", name = L["SHOW_CURRENCY"], desc = L["SHOW_CURRENCY_HELP"], - usage = "ema-information show", + usage = "ema-info show", get = false, - set = "EMAToonRequestCurrency", + set = "ShowInformationPanel", }, hide = { type = "input", name = L["HIDE_CURRENCY"], desc = L["HIDE_CURRENCY_HELP"], - usage = "ema-information hide", + usage = "ema-info hide", get = false, set = "EMAToonHideCurrency", }, @@ -198,7 +269,7 @@ function EMA:GetConfiguration() type = "input", name = L["PUSH_ALL_SETTINGS"], desc = L["PUSH_SETTINGS_INFO"], - usage = "ema-information push", + usage = "ema-info push", get = false, set = "EMASendSettings", }, @@ -210,7 +281,6 @@ end local function DebugMessage( ... ) --EMA:Print( ... ) end - ------------------------------------------------------------------------------------------------------------- -- Command this module sends. ------------------------------------------------------------------------------------------------------------- @@ -269,11 +339,11 @@ function EMA:SettingsCreateCurrency( top ) local indent = horizontalSpacing * 12 local verticalSpacing = EMAHelperSettings:GetVerticalSpacing() local halfWidth = (headingWidth - horizontalSpacing) / 2 - local thirdWidth = (headingWidth - (horizontalSpacing * 5)) / 5 + local thirdWidth = (headingWidth - (horizontalSpacing * 2)) / 3 local halfWidthSlider = (headingWidth - horizontalSpacing) / 2 local column2left = left + halfWidthSlider local left2 = left + thirdWidth - local left3 = left + (thirdWidth * 1) + local left3 = left + (thirdWidth * 2) local right = left + halfWidth + horizontalSpacing local movingTop = top -- A blank to get layout to show right? @@ -283,7 +353,7 @@ function EMA:SettingsCreateCurrency( top ) movingTop = movingTop - headingHeight EMA.settingsControl.checkBoxChatTrigger = EMAHelperSettings:CreateCheckBox( EMA.settingsControl, - headingWidth, + halfWidth, left, movingTop, L["CHAT_TRIGGERS"], @@ -295,23 +365,82 @@ function EMA:SettingsCreateCurrency( top ) movingTop = movingTop - headingHeight EMA.settingsControl.checkBoxCurrencyGold = EMAHelperSettings:CreateCheckBox( EMA.settingsControl, - headingWidth, + halfWidth, left, movingTop, L["GOLD"], EMA.SettingsToggleCurrencyGold, L["GOLD_HELP"] - ) - movingTop = movingTop - checkBoxHeight + ) EMA.settingsControl.checkBoxCurrencyGoldInGuildBank = EMAHelperSettings:CreateCheckBox( EMA.settingsControl, - headingWidth, - left, + halfWidth, + column2left, movingTop, L["GOLD_GB"], EMA.SettingsToggleCurrencyGoldInGuildBank, L["GOLD_GB_HELP"] ) + movingTop = movingTop - checkBoxHeight + EMA.settingsControl.checkBoxCurrencyShowBagSpace = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + halfWidth, + left, + movingTop, + L["SHOW_BAG_SPACE"], + EMA.SettingsToggleCurrencyShowBagSpace, + L["SHOW_BAG_SPACE_HELP"] + ) + movingTop = movingTop - checkBoxHeight + EMAHelperSettings:CreateHeading( EMA.settingsControl, L["CURRENCY"], movingTop, false ) + movingTop = movingTop - headingHeight + -- Xpacs + EMA.settingsControl.checkBoxCurrencyShowClassic = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left, + movingTop, + L["CURRENCY_CLASSIC"], + EMA.SettingsToggleCurrencyClassic, + L["CURRENCY_CLASSIC_HELP"] + ) + EMA.settingsControl.checkBoxCurrencyShowWarlordsofDraenor = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left2, + movingTop, + L["CURRENCY_WOD"], + EMA.SettingsToggleCurrencyWarlordsofDraenor, + L["CURRENCY_WOD_HELP"] + ) + EMA.settingsControl.checkBoxCurrencyShowLegion = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left3, + movingTop, + L["CURRENCY_LEGION"], + EMA.SettingsToggleCurrencyLegion, + L["CURRENCY_LEGION_HELP"] + ) + movingTop = movingTop - checkBoxHeight + EMA.settingsControl.checkBoxCurrencyShowBattleforAzeroth = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left, + movingTop, + L["CURRENCY_BFA"], + EMA.SettingsToggleCurrencyBattleforAzeroth, + L["CURRENCY_BFA_HELP"] + ) + EMA.settingsControl.checkBoxCurrencyShowShadowlands = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left2, + movingTop, + L["CURRENCY_SHADOWLANDS"], + EMA.SettingsToggleCurrencyShadowlands, + L["CURRENCY_SHADOWLANDS_HELP"] + ) --Currency One & Two movingTop = movingTop - checkBoxHeight EMA.settingsControl.editBoxCurrencyTypeOneID = EMAHelperSettings:CreateDropdown( @@ -384,14 +513,23 @@ function EMA:SettingsCreateCurrency( top ) L["SHOW_CURRENCY_HELP"] ) movingTop = movingTop - buttonHeight - EMA.settingsControl.checkBoxCurrencyOpenStartUpMaster = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl.checkBoxCurrencyOpenStartUpAll = EMAHelperSettings:CreateCheckBox( EMA.settingsControl, - headingWidth, + halfWidth, left, movingTop, L["CURR_STARTUP"], - EMA.SettingsToggleCurrencyOpenStartUpMaster, + EMA.SettingsToggleCurrencyOpenStartUpAll, L["CURR_STARTUP_HELP"] + ) + EMA.settingsControl.checkBoxCurrencyOpenStartUpMaster = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + halfWidth, + column2left, + movingTop, + L["CURR_STARTUP_MASTER"], + EMA.SettingsToggleCurrencyOpenStartUpMaster, + L["CURR_STARTUP_MASTER_HELP"] ) movingTop = movingTop - checkBoxHeight -- Create appearance & layout. @@ -503,6 +641,16 @@ function EMA:SettingsCreateCurrency( top ) EMA.settingsControl.currencySliderSpaceForGold:SetSliderValues( 20, 200, 1 ) EMA.settingsControl.currencySliderSpaceForGold:SetCallback( "OnValueChanged", EMA.SettingsChangeSliderSpaceForGold ) movingTop = movingTop - sliderHeight - verticalSpacing + EMA.settingsControl.currencySliderSpaceForOther = EMAHelperSettings:CreateSlider( + EMA.settingsControl, + headingWidth, + left, + movingTop, + L["SPACE_FOR_OTHER"] + ) + EMA.settingsControl.currencySliderSpaceForOther:SetSliderValues( 20, 200, 1 ) + EMA.settingsControl.currencySliderSpaceForOther:SetCallback( "OnValueChanged", EMA.SettingsChangeSliderSpaceForOther ) + movingTop = movingTop - sliderHeight - verticalSpacing EMA.settingsControl.currencySliderSpaceForPoints = EMAHelperSettings:CreateSlider( EMA.settingsControl, headingWidth, @@ -544,14 +692,27 @@ function EMA:SettingsRefresh() EMA.settingsControl.checkBoxCurrencyGold:SetValue( EMA.db.currGold ) EMA.settingsControl.checkBoxCurrencyGoldInGuildBank:SetValue( EMA.db.currGoldInGuildBank ) EMA.settingsControl.checkBoxCurrencyGoldInGuildBank:SetDisabled( not EMA.db.currGold ) + EMA.settingsControl.checkBoxCurrencyShowBagSpace:SetValue( EMA.db.currBagSpace ) + EMA.settingsControl.checkBoxCurrencyShowClassic:SetValue( EMA.db.currClassicCurrencys ) + EMA.settingsControl.checkBoxCurrencyShowWarlordsofDraenor:SetValue( EMA.db.currWodCurrencys ) + EMA.settingsControl.checkBoxCurrencyShowLegion:SetValue( EMA.db.currLegionCurrencys ) + EMA.settingsControl.checkBoxCurrencyShowBattleforAzeroth:SetValue( EMA.db.currBattleforAzerothCurrencys) + EMA.settingsControl.checkBoxCurrencyShowShadowlands:SetValue( EMA.db.currShadowlands ) EMA.settingsControl.editBoxCurrencyTypeOneID:SetValue( EMA.db.CcurrTypeOne ) + EMA.settingsControl.editBoxCurrencyTypeOneID:SetList( EMA.CurrDropDownBox() ) EMA.settingsControl.editBoxCurrencyTypeTwoID:SetValue ( EMA.db.CcurrTypeTwo ) + EMA.settingsControl.editBoxCurrencyTypeTwoID:SetList( EMA.CurrDropDownBox() ) EMA.settingsControl.editBoxCurrencyTypeThreeID:SetValue ( EMA.db.CcurrTypeThree ) + EMA.settingsControl.editBoxCurrencyTypeThreeID:SetList( EMA.CurrDropDownBox() ) EMA.settingsControl.editBoxCurrencyTypeFourID:SetValue ( EMA.db.CcurrTypeFour ) - EMA.settingsControl.editBoxCurrencyTypeFiveID:SetValue ( EMA.db.CcurrTypeFive ) + EMA.settingsControl.editBoxCurrencyTypeFourID:SetList( EMA.CurrDropDownBox() ) + EMA.settingsControl.editBoxCurrencyTypeFiveID:SetValue ( EMA.db.CcurrTypeFive ) + EMA.settingsControl.editBoxCurrencyTypeFiveID:SetList( EMA.CurrDropDownBox() ) EMA.settingsControl.editBoxCurrencyTypeSixID:SetValue ( EMA.db.CcurrTypeSix ) - --state + EMA.settingsControl.editBoxCurrencyTypeSixID:SetList( EMA.CurrDropDownBox() ) + EMA.settingsControl.checkBoxCurrencyOpenStartUpAll:SetValue( EMA.db.currOpenStartUpAll ) EMA.settingsControl.checkBoxCurrencyOpenStartUpMaster:SetValue( EMA.db.currOpenStartUpMaster ) + EMA.settingsControl.checkBoxCurrencyOpenStartUpMaster:SetDisabled( not EMA.db.currOpenStartUpAll ) EMA.settingsControl.currencyTransparencySlider:SetValue( EMA.db.currencyFrameAlpha ) EMA.settingsControl.currencyScaleSlider:SetValue( EMA.db.currencyScale ) EMA.settingsControl.currencyMediaBorder:SetValue( EMA.db.currencyBorderStyle ) @@ -562,9 +723,11 @@ function EMA:SettingsRefresh() EMA.settingsControl.currencyFontSize:SetValue( EMA.db.currencyFontSize ) EMA.settingsControl.currencySliderSpaceForName:SetValue( EMA.db.currencyNameWidth ) EMA.settingsControl.currencySliderSpaceForGold:SetValue( EMA.db.currencyGoldWidth ) + EMA.settingsControl.currencySliderSpaceForOther:SetValue( EMA.db.currencyOtherWidth ) EMA.settingsControl.currencySliderSpaceForPoints:SetValue( EMA.db.currencyPointsWidth ) EMA.settingsControl.currencySliderSpaceBetweenValues:SetValue( EMA.db.currencySpacingWidth ) EMA.settingsControl.checkBoxCurrencyLockWindow:SetValue( EMA.db.currencyLockWindow ) + EMA.CurrDropDownBox() if EMA.currencyListFrameCreated == true then EMA:CurrencyListSetColumnWidth() EMA:SettingsUpdateBorderStyle() @@ -595,6 +758,41 @@ function EMA:SettingsToggleCurrencyGoldInGuildBank( event, checked ) EMA:SettingsRefresh() end +function EMA:SettingsToggleCurrencyShowBagSpace( event, checked ) + EMA.db.currBagSpace = checked + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleCurrencyClassic( event, checked ) + EMA.db.currClassicCurrencys = checked + EMA:AddCurrencyToTable() + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleCurrencyWarlordsofDraenor( event, checked ) + EMA.db.currWodCurrencys = checked + EMA:AddCurrencyToTable() + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleCurrencyLegion( event, checked ) + EMA.db.currLegionCurrencys = checked + EMA:AddCurrencyToTable() + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleCurrencyBattleforAzeroth( event, checked ) + EMA.db.currBattleforAzerothCurrencys = checked + EMA:AddCurrencyToTable() + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleCurrencyShadowlands( event, checked ) + EMA.db.currShadowlands = checked + EMA:AddCurrencyToTable() + EMA:SettingsRefresh() +end + function EMA:EditBoxChangedCurrencyTypeOneID( event, value ) local currName, id = EMA:MatchCurrValue(value) EMA.db.CcurrTypeOne = id @@ -645,6 +843,11 @@ function EMA:EditBoxChangedCurrencyTypeSixID( event, value ) EMA:SettingsRefresh() end +function EMA:SettingsToggleCurrencyOpenStartUpAll( event, checked ) + EMA.db.currOpenStartUpAll = checked + EMA:SettingsRefresh() +end + function EMA:SettingsToggleCurrencyOpenStartUpMaster( event, checked ) EMA.db.currOpenStartUpMaster = checked EMA:SettingsRefresh() @@ -706,6 +909,11 @@ function EMA:SettingsChangeSliderSpaceForGold( event, value ) EMA:SettingsRefresh() end +function EMA:SettingsChangeSliderSpaceForOther( event, value ) + EMA.db.currencyOtherWidth = tonumber( value ) + EMA:SettingsRefresh() +end + function EMA:SettingsChangeSliderSpaceForPoints( event, value ) EMA.db.currencyPointsWidth = tonumber( value ) EMA:SettingsRefresh() @@ -732,14 +940,16 @@ function EMA:OnInitialize() EMA.currencyListFrameCreated = false EMA.currencyFrameCharacterInfo = {} EMA.currentCurrencyValues = {} + EMA.currTypes = {} -- Create the settings control. SettingsCreate() -- Initialise the EMAModule part of this module. EMA:EMAModuleInitialize( EMA.settingsControl.widgetSettings.frame ) - -- Populate the settings. - EMA:SettingsRefresh() -- Create the currency list frame. EMA:CreateEMAToonCurrencyListFrame() + EMA:AddCurrencyToTable() + -- Populate the settings. + EMA:SettingsRefresh() end -- Called when the addon is enabled. @@ -751,10 +961,14 @@ function EMA:OnEnable() EMA:RegisterEvent( "CHAT_MSG_RAID", "DoChatCommand") EMA:RegisterEvent( "CHAT_MSG_RAID_LEADER", "DoChatCommand") --EMA:RegisterMessage( EMAApi.MESSAGE_MESSAGE_AREAS_CHANGED, "OnMessageAreasChanged" ) - if EMA.db.currOpenStartUpMaster == true then - if EMAApi.IsCharacterTheMaster( self.characterName ) == true then - EMA:ScheduleTimer( "EMAToonRequestCurrency", 20 ) - end + if EMA.db.currOpenStartUpAll == true then + if EMA.db.currOpenStartUpMaster == true then + if EMAApi.IsCharacterTheMaster( EMA.characterName ) == true then + EMA:ScheduleTimer( "EMAToonRequestCurrency", 10 ) + end + else + EMA:ScheduleTimer( "EMAToonRequestCurrency", 10 ) + end end end @@ -769,6 +983,12 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.currChatTrigger = settings.currChatTrigger EMA.db.currGold = settings.currGold EMA.db.currGoldInGuildBank = settings.currGoldInGuildBank + EMA.db.currBagSpace = settings.currBagSpace + EMA.db.currClassicCurrencys = settings.currClassicCurrencys + EMA.db.currWodCurrencys = settings.currWodCurrencys + EMA.db.currLegionCurrencys = settings.currLegionCurrencys + EMA.db.currBattleforAzerothCurrencys = settings.currBattleforAzerothCurrencys + EMA.db.currShadowlands = settings.currShadowlands EMA.db.CcurrTypeOne = settings.CcurrTypeOne EMA.db.CcurrTypeOneName = settings.CcurrTypeOneName EMA.db.CcurrTypeTwo = settings.CcurrTypeTwo @@ -782,6 +1002,7 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.CcurrTypeSix = settings.CcurrTypeSix EMA.db.CcurrTypeSixName = settings.CcurrTypeSixName EMA.db.currOpenStartUpMaster = settings.currOpenStartUpMaster + EMA.db.currOpenStartUpAll = settings.currOpenStartUpAll EMA.db.currencyScale = settings.currencyScale EMA.db.currencyFrameAlpha = settings.currencyFrameAlpha EMA.db.currencyFramePoint = settings.currencyFramePoint @@ -803,6 +1024,7 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.currencyNameWidth = settings.currencyNameWidth EMA.db.currencyPointsWidth = settings.currencyPointsWidth EMA.db.currencyGoldWidth = settings.currencyGoldWidth + EMA.db.currencyOtherWidth = settings.currencyOtherWidth EMA.db.currencySpacingWidth = settings.currencySpacingWidth EMA.db.currencyLockWindow = settings.currencyLockWindow -- Refresh the settings. @@ -812,29 +1034,18 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) end end -function pairsByKeys (t, f) - local a = {} - for n in pairs(t) do table.insert(a, n) end - table.sort(a, f) - local i = 0 -- iterator variable - local iter = function () -- iterator function - i = i + 1 - if a[i] == nil then return nil - else return a[i], t[a[i]] - end - end - return iter -end - function EMA:CurrDropDownBox() + --EMA:Print("test21") + EMAUtilities:ClearTable( EMA.simpleCurrList ) for name, id in pairs( EMA.currTypes ) do - --EMA:Print("test", name, id) + --EMA:Print("testDropDown", name, id) local currName = EMA:CurrencyIconAndName( id ) + --EMA.simpleCurrList[id] = currName EMA.simpleCurrList[id] = currName end EMA.simpleCurrList[0] = "" - table.sort(EMA.simpleCurrList, function(a,b) return a 0 then --EMA:Print("SetRed") @@ -1682,7 +1947,7 @@ function EMA:DoShowToonsCurrency( characterName, currencyValues ) end end currencyFrameCharacterInfo.GoldText:SetText( EMAUtilities:FormatMoneyString( currencyValues.currGold ) ) - --currencyFrameCharacterInfo.GoldText:SetText( GetCoinTextureString( currencyValues.currGold ) ) + currencyFrameCharacterInfo.BagSpaceText:SetText( currencyValues.bagSpace..L["/"]..currencyValues.bagSpaceMax ) currencyFrameCharacterInfo.TypeOneText:SetText( currencyValues.currTypeOne ) currencyFrameCharacterInfo.TypeTwoText:SetText( currencyValues.currTypeTwo ) currencyFrameCharacterInfo.TypeThreeText:SetText( currencyValues.currTypeThree ) @@ -1913,3 +2178,5 @@ function EMA:EMAOnCommandReceived( characterName, commandName, ... ) EMA:DoShowToonsCurrency( characterName, ... ) end end + +EMAApi.TestCodeCurr = testcode diff --git a/Modules/Mail.lua b/Modules/Mail.lua index 62a0692..aaf90d9 100644 --- a/Modules/Mail.lua +++ b/Modules/Mail.lua @@ -58,6 +58,9 @@ EMA.settings = { MailCRItems = false, autoMailToonNameCR = "", autoCRItemTag = EMAApi.AllGroup(), + MailRecipeFItems = false, + autoMailToonNameRecipeF = "", + autoRecipeFItemTag = EMAApi.AllGroup(), autoMailItemsList = {}, adjustMoneyWithMail = false, @@ -384,6 +387,34 @@ function EMA:SettingsCreateMail( top ) ) EMA.settingsControl.MailTradeCRItemsTagCR:SetList( EMAApi.GroupList() ) EMA.settingsControl.MailTradeCRItemsTagCR:SetCallback( "OnValueChanged", EMA.GroupListDropDownListCR ) + -- Recipes & Formulas + movingTop = movingTop - editBoxHeight - 3 + EMA.settingsControl.checkBoxMailRecipeFItems = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + thirdWidth, + left, + movingTop + movingTopEdit, + L["MAIL_RECIPES"], + EMA.SettingsToggleMailRecipeF, + L["MAIL_RECIPES_HELP"] + ) + EMA.settingsControl.tabNumListDropDownListRecipeF = EMAHelperSettings:CreateEditBox( + EMA.settingsControl, + thirdWidth, + left2, + movingTop, + L["MAILTOON"] + ) + EMA.settingsControl.tabNumListDropDownListRecipeF:SetCallback( "OnEnterPressed", EMA.SettingsToggleMailRecipeFName ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF = EMAHelperSettings:CreateDropdown( + EMA.settingsControl, + thirdWidth, + left3, + movingTop, + L["GROUP_LIST"] + ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF:SetList( EMAApi.GroupList() ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF:SetCallback( "OnValueChanged", EMA.EditMailToonNameRecipeFGroup ) movingTop = movingTop - editBoxHeight - headingHeight -- movingTop = movingTop - editBoxHeight @@ -605,6 +636,34 @@ function EMA:GroupListDropDownListCR (event, value ) EMA:SettingsRefresh() end +function EMA:SettingsToggleMailRecipeF(event, checked ) + EMA.db.MailRecipeFItems = checked + EMA:SettingsRefresh() +end + +function EMA:SettingsToggleMailRecipeFName (event, value ) + -- if nil or the blank group then don't get Name. + if value == " " or value == nil then + return + end + EMA.db.autoMailToonNameRecipeF = value + EMA:SettingsRefresh() +end + +function EMA:EditMailToonNameRecipeFGroup (event, value ) + -- if nil or the blank group then don't get Name. + if value == " " or value == nil then + return + end + for index, groupName in ipairs( EMAApi.GroupList() ) do + if index == value then + EMA.db.autoRecipeFItemTag = groupName + break + end + end + EMA:SettingsRefresh() +end + function EMA:OnMessageAreasChanged( message ) EMA.settingsControl.dropdownMessageArea:SetList( EMAApi.MessageAreaList() ) end @@ -613,6 +672,7 @@ function EMA:OnGroupAreasChanged( message ) EMA.settingsControl.MailItemsEditBoxMailTag:SetList( EMAApi.GroupList() ) EMA.settingsControl.MailTradeBoEItemsTagBoE:SetList( EMAApi.GroupList() ) EMA.settingsControl.MailTradeCRItemsTagCR:SetList( EMAApi.GroupList() ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF:SetList( EMAApi.GroupList() ) end function EMA:SettingsSetMessageArea( event, value ) @@ -688,6 +748,9 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.MailCRItems = settings.MailCRItems EMA.db.autoMailToonNameCR = settings.autoMailToonNameCR EMA.db.autoCRItemTag = settings.autoCRItemTag + EMA.db.MailRecipeFItems = settings.MailRecipeFItems + EMA.db.autoMailToonNameRecipeF = settings.autoMailToonNameRecipeF + EMA.db.autoRecipeFItemTag = settings.autoRecipeFItemTag EMA.db.autoMailItemsList = EMAUtilities:CopyTable( settings.autoMailItemsList ) EMA.db.global.autoMailItemsListGlobal = EMAUtilities:CopyTable( settings.global.autoMailItemsListGlobal ) EMA.db.adjustMoneyWithMail = settings.adjustMoneyWithMail @@ -721,8 +784,11 @@ function EMA:SettingsRefresh() EMA.settingsControl.checkBoxMailCRItems:SetValue( EMA.db.MailCRItems ) EMA.settingsControl.tabNumListDropDownListCR:SetText( EMA.db.autoMailToonNameCR ) EMA.settingsControl.MailTradeCRItemsTagCR:SetText( EMA.db.autoCRItemTag ) + + EMA.settingsControl.checkBoxMailRecipeFItems:SetValue( EMA.db.MailRecipeFItems ) + EMA.settingsControl.tabNumListDropDownListRecipeF:SetText( EMA.db.autoMailToonNameRecipeF ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF:SetText( EMA.db.autoRecipeFItemTag ) EMA.settingsControl.dropdownMessageArea:SetValue( EMA.db.messageArea ) - EMA.settingsControl.checkBoxAdjustMoneyOnToonViaMail:SetValue( EMA.db.adjustMoneyWithMail ) EMA.settingsControl.editBoxGoldAmountToLeaveOnToon:SetText( tostring( EMA.db.goldAmountToKeepOnToon ) ) EMA.settingsControl.editBoxGoldAmountToLeaveOnToon:SetDisabled( not EMA.db.adjustMoneyWithMail ) @@ -743,6 +809,9 @@ function EMA:SettingsRefresh() EMA.settingsControl.checkBoxMailCRItems:SetDisabled( not EMA.db.showEMAMailWindow ) EMA.settingsControl.tabNumListDropDownListCR:SetDisabled( not EMA.db.showEMAMailWindow ) EMA.settingsControl.MailTradeCRItemsTagCR:SetDisabled( not EMA.db.showEMAMailWindow ) + EMA.settingsControl.checkBoxMailRecipeFItems:SetDisabled( not EMA.db.showEMAMailWindow ) + EMA.settingsControl.tabNumListDropDownListRecipeF:SetDisabled( not EMA.db.showEMAMailWindow ) + EMA.settingsControl.MailTradeRecipeFItemsTagRecipeF:SetDisabled( not EMA.db.showEMAMailWindow ) EMA:SettingsScrollRefresh() end @@ -860,17 +929,18 @@ function EMA:AddAllToMailBox() EMA.Count = 1 for bagID = 0, NUM_BAG_SLOTS do for slotID = 1,GetContainerNumSlots( bagID ),1 do - --EMA:Print( "Bags OK. checking", itemLink ) + local item = Item:CreateFromBagAndSlot(bagID, slotID) if ( item ) then local bagItemLink = item:GetItemLink() if ( bagItemLink ) then + --EMA:Print( "Bags OK. checking", itemLink ) local itemLink = item:GetItemLink() local location = item:GetItemLocation() local itemType = C_Item.GetItemInventoryType( location ) local isBop = C_Item.IsBound( location ) local itemRarity = C_Item.GetItemQuality( location ) - local _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,isCraftingReagent = GetItemInfo( bagItemLink ) + local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemIcon, itemSellPrice, itemClassID, itemSubClassID, bindType, expacID, itemSetID, isCraftingReagent = GetItemInfo( bagItemLink ) local canSend = false local toonName = nil if EMA.db.MailBoEItems == true then @@ -888,6 +958,7 @@ function EMA:AddAllToMailBox() if EMA.db.MailCRItems == true then if isCraftingReagent == true then if EMAApi.IsCharacterInGroup( EMA.characterName, EMA.db.autoCRItemTag ) == true then + --EMA:Print("testCR", classID, bagItemLink) if isBop == false then canSend = true toonName = EMA.db.autoMailToonNameCR @@ -895,6 +966,17 @@ function EMA:AddAllToMailBox() end end end + if EMA.db.MailRecipeFItems == true then + if itemClassID == 9 then + --EMA:Print("testRF", itemClassID, bagItemLink) + if EMAApi.IsCharacterInGroup( EMA.characterName, EMA.db.autoRecipeFItemTag ) == true then + if isBop == false then + canSend = true + toonName = EMA.db.autoMailToonNameRecipeF + end + end + end + end if EMA.db.globalMailList == true then itemTable = EMA.db.global.autoMailItemsListGlobal else @@ -996,4 +1078,4 @@ function EMA:AddGoldToMailBox() EMA:Print("[PH] Can Only Send Mail From BlizzardUI Mail Frame!") end end -end \ No newline at end of file +end diff --git a/Modules/Quest.lua b/Modules/Quest.lua index 32e7d09..3c8a117 100644 --- a/Modules/Quest.lua +++ b/Modules/Quest.lua @@ -1097,6 +1097,7 @@ end function EMA:ChurnNpcGossip() EMA:DebugMessage( "ChurnNpcGossip" ) + --9.0 C_GossipInfo. -- GetGossipAvailableQuests and GetGossipActiveQuests are returning nil in some cases, so do this as well. -- GetGossipAvailableQuests() now returns 6 elements per quest and GetGossipActiveQuests() returns 4. title, level, isTrivial, isDaily, ... -- Patch 5.0.4 added isLegendary. @@ -1105,10 +1106,11 @@ function EMA:ChurnNpcGossip() local numberAvailableQuestInfo = 6 local numberActiveQuestInfo = 5 local index - EMA:DebugMessage( "GetNumAvailableQuests", GetNumAvailableQuests() ) + --EMA:Print("test" ) + EMA:DebugMessage( "GetNumAvailableQuests", GetNumAvailableQuests() ) EMA:DebugMessage( "GetNumActiveQuests", GetNumActiveQuests() ) - EMA:DebugMessage( "GetGossipAvailableQuests", GetGossipAvailableQuests() ) - EMA:DebugMessage( "GetGossipActiveQuests", GetGossipActiveQuests() ) + EMA:DebugMessage( "GetGossipAvailableQuests", C_GossipInfo.GetAvailableQuests() ) + EMA:DebugMessage( "GetGossipActiveQuests", C_GossipInfo.GetActiveQuests() ) for index = 0, GetNumAvailableQuests() do SelectAvailableQuest( index ) end @@ -1116,7 +1118,7 @@ function EMA:ChurnNpcGossip() SelectActiveQuest( index ) end EMAUtilities:ClearTable( EMA.gossipQuests ) - local availableQuestsData = { GetGossipAvailableQuests() } + local availableQuestsData = { C_GossipInfo.GetAvailableQuests() } local iterateQuests = 1 local questIndex = 1 while( availableQuestsData[iterateQuests] ) do @@ -1129,7 +1131,7 @@ function EMA:ChurnNpcGossip() iterateQuests = iterateQuests + numberAvailableQuestInfo questIndex = questIndex + 1 end - local activeQuestsData = { GetGossipActiveQuests() } + local activeQuestsData = { C_GossipInfo.GetActiveQuests() } iterateQuests = 1 while( activeQuestsData[iterateQuests] ) do local questInformation = {} @@ -1144,7 +1146,7 @@ function EMA:ChurnNpcGossip() end for index, questInformation in ipairs( EMA.gossipQuests ) do if questInformation.type == "available" then - SelectGossipAvailableQuest( questInformation.index ) + C_GossipInfo.SelectAvailableQuest( questInformation.index ) end -- If this is an active quest... if questInformation.type == "active" then @@ -1263,12 +1265,9 @@ end function EMA:DoSelectActiveQuest( sender, questIndex ) if EMA.db.mirrorMasterQuestSelectionAndDeclining == true then EMA.isInternalCommand = true - EMA:DebugMessage( "DoSelectActiveQuest" ) - --if C_GossipInfo.GetNumActiveQuests() > 1 then - C_GossipInfo.SelectActiveQuest( questIndex ) - --else - -- EMA:EMASendMessageToTeam( EMA.db.warningArea, L["AM_I_TALKING_TO_A_NPC"], false ) - --end + + --EMA:Print( "DoSelectActiveQuest" ) + C_GossipInfo.SelectActiveQuest( questIndex ) EMA.isInternalCommand = false end end @@ -1587,9 +1586,9 @@ function EMA:CanAutoAcceptSharedQuestFromPlayer() end end if EMA.db.acceptFromFriends == true then - for friendIndex = 1, GetNumFriends() do - local friendName = GetFriendInfo( friendIndex ) - if questSourceName == friendName then + for friendIndex = 1, C_FriendList.GetNumFriends() do + local info = C_FriendList.GetFriendInfo( friendIndex ) + if questSourceName == info.name then canAccept = true break end diff --git a/Modules/QuestWatcher.lua b/Modules/QuestWatcher.lua index ace5707..efd8b1c 100644 --- a/Modules/QuestWatcher.lua +++ b/Modules/QuestWatcher.lua @@ -2458,7 +2458,7 @@ function EMA:DisplayAutoQuestPopUps() frame:HookScript( "OnMouseUp", function() ShowQuestComplete( questID ) EMA:EMARemoveAllAutoQuestPopUps( questID ) - EMA:DisplayAutoQuestPopUps() + --EMA:DisplayAutoQuestPopUps() EMA:SettingsUpdateBorderStyle() EMA:SettingsUpdateFontStyle() end ) @@ -2471,9 +2471,10 @@ function EMA:DisplayAutoQuestPopUps() frame:HookScript( "OnMouseUp", function() ShowQuestOffer( questID ) EMA:EMARemoveAllAutoQuestPopUps( questID ) - EMA:DisplayAutoQuestPopUps() + --EMA:DisplayAutoQuestPopUps() EMA:SettingsUpdateBorderStyle() EMA:SettingsUpdateFontStyle() + AutoQuestPopupTracker_RemovePopUp( questID ) end ) end frame:ClearAllPoints() diff --git a/Modules/Toon.lua b/Modules/Toon.lua index e137665..bfc8d19 100644 --- a/Modules/Toon.lua +++ b/Modules/Toon.lua @@ -60,9 +60,11 @@ EMA.settings = { warnManaDropsMessage = L["LOW_MANA"], warnWhenDurabilityDropsBelowX = true, warnWhenDurabilityDropsAmount = "60", + warnWhenBagsAlmostFullAmount = 0, warnDurabilityDropsMessage = L["DURABILITY_LOW_MSG"], warnBagsFull = true, - bagsFullMessage = L["BAGS_FULL"], + bagsFullMessage = L["BAGS_FULL"], + bagsAlmostFullMessage = L["BAGS_ALMOST_FULL"], warnCC = true, CcMessage = L["CCED"], warningArea = EMAApi.DefaultWarningArea(), @@ -559,6 +561,14 @@ local function SettingsCreateWarnings( top ) L["BAGS_FULL_HELP"] ) movingTop = movingTop - checkBoxHeight + EMA.settingsControlWarnings.editBoxWarnWhenBagsAlmostFull = EMAHelperSettings:CreateEditBox( EMA.settingsControlWarnings, + headingWidth, + left, + movingTop, + L["BAG_SLOTS_HELP"] + ) + EMA.settingsControlWarnings.editBoxWarnWhenBagsAlmostFull:SetCallback( "OnEnterPressed", EMA.EditBoxChangedWarnWhenBagsAlmostFull ) + movingTop = movingTop - editBoxHeight EMA.settingsControlWarnings.editBoxBagsFullMessage = EMAHelperSettings:CreateEditBox( EMA.settingsControlWarnings, headingWidth, left, @@ -647,6 +657,7 @@ function EMA:SettingsRefresh() EMA.settingsControlWarnings.checkBoxWarnWhenDurabilityDropsBelowX:SetValue( EMA.db.warnWhenDurabilityDropsBelowX ) EMA.settingsControlWarnings.editBoxWarnWhenDurabilityDropsAmount:SetText( EMA.db.warnWhenDurabilityDropsAmount ) EMA.settingsControlWarnings.editBoxWarnDurabilityDropsMessage:SetText( EMA.db.warnDurabilityDropsMessage ) + EMA.settingsControlWarnings.editBoxWarnWhenBagsAlmostFull:SetText( EMA.db.warnWhenBagsAlmostFullAmount ) EMA.settingsControlWarnings.checkBoxWarnBagsFull:SetValue( EMA.db.warnBagsFull ) EMA.settingsControlWarnings.editBoxBagsFullMessage:SetText( EMA.db.bagsFullMessage ) EMA.settingsControlWarnings.checkBoxWarnCC:SetValue( EMA.db.warnCC ) @@ -677,8 +688,9 @@ function EMA:SettingsRefresh() EMA.settingsControlWarnings.editBoxWarnWhenManaDropsAmount:SetDisabled( not EMA.db.warnWhenManaDropsBelowX ) EMA.settingsControlWarnings.editBoxWarnManaDropsMessage:SetDisabled( not EMA.db.warnWhenManaDropsBelowX ) EMA.settingsControlWarnings.editBoxWarnWhenDurabilityDropsAmount:SetDisabled( not EMA.db.warnWhenDurabilityDropsBelowX ) - EMA.settingsControlWarnings.editBoxWarnDurabilityDropsMessage:SetDisabled( not EMA.db.warnWhenDurabilityDropsBelowX ) - EMA.settingsControlMerchant.checkBoxAutoRepairUseGuildFunds:SetDisabled( not EMA.db.autoRepair ) + EMA.settingsControlWarnings.editBoxWarnDurabilityDropsMessage:SetDisabled( not EMA.db.warnWhenDurabilityDropsBelowX ) + EMA.settingsControlWarnings.editBoxWarnWhenBagsAlmostFull:SetDisabled( not EMA.db.warnWhenBagsAlmostFullAmount ) + EMA.settingsControlMerchant.checkBoxAutoRepairUseGuildFunds:SetDisabled( not EMA.db.autoRepair ) EMA.settingsControlWarnings.editBoxBagsFullMessage:SetDisabled( not EMA.db.warnBagsFull ) EMA.settingsControlWarnings.editBoxCCMessage:SetDisabled( not EMA.db.warnCC ) EMA.settingsControlToon.checkBoxAutoAcceptResurrectRequestOnlyFromTeam:SetDisabled( not EMA.db.autoAcceptResurrectRequest ) @@ -877,6 +889,13 @@ function EMA:SettingsSetMerchantArea( event, value ) EMA:SettingsRefresh() end +function EMA:EditBoxChangedWarnWhenBagsAlmostFull( event, text ) + local amount = tonumber( text ) + amount = EMAUtilities:FixValueToRange( amount, 0, 100 ) + EMA.db.warnWhenBagsAlmostFullAmount = amount + EMA:SettingsRefresh() +end + ------------------------------------------------------------------------------------------------------------- -- Addon initialization, enabling and disabling. ------------------------------------------------------------------------------------------------------------- @@ -963,6 +982,7 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.warnDurabilityDropsMessage = settings.warnDurabilityDropsMessage EMA.db.warnBagsFull = settings.warnBagsFull EMA.db.bagsFullMessage = settings.bagsFullMessage + EMA.db.bagsAlmostFullMessage = settings.bagsAlmostFullMessage EMA.db.warnCC = settings.warnCC EMA.db.CcMessage = settings.CcMessage EMA.db.autoAcceptResurrectRequest = settings.autoAcceptResurrectRequest @@ -1570,13 +1590,24 @@ function EMA:BAGS_FULL( event, arg1, message, ... ) end function EMA:BAG_UPDATE_DELAYED(event, ... ) - if EMA.db.warnBagsFull == true then - local numberFreeSlots, numberTotalSlots = LibBagUtils:CountSlots( "BAGS", 0 ) - if numberFreeSlots > 0 then - EMA.previousFreeBagSlotsCount = false - EMA:CancelAllTimers() - end - end + if EMA.db.warnBagsFull == false then + return + end + + if EMA.previousFreeBagSlotsCount == true then + return + end + + local numberFreeSlots, numberTotalSlots = LibBagUtils:CountSlots( "BAGS", 0 ) + if numberFreeSlots > 0 and numberFreeSlots < EMA.db.warnWhenBagsAlmostFullAmount then + local warnMsg = EMA.db.bagsAlmostFullMessage .. ' (' .. tostring(numberFreeSlots) .. ')' + EMA:EMASendMessageToTeam( EMA.db.warningArea, warnMsg, false ) + EMA.previousFreeBagSlotsCount = true + EMA:ScheduleTimer("ResetBagFull", 15, nil ) + elseif numberFreeSlots > 0 then + EMA.previousFreeBagSlotsCount = false + EMA:CancelAllTimers() + end end function EMA:ResetBagFull() diff --git a/Modules/Trade.lua b/Modules/Trade.lua index 5f12095..be4db5c 100644 --- a/Modules/Trade.lua +++ b/Modules/Trade.lua @@ -53,9 +53,11 @@ EMA.settings = { blackListItem = false, tradeBoEItems = false, tradeCRItems = false, + tradeRecipeFItems = false, autoSellOtherItemTag = EMAApi.MasterGroup(), autoBoEItemTag = EMAApi.MasterGroup(), autoCRItemTag = EMAApi.MasterGroup(), + autoRecipeFItemTag = EMAApi.MasterGroup(), autoTradeItemsList = {}, adjustMoneyWithMasterOnTrade = false, goldAmountToKeepOnToonTrade = 200, @@ -344,6 +346,26 @@ function EMA:SettingsCreateTrade( top ) ) EMA.settingsControl.tradeTradeCRItemsTag:SetList( EMAApi.GroupList() ) EMA.settingsControl.tradeTradeCRItemsTag:SetCallback( "OnValueChanged", EMA.TradeGroupListItemsCRDropDown ) + -- NEW AKANDESH THING + movingTop = movingTop - editBoxHeight - 3 + EMA.settingsControl.checkBoxTradeRecipeFItems = EMAHelperSettings:CreateCheckBox( + EMA.settingsControl, + halfWidth, + left, + movingTop + movingTopEdit, + L["TRADE_RECIPE_FORMULA"], + EMA.SettingsToggleTradeRecipeFItems, + L["TRADE_RECIPE_FORMULA_HELP"] + ) + EMA.settingsControl.tradeTradeRecipeFItemsTag = EMAHelperSettings:CreateDropdown( + EMA.settingsControl, + dropBoxWidth, + left3, + movingTop, + L["GROUP_LIST"] + ) + EMA.settingsControl.tradeTradeRecipeFItemsTag:SetList( EMAApi.GroupList() ) + EMA.settingsControl.tradeTradeRecipeFItemsTag:SetCallback( "OnValueChanged", EMA.TradeGroupListItemsRecipeFDropDown ) -- Trade Gold! Keep movingTop = movingTop - editBoxHeight EMA.settingsControl.checkBoxAdjustMoneyWithMasterOnTrade = EMAHelperSettings:CreateCheckBox( @@ -472,6 +494,7 @@ end function EMA:OnGroupAreasChanged( message ) EMA.settingsControl.tradeItemsEditBoxToonTag:SetList( EMAApi.GroupList() ) EMA.settingsControl.tradeTradeCRItemsTag:SetList( EMAApi.GroupList() ) + EMA.settingsControl.tradeTradeRecipeFItemsTag:SetList( EMAApi.GroupList() ) EMA.settingsControl.tradeTradeBoEItemsTag:SetList( EMAApi.GroupList() ) end @@ -513,6 +536,11 @@ function EMA:SettingsToggleTradeCRItems(event, checked ) EMA:SettingsRefresh() end +function EMA:SettingsToggleTradeRecipeFItems(event, checked ) + EMA.db.tradeRecipeFItems = checked + EMA:SettingsRefresh() +end + function EMA:TradeGroupListItemsCRDropDown(event, value ) if value == " " or value == nil then return @@ -526,6 +554,19 @@ function EMA:TradeGroupListItemsCRDropDown(event, value ) EMA:SettingsRefresh() end +function EMA:TradeGroupListItemsRecipeFDropDown(event, value ) + if value == " " or value == nil then + return + end + for index, groupName in ipairs( EMAApi.GroupList() ) do + if index == value then + EMA.db.autoRecipeFItemTag = groupName + break + end + end + EMA:SettingsRefresh() +end + function EMA:SettingsToggleAdjustMoneyOnToonViaGuildBank( event, checked ) EMA.db.adjustMoneyWithGuildBank = checked @@ -570,6 +611,7 @@ function EMA:EMAOnSettingsReceived( characterName, settings ) EMA.db.blackListItem = settings.blackListItem EMA.db.tradeBoEItems = settings.tradeBoEItems EMA.db.tradeCRItems = settings.tradeCRItems + EMA.db.tradeRecipeFItems = settings.tradeRecipeFItems EMA.db.autoBoEItemTag = settings.autoBoEItemTag EMA.db.autoCRItemTag = settings.autoCRItemTag EMA.db.autoTradeItemsList = EMAUtilities:CopyTable( settings.autoTradeItemsList ) @@ -600,10 +642,12 @@ function EMA:SettingsRefresh() EMA.settingsControl.listCheckBoxBoxOtherBlackListItem:SetValue( EMA.db.blackListItem ) EMA.settingsControl.checkBoxTradeBoEItems:SetValue( EMA.db.tradeBoEItems) EMA.settingsControl.checkBoxTradeCRItems:SetValue( EMA.db.tradeCRItems) + EMA.settingsControl.checkBoxTradeRecipeFItems:SetValue( EMA.db.tradeRecipeFItems) EMA.settingsControl.dropdownMessageArea:SetValue( EMA.db.messageArea ) EMA.settingsControl.tradeItemsEditBoxToonTag:SetText( EMA.db.autoSellOtherItemTag ) EMA.settingsControl.tradeTradeBoEItemsTag:SetText( EMA.db.autoBoEItemTag ) EMA.settingsControl.tradeTradeCRItemsTag:SetText( EMA.db.autoCRItemTag ) + EMA.settingsControl.tradeTradeRecipeFItemsTag:SetText( EMA.db.autoRecipeFItemTag ) EMA.settingsControl.checkBoxAdjustMoneyWithMasterOnTrade:SetValue( EMA.db.adjustMoneyWithMasterOnTrade ) EMA.settingsControl.editBoxGoldAmountToLeaveOnToonTrade:SetText( tostring( EMA.db.goldAmountToKeepOnToonTrade ) ) EMA.settingsControl.editBoxGoldAmountToLeaveOnToonTrade:SetDisabled( not EMA.db.adjustMoneyWithMasterOnTrade ) @@ -616,6 +660,8 @@ function EMA:SettingsRefresh() EMA.settingsControl.tradeTradeBoEItemsTag:SetDisabled( not EMA.db.showEMATradeWindow ) EMA.settingsControl.checkBoxTradeCRItems:SetDisabled( not EMA.db.showEMATradeWindow ) EMA.settingsControl.tradeTradeCRItemsTag:SetDisabled( not EMA.db.showEMATradeWindow ) + EMA.settingsControl.checkBoxTradeRecipeFItems:SetDisabled( not EMA.db.showEMATradeWindow ) + EMA.settingsControl.tradeTradeRecipeFItemsTag:SetDisabled( not EMA.db.showEMATradeWindow ) EMA:SettingsScrollRefresh() end @@ -750,13 +796,13 @@ function EMA:TradeAllItems() if ( bagItemLink ) then local itemLink = item:GetItemLink() local location = item:GetItemLocation() - local itemType = C_Item.GetItemInventoryType( location ) + local inventoryType = C_Item.GetItemInventoryType( location ) local isBop = C_Item.IsBound( location ) local itemRarity = C_Item.GetItemQuality( location ) - local _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,isCraftingReagent = GetItemInfo( bagItemLink ) + local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemIcon, itemSellPrice, itemClassID, itemSubClassID, bindType, expacID, itemSetID, isCraftingReagent = GetItemInfo(bagItemLink) local canTrade = false if EMA.db.tradeBoEItems == true then - if itemType ~= 0 then + if inventoryType ~= 0 then if EMAApi.IsCharacterInGroup( characterName, EMA.db.autoBoEItemTag ) == true then if isBop == false then if itemRarity == 2 or itemRarity == 3 or itemRarity == 4 then @@ -775,6 +821,15 @@ function EMA:TradeAllItems() end end end + if EMA.db.tradeRecipeFItems == true then + if itemClassID == 9 then -- LE_ITEM_CLASS_RECIPE + if EMAApi.IsCharacterInGroup( characterName, EMA.db.autoRecipeFItemTag ) == true then + if isBop == false then + canTrade = true + end + end + end + end if EMA.db.globalTradeList == true then itemTable = EMA.db.global.autoTradeItemsListGlobal else @@ -808,4 +863,4 @@ end function EMA:TRADE_CLOSED() -end \ No newline at end of file +end -- 1.7.9.5