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<b end)
- table.concat(EMA.simpleCurrList, ", ")
+ --table.sort(EMA.simpleCurrList, function(a,b) return a<b end)
+ --table.concat(EMA.simpleCurrList, ", ")
return EMA.simpleCurrList
end
@@ -930,6 +1141,16 @@ function EMA:CreateEMAToonCurrencyListFrame()
frameGoldText:SetJustifyH( "CENTER" )
frame.GoldText = frameGoldText
left = left + spacing
+ -- Set the BagSpace font string.
+ local frameBagSpace = EMA.globalCurrencyFramePrefix.."TitleBagSpace"
+ local frameBagSpaceText = parentFrame:CreateFontString( frameBagSpace.."Text", "OVERLAY", "GameFontNormal" )
+ frameBagSpaceText:SetText( L["BAG_SPACE"] )
+ frameBagSpaceText:SetTextColor( r, g, b, a )
+ frameBagSpaceText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top )
+ frameBagSpaceText:SetWidth( width )
+ frameBagSpaceText:SetJustifyH( "CENTER" )
+ frame.BagSpaceText = frameBagSpaceText
+ left = left + spacing
-- Set the TypeOne font string.
local frameTypeOne = EMA.globalCurrencyFramePrefix.."TitleTypeOne"
local frameTypeOneText = parentFrame:CreateFontString( frameTypeOne.."Text", "OVERLAY", "GameFontNormal" )
@@ -1056,7 +1277,6 @@ function EMA:CreateEMAToonCurrencyListFrame()
updateButton:SetText( L["UPDATE"] )
frame.updateButton = updateButton
-
EMA:SettingsUpdateBorderStyle()
EMA:CurrencyUpdateWindowLock()
EMA:SettingsUpdateFontStyle()
@@ -1073,10 +1293,19 @@ local function GetIcon(iD)
return iconTextureString
end
end
-
function EMA:UpdateHendingText()
local parentFrame = EMAToonCurrencyListFrame
+ -- Gold
+ local iconTextureString = strconcat(" |T".."133785"..":20|t")
+ if iconTextureString ~= nil then
+ parentFrame.GoldText:SetText( iconTextureString )
+ end
+ -- BagSpace
+ local iconTextureString = strconcat(" |T".."133633"..":20|t")
+ if iconTextureString ~= nil then
+ parentFrame.BagSpaceText:SetText( iconTextureString )
+ end
-- Type One
local iconTextureString = GetIcon( EMA.db.CcurrTypeOne )
if iconTextureString ~= nil then
@@ -1117,7 +1346,6 @@ function EMA:CurrencyUpdateWindowLock()
end
end
-
function EMA:SettingsUpdateBorderStyle()
local borderStyle = EMA.SharedMedia:Fetch( "border", EMA.db.currencyBorderStyle )
local backgroundStyle = EMA.SharedMedia:Fetch( "background", EMA.db.currencyBackgroundStyle )
@@ -1130,7 +1358,6 @@ function EMA:SettingsUpdateBorderStyle()
} )
frame:SetBackdropColor( EMA.db.currencyFrameBackgroundColourR, EMA.db.currencyFrameBackgroundColourG, EMA.db.currencyFrameBackgroundColourB, EMA.db.currencyFrameBackgroundColourA )
frame:SetBackdropBorderColor( EMA.db.currencyFrameBorderColourR, EMA.db.currencyFrameBorderColourG, EMA.db.currencyFrameBorderColourB, EMA.db.currencyFrameBorderColourA )
- --frame:ClearAllPoints()
frame:SetAlpha( EMA.db.currencyFrameAlpha )
frame:ClearAllPoints()
frame:SetPoint( EMA.db.currencyFramePoint, UIParent, EMA.db.currencyFrameRelativePoint, EMA.db.currencyFrameXOffset, EMA.db.currencyFrameYOffset )
@@ -1143,6 +1370,7 @@ function EMA:SettingsUpdateFontStyle()
frame.titleName:SetFont( textFont , textSize , "OUTLINE")
frame.characterNameText:SetFont( textFont , textSize , "OUTLINE")
frame.GoldText:SetFont( textFont , textSize , "OUTLINE")
+ frame.BagSpaceText:SetFont( textFont , textSize , "OUTLINE")
frame.TotalGoldGuildTitleText:SetFont( textFont , textSize , "OUTLINE")
frame.TotalGoldGuildText:SetFont( textFont , textSize , "OUTLINE")
frame.TotalGoldText:SetFont( textFont , textSize , "OUTLINE")
@@ -1152,6 +1380,7 @@ function EMA:SettingsUpdateFontStyle()
--currencyFrameCharacterInfo.characterNameText:SetFont( textFont , textSize , "OUTLINE")
currencyFrameCharacterInfo.characterNameText:SetFont( textFont , textSize , "OUTLINE")
currencyFrameCharacterInfo.GoldText:SetFont( textFont , textSize , "OUTLINE")
+ currencyFrameCharacterInfo.BagSpaceText:SetFont( textFont , textSize , "OUTLINE")
currencyFrameCharacterInfo.TypeOneText:SetFont( textFont , textSize , "OUTLINE")
currencyFrameCharacterInfo.TypeTwoText:SetFont( textFont , textSize , "OUTLINE")
currencyFrameCharacterInfo.TypeThreeText:SetFont( textFont , textSize , "OUTLINE")
@@ -1161,7 +1390,6 @@ function EMA:SettingsUpdateFontStyle()
end
end
-
function EMA:CurrencyListSetHeight()
local additionalLines = 0
local addHeight = 0
@@ -1181,6 +1409,7 @@ function EMA:CurrencyListSetColumnWidth()
local nameWidth = EMA.db.currencyNameWidth
local pointsWidth = EMA.db.currencyPointsWidth
local goldWidth = EMA.db.currencyGoldWidth
+ local otherWidth = EMA.db.currencyOtherWidth
local spacingWidth = EMA.db.currencySpacingWidth
local frameHorizontalSpacing = 10
local numberOfPointsColumns = 0
@@ -1188,6 +1417,7 @@ function EMA:CurrencyListSetColumnWidth()
local headingRowTopPoint = -30
local left = frameHorizontalSpacing
local haveGold = 0
+ local haveOther = 0
-- Heading rows.
parentFrame.characterNameText:SetWidth( nameWidth )
parentFrame.characterNameText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint )
@@ -1202,6 +1432,16 @@ function EMA:CurrencyListSetColumnWidth()
parentFrame.GoldText:Hide()
haveGold = 0
end
+ if EMA.db.currBagSpace == true then
+ parentFrame.BagSpaceText:SetWidth( otherWidth )
+ parentFrame.BagSpaceText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint )
+ left = left + otherWidth + (spacingWidth * 3)
+ parentFrame.BagSpaceText:Show()
+ haveOther = 1
+ else
+ parentFrame.BagSpaceText:Hide()
+ haveOther = 0
+ end
if EMA.db.CcurrTypeOneName == "" then
parentFrame.TypeOneText:Hide()
else
@@ -1272,6 +1512,14 @@ function EMA:CurrencyListSetColumnWidth()
else
currencyFrameCharacterInfo.GoldText:Hide()
end
+ if EMA.db.currBagSpace == true then
+ currencyFrameCharacterInfo.BagSpaceText:SetWidth( otherWidth )
+ currencyFrameCharacterInfo.BagSpaceText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint )
+ left = left + otherWidth + (spacingWidth * 3)
+ currencyFrameCharacterInfo.BagSpaceText:Show()
+ else
+ currencyFrameCharacterInfo.BagSpaceText:Hide()
+ end
if EMA.db.CcurrTypeOneName == "" then
currencyFrameCharacterInfo.TypeOneText:Hide()
else
@@ -1324,7 +1572,7 @@ function EMA:CurrencyListSetColumnWidth()
end
end
-- Parent frame width and title.
- local finalParentWidth = frameHorizontalSpacing + nameWidth + spacingWidth + (haveGold * (goldWidth + (spacingWidth * 3))) + (numberOfPointsColumns * (pointsWidth + spacingWidth)) + frameHorizontalSpacing
+ local finalParentWidth = frameHorizontalSpacing + nameWidth + spacingWidth + (haveGold * (goldWidth + (spacingWidth * 3))) + (haveOther * (otherWidth + (spacingWidth * 3))) + (numberOfPointsColumns * (pointsWidth + spacingWidth)) + frameHorizontalSpacing
if finalParentWidth < 95 then
finalParentWidth = 95
end
@@ -1387,9 +1635,6 @@ function EMA:CurrencyListSetColumnWidth()
end
end
-
-
-
function EMA:CreateEMACurrencyFrameInfo( characterName, parentFrame )
--EMA.Print("makelist", characterName)
--if EMAPrivate.Team.GetCharacterOnlineStatus (characterName) == true then
@@ -1435,6 +1680,16 @@ function EMA:CreateEMACurrencyFrameInfo( characterName, parentFrame )
frameGoldText:SetJustifyH( "RIGHT" )
currencyFrameCharacterInfo.GoldText = frameGoldText
left = left + spacing
+ -- Set the BagSpace font string.
+ local frameBagSpace = EMA.globalCurrencyFramePrefix.."BagSpace"
+ local frameBagSpaceText = parentFrame:CreateFontString( frameBagSpace.."Text", "OVERLAY", "GameFontNormal" )
+ frameBagSpaceText:SetText( "0" )
+ frameBagSpaceText:SetTextColor( 1.00, 1.00, 1.00, 1.00 )
+ frameBagSpaceText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top )
+ frameBagSpaceText:SetWidth( width )
+ frameBagSpaceText:SetJustifyH( "RIGHT" )
+ currencyFrameCharacterInfo.BagSpaceText = frameBagSpaceText
+ left = left + spacing
-- Set the TypeOne font string.
local frameTypeOne = EMA.globalCurrencyFramePrefix.."TypeOne"
local frameTypeOneText = parentFrame:CreateFontString( frameTypeOne.."Text", "OVERLAY", "GameFontNormal" )
@@ -1495,10 +1750,19 @@ function EMA:CreateEMACurrencyFrameInfo( characterName, parentFrame )
frameTypeSixText:SetJustifyH( "CENTER" )
currencyFrameCharacterInfo.TypeSixText = frameTypeSixText
left = left + spacing
-
EMA:SettingsUpdateFontStyle()
end
+function EMA:ShowInformationPanel()
+ if EMAToonCurrencyListWindowFrame:IsShown() then
+ EMAToonCurrencyListFrame:Hide()
+ else
+ --EMA:Print("startup")
+ EMA:EMAToonRequestCurrency()
+ EMAToonCurrencyListFrame:Show()
+ end
+end
+
function EMA:EMAToonHideCurrency()
EMAToonCurrencyListFrame:Hide()
end
@@ -1524,6 +1788,7 @@ function EMA:EMAToonRequestCurrency()
--EMA.Print("offlineRemove", characterName )
currencyFrameCharacterInfo.characterNameText:Hide()
currencyFrameCharacterInfo.GoldText:Hide()
+ currencyFrameCharacterInfo.BagSpaceText:Hide()
currencyFrameCharacterInfo.TypeOneText:Hide()
currencyFrameCharacterInfo.TypeTwoText:Hide()
currencyFrameCharacterInfo.TypeThreeText:Hide()
@@ -1533,6 +1798,7 @@ function EMA:EMAToonRequestCurrency()
else
currencyFrameCharacterInfo.characterNameText:Show()
currencyFrameCharacterInfo.GoldText:SetTextColor( r, g, b, a )
+ currencyFrameCharacterInfo.BagSpaceText:SetTextColor( r, g, b, a )
currencyFrameCharacterInfo.characterNameText:SetTextColor( r, g, b, a )
currencyFrameCharacterInfo.TypeOneText:SetTextColor( r, g, b, a )
currencyFrameCharacterInfo.TypeTwoText:SetTextColor( r, g, b, a )
@@ -1557,7 +1823,12 @@ function EMA:DoSendCurrency( characterName, dummyValue )
--EMA:Print("Test2")
if EMAApi.GetCharacterOnlineStatus ( characterName ) == true then
table.wipe( EMA.currentCurrencyValues )
+ -- Gold
EMA.currentCurrencyValues.currGold = GetMoney()
+ -- BagSpace Maths
+ local numFreeSlots, numTotalSlots = LibBagUtils:CountSlots("BAGS", 0)
+ EMA.currentCurrencyValues.bagSpace = numFreeSlots
+ EMA.currentCurrencyValues.bagSpaceMax = numTotalSlots
--CcurrTypeOne
local info = C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeOne )
if info ~= nil then
@@ -1594,20 +1865,6 @@ function EMA:DoSendCurrency( characterName, dummyValue )
EMA.currentCurrencyValues.currTypeSix = infoSix.quantity
EMA.currentCurrencyValues.currMaxTypeSix = infoSix.maxQuantity
end
-
- --[[
- EMA.currentCurrencyValues.currTypeTwo = select( 2, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeTwo ) )
- EMA.currentCurrencyValues.currTypeThree = select( 2, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeThree ) )
- EMA.currentCurrencyValues.currTypeFour = select( 2, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeFour ) )
- EMA.currentCurrencyValues.currTypeFive = select( 2, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeFive ) )
- EMA.currentCurrencyValues.currTypeSix = select( 2, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeSix ) )
- -- Max CurrencyValues
- EMA.currentCurrencyValues.currMaxTypeTwo = select( 6, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeTwo ) )
- EMA.currentCurrencyValues.currMaxTypeThree = select( 6, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeThree ) )
- EMA.currentCurrencyValues.currMaxTypeFour = select( 6, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeFour ) )
- EMA.currentCurrencyValues.currMaxTypeFive = select( 6, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeFive ) )
- EMA.currentCurrencyValues.currMaxTypeSix = select( 6, C_CurrencyInfo.GetCurrencyInfo( EMA.db.CcurrTypeSix ) )
- ]]
-- SEND DATA
--EMA:Print("testsendData", info.quantity, info.maxQuantity)
EMA:EMASendCommandToToon( characterName, EMA.COMMAND_HERE_IS_CURRENCY, EMA.currentCurrencyValues )
@@ -1633,10 +1890,18 @@ function EMA:DoShowToonsCurrency( characterName, currencyValues )
local b = 1.0
local a = 1.0
local v = 0
-
+ --Gold
currencyFrameCharacterInfo.GoldText:SetTextColor( r, g, b, a )
currencyFrameCharacterInfo.characterNameText:SetTextColor( r, g, b, a )
currencyFrameCharacterInfo.GoldText:SetTextColor( r, g, b, a )
+ -- BagSpace
+ if currencyValues.bagSpace == 0 then
+ --EMA:Print("SetRed")
+ currencyFrameCharacterInfo.BagSpaceText:SetTextColor( r, v, v, a )
+ else
+ --EMA:Print("SetWhite")
+ currencyFrameCharacterInfo.BagSpaceText:SetTextColor( r, g, b, a )
+ end
if currencyValues.currTypeOne ~= nil then
if currencyValues.currTypeOne == currencyValues.currMaxTypeOne and currencyValues.currTypeOne > 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