--[[ Jamba - Jafula's Awesome Multi-Boxer Assistant Copyright 2008 - 2016 Michael "Jafula" Miller License: The MIT License ]]-- -- Create the addon using AceAddon-3.0 and embed some libraries. local AJM = LibStub( "AceAddon-3.0" ):NewAddon( "JambaToon", "JambaModule-1.0", "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0" ) -- Get the Jamba Utilities Library. local JambaUtilities = LibStub:GetLibrary( "JambaUtilities-1.0" ) local JambaHelperSettings = LibStub:GetLibrary( "JambaHelperSettings-1.0" ) local LibBagUtils = LibStub:GetLibrary( "LibBagUtils-1.0" ) AJM.SharedMedia = LibStub( "LibSharedMedia-3.0" ) -- Constants and Locale for this module. AJM.moduleName = "Jamba-Toon" AJM.settingsDatabaseName = "JambaToonProfileDB" AJM.chatCommand = "jamba-toon" local L = LibStub( "AceLocale-3.0" ):GetLocale( AJM.moduleName ) AJM.parentDisplayName = L["Toon"] AJM.parentDisplayNameToon = L["Toon"] AJM.parentDisplayNameMerchant = L["Merchant"] AJM.parentDisplayNameCurrency = L["Toon"] AJM.moduleDisplayName = L["Toon: Warnings"] -- Currency Identifiers. AJM.CDalaranJewelcraftingToken = 61 AJM.CValor = 1191 AJM.CChampionsSeal = 241 AJM.CIllustriousJewelcraftersToken = 361 AJM.CConquestPoints = 390 AJM.CTolBaradCommendation = 391 AJM.CHonorPoints = 392 AJM.CIronpawToken = 402 AJM.CLesserCharmOfGoodFortune = 738 AJM.CElderCharmOfGoodFortune = 697 AJM.CMoguRuneOfFate = 752 AJM.CWarforgedSeal = 776 AJM.CBloodyCoin = 789 AJM.CTimelessCoin = 777 --ebony New WoD Currency AJM.CGarrisonResources = 824 AJM.CTemperedFate = 994 AJM.CApexisCrystal = 823 AJM.CDarkmoon = 515 AJM.C = 824 AJM.COil = 1101 AJM.CInevitableFate = 1129 AJM.CTimeWalker = 1166 AJM.globalCurrencyFramePrefix = "JambaToonCurrencyListFrame" -- Settings - the values to store and their defaults for the settings database. AJM.settings = { profile = { warnHitFirstTimeCombat = false, hitFirstTimeMessage = L["I'm Attacked!"], warnTargetNotMasterEnterCombat = false, warnTargetNotMasterMessage = L["Not Targeting!"], warnFocusNotMasterEnterCombat = false, warnFocusNotMasterMessage = L["Not Focus!"], warnWhenHealthDropsBelowX = true, warnWhenHealthDropsAmount = "60", warnHealthDropsMessage = L["Low Health!"], warnWhenManaDropsBelowX = true, warnWhenManaDropsAmount = "30", warnManaDropsMessage = L["Low Mana!"], warnBagsFull = true, bagsFullMessage = L["Bags Full!"], warnCC = true, CcMessage = L["I Am"], warningArea = JambaApi.DefaultWarningArea(), autoAcceptResurrectRequest = true, autoDenyDuels = true, autoAcceptSummonRequest = false, autoDenyGuildInvites = false, requestArea = JambaApi.DefaultMessageArea(), autoRepair = true, autoRepairUseGuildFunds = true, merchantArea = JambaApi.DefaultMessageArea(), warnAfk = true, afkMessage = L["I am inactive!"], currGold = true, currGoldInGuildBank = false, currHonorPoints = true, currConquestPoints = true, --as there not used much now changed to false ebony currTolBaradCommendation = false, currChampionsSeal = false, currIllustriousJewelcraftersToken = false, currDalaranJewelcraftingToken = false, currIronpawToken = false, currValor = false, currLesserCharmOfGoodFortune = false, currElderCharmOfGoodFortune = false, currMoguRuneOfFate = false, currWarforgedSeal = false, currBloodyCoin = false, currTimelessCoin = false, --ebony New WoD Currency currGarrisonResources = true, currTemperedFate = false, currApexisCrystal = false, currDarkmoon = false, currInevitableFate = false, currOil = false, currTimeWalker = false, currencyFrameAlpha = 1.0, currencyFramePoint = "CENTER", currencyFrameRelativePoint = "CENTER", currencyFrameXOffset = 0, currencyFrameYOffset = 0, currencyFrameBackgroundColourR = 1.0, currencyFrameBackgroundColourG = 1.0, currencyFrameBackgroundColourB = 1.0, currencyFrameBackgroundColourA = 1.0, currencyFrameBorderColourR = 1.0, currencyFrameBorderColourG = 1.0, currencyFrameBorderColourB = 1.0, currencyFrameBorderColourA = 1.0, currencyBorderStyle = L["Blizzard Tooltip"], currencyBackgroundStyle = L["Blizzard Dialog Background"], currencyScale = 1, currencyNameWidth = 50, currencyPointsWidth = 40, currencyGoldWidth = 90, currencySpacingWidth = 3, currencyLockWindow = false, currOpenStartUpMaster = false, }, } -- Configuration. function AJM:GetConfiguration() local configuration = { name = AJM.moduleDisplayName, handler = AJM, type = 'group', args = { currency = { type = "input", name = L["Show Currency"], desc = L["Show the current toon the currency values for all members in the team."], usage = "/jamba-toon currency", get = false, set = "JambaToonRequestCurrency", }, currencyhide = { type = "input", name = L["Hide Currency"], desc = L["Hide the currency values for all members in the team."], usage = "/jamba-toon currencyhide", get = false, set = "JambaToonHideCurrency", }, push = { type = "input", name = L["Push Settings"], desc = L["Push the toon settings to all characters in the team."], usage = "/jamba-toon push", get = false, set = "JambaSendSettings", }, }, } return configuration end local function DebugMessage( ... ) --AJM:Print( ... ) end ------------------------------------------------------------------------------------------------------------- -- Command this module sends. ------------------------------------------------------------------------------------------------------------- AJM.COMMAND_REQUEST_CURRENCY = "SendCurrency" AJM.COMMAND_HERE_IS_CURRENCY = "HereIsCurrency" ------------------------------------------------------------------------------------------------------------- -- Messages module sends. ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- -- Variables used by module. ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- -- Settings Dialogs. ------------------------------------------------------------------------------------------------------------- local function SettingsCreateMerchant( top ) -- Get positions. local checkBoxHeight = JambaHelperSettings:GetCheckBoxHeight() local editBoxHeight = JambaHelperSettings:GetEditBoxHeight() local dropdownHeight = JambaHelperSettings:GetDropdownHeight() local labelHeight = JambaHelperSettings:GetLabelHeight() local left = JambaHelperSettings:LeftOfSettings() local headingHeight = JambaHelperSettings:HeadingHeight() local headingWidth = JambaHelperSettings:HeadingWidth( false ) local horizontalSpacing = JambaHelperSettings:GetHorizontalSpacing() local verticalSpacing = JambaHelperSettings:GetVerticalSpacing() local halfWidth = (headingWidth - horizontalSpacing) / 2 local thirdWidth = (headingWidth - (horizontalSpacing * 2)) / 3 local column2left = left + halfWidth local left2 = left + thirdWidth local left3 = left + (thirdWidth * 2) local movingTop = top JambaHelperSettings:CreateHeading( AJM.settingsControlMerchant, L["Merchant"], movingTop, false ) movingTop = movingTop - headingHeight AJM.settingsControlMerchant.checkBoxAutoRepair = JambaHelperSettings:CreateCheckBox( AJM.settingsControlMerchant, headingWidth, left, movingTop, L["Auto Repair"], AJM.SettingsToggleAutoRepair ) movingTop = movingTop - checkBoxHeight AJM.settingsControlMerchant.checkBoxAutoRepairUseGuildFunds = JambaHelperSettings:CreateCheckBox( AJM.settingsControlMerchant, headingWidth, left, movingTop, L["Auto Repair With Guild Funds"], AJM.SettingsToggleAutoRepairUseGuildFunds ) movingTop = movingTop - checkBoxHeight AJM.settingsControlMerchant.dropdownMerchantArea = JambaHelperSettings:CreateDropdown( AJM.settingsControlMerchant, headingWidth, left, movingTop, L["Send Request Message Area"] ) AJM.settingsControlMerchant.dropdownMerchantArea:SetList( JambaApi.MessageAreaList() ) AJM.settingsControlMerchant.dropdownMerchantArea:SetCallback( "OnValueChanged", AJM.SettingsSetMerchantArea ) movingTop = movingTop - dropdownHeight - verticalSpacing return movingTop end function AJM:OnMessageAreasChanged( message ) AJM.settingsControlMerchant.dropdownMerchantArea:SetList( JambaApi.MessageAreaList() ) AJM.settingsControlRequests.dropdownRequestArea:SetList( JambaApi.MessageAreaList() ) AJM.settingsControlWarnings.dropdownWarningArea:SetList( JambaApi.MessageAreaList() ) end function AJM:OnCharactersChanged() AJM:SettingsRefresh() end local function SettingsCreateRequests( top ) -- Get positions. local checkBoxHeight = JambaHelperSettings:GetCheckBoxHeight() local editBoxHeight = JambaHelperSettings:GetEditBoxHeight() local dropdownHeight = JambaHelperSettings:GetDropdownHeight() local labelHeight = JambaHelperSettings:GetLabelHeight() local left = JambaHelperSettings:LeftOfSettings() local headingHeight = JambaHelperSettings:HeadingHeight() local headingWidth = JambaHelperSettings:HeadingWidth( false ) local horizontalSpacing = JambaHelperSettings:GetHorizontalSpacing() local verticalSpacing = JambaHelperSettings:GetVerticalSpacing() local halfWidth = (headingWidth - horizontalSpacing) / 2 local thirdWidth = (headingWidth - (horizontalSpacing * 2)) / 3 local column2left = left + halfWidth local left2 = left + thirdWidth local left3 = left + (thirdWidth * 2) local movingTop = top JambaHelperSettings:CreateHeading( AJM.settingsControlRequests, L["Requests"], movingTop, false ) movingTop = movingTop - headingHeight AJM.settingsControlRequests.checkBoxAutoDenyDuels = JambaHelperSettings:CreateCheckBox( AJM.settingsControlRequests, headingWidth, left, movingTop, L["Auto Deny Duels"], AJM.SettingsToggleAutoDenyDuels ) movingTop = movingTop - checkBoxHeight AJM.settingsControlRequests.checkBoxAutoDenyGuildInvites = JambaHelperSettings:CreateCheckBox( AJM.settingsControlRequests, headingWidth, left, movingTop, L["Auto Deny Guild Invites"], AJM.SettingsToggleAutoDenyGuildInvites ) movingTop = movingTop - checkBoxHeight AJM.settingsControlRequests.checkBoxAutoAcceptResurrectRequest = JambaHelperSettings:CreateCheckBox( AJM.settingsControlRequests, headingWidth, left, movingTop, L["Auto Accept Resurrect Request"], AJM.SettingsToggleAutoAcceptResurrectRequests ) movingTop = movingTop - checkBoxHeight AJM.settingsControlRequests.checkBoxAutoAcceptSummonRequest = JambaHelperSettings:CreateCheckBox( AJM.settingsControlRequests, headingWidth, left, movingTop, L["Auto Accept Summon Request"], AJM.SettingsToggleAutoAcceptSummonRequest ) movingTop = movingTop - checkBoxHeight AJM.settingsControlRequests.dropdownRequestArea = JambaHelperSettings:CreateDropdown( AJM.settingsControlRequests, headingWidth, left, movingTop, L["Send Request Message Area"] ) AJM.settingsControlRequests.dropdownRequestArea:SetList( JambaApi.MessageAreaList() ) AJM.settingsControlRequests.dropdownRequestArea:SetCallback( "OnValueChanged", AJM.SettingsSetRequestArea ) movingTop = movingTop - dropdownHeight - verticalSpacing return movingTop end local function SettingsCreateCurrency( top ) -- Get positions. local checkBoxHeight = JambaHelperSettings:GetCheckBoxHeight() local sliderHeight = JambaHelperSettings:GetSliderHeight() local mediaHeight = JambaHelperSettings:GetMediaHeight() local editBoxHeight = JambaHelperSettings:GetEditBoxHeight() local buttonHeight = JambaHelperSettings:GetButtonHeight() local dropdownHeight = JambaHelperSettings:GetDropdownHeight() local labelHeight = JambaHelperSettings:GetLabelHeight() local left = JambaHelperSettings:LeftOfSettings() local headingHeight = JambaHelperSettings:HeadingHeight() local headingWidth = JambaHelperSettings:HeadingWidth( true ) local horizontalSpacing = JambaHelperSettings:GetHorizontalSpacing() local verticalSpacing = JambaHelperSettings:GetVerticalSpacing() local halfWidth = (headingWidth - horizontalSpacing) / 2 local thirdWidth = (headingWidth - (horizontalSpacing * 2)) / 3 local halfWidthSlider = (headingWidth - horizontalSpacing) / 2 local column2left = left + halfWidthSlider local left2 = left + thirdWidth local left3 = left + (thirdWidth * 2) local movingTop = top JambaHelperSettings:CreateHeading( AJM.settingsControlCurrency, L["Currency Selection"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlCurrency.checkBoxCurrencyGold = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Gold"], AJM.SettingsToggleCurrencyGold ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyGoldInGuildBank = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Include Gold In Guild Bank"], AJM.SettingsToggleCurrencyGoldInGuildBank ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyHonorPoints = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Honor Points"]..L[" ("]..L["HP"]..L[")"], AJM.SettingsToggleCurrencyHonorPoints ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyConquestPoints = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Conquest Points"]..L[" ("]..L["CP"]..L[")"], AJM.SettingsToggleCurrencyConquestPoints ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyValor = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Valor Points"]..L[" ("]..L["VP"]..L[")"], AJM.SettingsToggleCurrencyValor ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyTolBaradCommendation = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Tol Barad Commendation"]..L[" ("]..L["TBC"]..L[")"], AJM.SettingsToggleCurrencyTolBaradCommendation ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyChampionsSeal = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Champion's Seal"]..L[" ("]..L["CS"]..L[")"], AJM.SettingsToggleCurrencyChampionsSeal ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyIllustriousJewelcraftersToken = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Illustrious Jewelcrafter's Token"]..L[" ("]..L["IJT"]..L[")"], AJM.SettingsToggleCurrencyIllustriousJewelcraftersToken ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyDalaranJewelcraftingToken = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Dalaran Jewelcrafting Token"]..L[" ("]..L["DJT"]..L[")"], AJM.SettingsToggleCurrencyDalaranJewelcraftingToken ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyIronpawToken = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Ironpaw Token"]..L[" ("]..L["IT"]..L[")"], AJM.SettingsToggleCurrencyIronpawToken ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyLesserCharmOfGoodFortune = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Lesser Charm of Good Fortune"]..L[" ("]..L["LCGF"]..L[")"], AJM.SettingsToggleCurrencyLesserCharmOfGoodFortune ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyElderCharmOfGoodFortune = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Elder Charm of Good Fortune"]..L[" ("]..L["ECGF"]..L[")"], AJM.SettingsToggleCurrencyElderCharmOfGoodFortune ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyMoguRuneOfFate = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Mogu Rune Of Fate"]..L[" ("]..L["MROF"]..L[")"], AJM.SettingsToggleCurrencyMoguRuneOfFate ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyWarforgedSeal = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Warforged Seal"]..L[" ("]..L["WS"]..L[")"], AJM.SettingsToggleCurrencyWarforgedSeal ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyBloodyCoin = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Bloody Coin"]..L[" ("]..L["BC"]..L[")"], AJM.SettingsToggleCurrencyBloodyCoin ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyTimelessCoin = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Timeless Coin"]..L[" ("]..L["TC"]..L[")"], AJM.SettingsToggleCurrencyTimelessCoin ) --ebony New WoD Currency movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyGarrisonResources = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Garrison Resources"]..L[" ("]..L["GR"]..L[")"], AJM.SettingsToggleCurrencyGarrisonResources ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyTemperedFate = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Seal of Tempered Fate"]..L[" ("]..L["SoT"]..L[")"], AJM.SettingsToggleCurrencyTemperedFate ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyApexisCrystal = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Apexis Crystal"]..L[" ("]..L["AC"]..L[")"], AJM.SettingsToggleCurrencyApexisCrystal ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyDarkmoon = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Darkmoon Prize Ticket"]..L[" ("]..L["DPT"]..L[")"], AJM.SettingsToggleCurrencyDarkmoon ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyInevitableFate = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Seal of Inevitable Fate"]..L[" ("]..L["SoI"]..L[")"], AJM.SettingsToggleCurrencyInevitableFate ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyOil = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["OIL"]..L[" ("]..L["OIL"]..L[")"], AJM.SettingsToggleCurrencyOil ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.checkBoxCurrencyTimeWalker = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Timewarped Badge"]..L[" ("]..L["TwB"]..L[")"], AJM.SettingsToggleCurrencyTimeWalker ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.currencyButtonShowList = JambaHelperSettings:CreateButton( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Show Currency"], AJM.JambaToonRequestCurrency ) movingTop = movingTop - buttonHeight AJM.settingsControlCurrency.checkBoxCurrencyOpenStartUpMaster = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Open Currency List On Start Up (Master Only)"], AJM.SettingsToggleCurrencyOpenStartUpMaster ) movingTop = movingTop - checkBoxHeight -- Create appearance & layout. JambaHelperSettings:CreateHeading( AJM.settingsControlCurrency, L["Appearance & Layout"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlCurrency.checkBoxCurrencyLockWindow = JambaHelperSettings:CreateCheckBox( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Lock Currency List (enables mouse click-through)"], AJM.SettingsToggleCurrencyLockWindow ) movingTop = movingTop - checkBoxHeight AJM.settingsControlCurrency.currencyScaleSlider = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Scale"] ) AJM.settingsControlCurrency.currencyScaleSlider:SetSliderValues( 0.5, 2, 0.01 ) AJM.settingsControlCurrency.currencyScaleSlider:SetCallback( "OnValueChanged", AJM.SettingsChangeScale ) movingTop = movingTop - sliderHeight - verticalSpacing AJM.settingsControlCurrency.currencyTransparencySlider = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Transparency"] ) AJM.settingsControlCurrency.currencyTransparencySlider:SetSliderValues( 0, 1, 0.01 ) AJM.settingsControlCurrency.currencyTransparencySlider:SetCallback( "OnValueChanged", AJM.SettingsChangeTransparency ) movingTop = movingTop - sliderHeight - verticalSpacing AJM.settingsControlCurrency.currencyMediaBorder = JambaHelperSettings:CreateMediaBorder( AJM.settingsControlCurrency, halfWidthSlider, left, movingTop, L["Border Style"] ) AJM.settingsControlCurrency.currencyMediaBorder:SetCallback( "OnValueChanged", AJM.SettingsChangeBorderStyle ) AJM.settingsControlCurrency.currencyBorderColourPicker = JambaHelperSettings:CreateColourPicker( AJM.settingsControlCurrency, halfWidthSlider, column2left + 15, movingTop - 15, L["Border Colour"] ) AJM.settingsControlCurrency.currencyBorderColourPicker:SetHasAlpha( true ) AJM.settingsControlCurrency.currencyBorderColourPicker:SetCallback( "OnValueConfirmed", AJM.SettingsBorderColourPickerChanged ) movingTop = movingTop - mediaHeight - verticalSpacing AJM.settingsControlCurrency.currencyMediaBackground = JambaHelperSettings:CreateMediaBackground( AJM.settingsControlCurrency, halfWidthSlider, left, movingTop, L["Background"] ) AJM.settingsControlCurrency.currencyMediaBackground:SetCallback( "OnValueChanged", AJM.SettingsChangeBackgroundStyle ) AJM.settingsControlCurrency.currencyBackgroundColourPicker = JambaHelperSettings:CreateColourPicker( AJM.settingsControlCurrency, halfWidthSlider, column2left + 15, movingTop - 15, L["Background Colour"] ) AJM.settingsControlCurrency.currencyBackgroundColourPicker:SetHasAlpha( true ) AJM.settingsControlCurrency.currencyBackgroundColourPicker:SetCallback( "OnValueConfirmed", AJM.SettingsBackgroundColourPickerChanged ) movingTop = movingTop - mediaHeight - verticalSpacing AJM.settingsControlCurrency.currencySliderSpaceForName = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Space For Name"] ) AJM.settingsControlCurrency.currencySliderSpaceForName:SetSliderValues( 20, 200, 1 ) AJM.settingsControlCurrency.currencySliderSpaceForName:SetCallback( "OnValueChanged", AJM.SettingsChangeSliderSpaceForName ) movingTop = movingTop - sliderHeight - verticalSpacing AJM.settingsControlCurrency.currencySliderSpaceForGold = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Space For Gold"] ) AJM.settingsControlCurrency.currencySliderSpaceForGold:SetSliderValues( 20, 200, 1 ) AJM.settingsControlCurrency.currencySliderSpaceForGold:SetCallback( "OnValueChanged", AJM.SettingsChangeSliderSpaceForGold ) movingTop = movingTop - sliderHeight - verticalSpacing AJM.settingsControlCurrency.currencySliderSpaceForPoints = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Space For Points"] ) AJM.settingsControlCurrency.currencySliderSpaceForPoints:SetSliderValues( 20, 200, 1 ) AJM.settingsControlCurrency.currencySliderSpaceForPoints:SetCallback( "OnValueChanged", AJM.SettingsChangeSliderSpaceForPoints ) movingTop = movingTop - sliderHeight - verticalSpacing AJM.settingsControlCurrency.currencySliderSpaceBetweenValues = JambaHelperSettings:CreateSlider( AJM.settingsControlCurrency, headingWidth, left, movingTop, L["Space Between Values"] ) AJM.settingsControlCurrency.currencySliderSpaceBetweenValues:SetSliderValues( 0, 20, 1 ) AJM.settingsControlCurrency.currencySliderSpaceBetweenValues:SetCallback( "OnValueChanged", AJM.SettingsChangeSliderSpaceBetweenValues ) movingTop = movingTop - sliderHeight - verticalSpacing return movingTop end local function SettingsCreateWarnings( top ) -- Get positions. local checkBoxHeight = JambaHelperSettings:GetCheckBoxHeight() local editBoxHeight = JambaHelperSettings:GetEditBoxHeight() local dropdownHeight = JambaHelperSettings:GetDropdownHeight() local labelHeight = JambaHelperSettings:GetLabelHeight() local left = JambaHelperSettings:LeftOfSettings() local headingHeight = JambaHelperSettings:HeadingHeight() local headingWidth = JambaHelperSettings:HeadingWidth( true ) local horizontalSpacing = JambaHelperSettings:GetHorizontalSpacing() local verticalSpacing = JambaHelperSettings:GetVerticalSpacing() local halfWidth = (headingWidth - horizontalSpacing) / 2 local thirdWidth = (headingWidth - (horizontalSpacing * 2)) / 3 local column2left = left + halfWidth local left2 = left + thirdWidth local left3 = left + (thirdWidth * 2) local movingTop = top JambaHelperSettings:CreateHeading( AJM.settingsControlWarnings, L["Combat"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlWarnings.checkBoxWarnHitFirstTimeCombat = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If Hit First Time In Combat (Minion)"], AJM.SettingsToggleWarnHitFirstTimeCombat ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxHitFirstTimeMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Hit First Time Message"] ) AJM.settingsControlWarnings.editBoxHitFirstTimeMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedHitFirstTimeMessage ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.checkBoxWarnTargetNotMasterEnterCombat = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If Target Not Master On Combat (Minion)"], AJM.SettingsToggleWarnTargetNotMasterEnterCombat ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxWarnTargetNotMasterMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn Target Not Master Message"] ) AJM.settingsControlWarnings.editBoxWarnTargetNotMasterMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnTargetNotMasterMessage ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.checkBoxWarnFocusNotMasterEnterCombat = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If Focus Not Master On Combat (Minion)"], AJM.SettingsToggleWarnFocusNotMasterEnterCombat ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxWarnFocusNotMasterMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn Focus Not Master Message"] ) AJM.settingsControlWarnings.editBoxWarnFocusNotMasterMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnFocusNotMasterMessage ) movingTop = movingTop - editBoxHeight JambaHelperSettings:CreateHeading( AJM.settingsControlWarnings, L["Health / Mana"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlWarnings.checkBoxWarnWhenHealthDropsBelowX = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If My Health Drops Below"], AJM.SettingsToggleWarnWhenHealthDropsBelowX ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxWarnWhenHealthDropsAmount = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Health Amount - Percentage Allowed Before Warning"] ) AJM.settingsControlWarnings.editBoxWarnWhenHealthDropsAmount:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnWhenHealthDropsAmount ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.editBoxWarnHealthDropsMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn Health Drop Message"] ) AJM.settingsControlWarnings.editBoxWarnHealthDropsMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnHealthDropsMessage ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.checkBoxWarnWhenManaDropsBelowX = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If My Mana Drops Below"], AJM.SettingsToggleWarnWhenManaDropsBelowX ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxWarnWhenManaDropsAmount = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Mana Amount - Percentage Allowed Before Warning"] ) AJM.settingsControlWarnings.editBoxWarnWhenManaDropsAmount:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnWhenManaDropsAmount ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.editBoxWarnManaDropsMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn Mana Drop Message"] ) AJM.settingsControlWarnings.editBoxWarnManaDropsMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedWarnManaDropsMessage ) movingTop = movingTop - editBoxHeight JambaHelperSettings:CreateHeading( AJM.settingsControlWarnings, L["Bag Space"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlWarnings.checkBoxWarnBagsFull = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If All Regular Bags Are Full"], AJM.SettingsToggleWarnBagsFull ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxBagsFullMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Bags Full Message"] ) AJM.settingsControlWarnings.editBoxBagsFullMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedBagsFullMessage ) movingTop = movingTop - editBoxHeight JambaHelperSettings:CreateHeading( AJM.settingsControlWarnings, L["Inactive"], movingTop, true ) movingTop = movingTop - headingHeight AJM.settingsControlWarnings.checkBoxWarnAfk = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If Toon Goes Inactive (PVP)"], AJM.SettingsToggleWarnAfk ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxAfkMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Inactive Message"] ) AJM.settingsControlWarnings.editBoxAfkMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedAfkMessage ) movingTop = movingTop - editBoxHeight -- Ebony CC AJM.settingsControlWarnings.checkBoxWarnCC = JambaHelperSettings:CreateCheckBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Warn If Toon Gets Crowd Control"], AJM.SettingsToggleWarnCC ) movingTop = movingTop - checkBoxHeight AJM.settingsControlWarnings.editBoxCCMessage = JambaHelperSettings:CreateEditBox( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Crowd Control Message"] ) AJM.settingsControlWarnings.editBoxCCMessage:SetCallback( "OnEnterPressed", AJM.EditBoxChangedCCMessage ) movingTop = movingTop - editBoxHeight AJM.settingsControlWarnings.dropdownWarningArea = JambaHelperSettings:CreateDropdown( AJM.settingsControlWarnings, headingWidth, left, movingTop, L["Send Warning Area"] ) AJM.settingsControlWarnings.dropdownWarningArea:SetList( JambaApi.MessageAreaList() ) AJM.settingsControlWarnings.dropdownWarningArea:SetCallback( "OnValueChanged", AJM.SettingsSetWarningArea ) movingTop = movingTop - dropdownHeight - verticalSpacing return movingTop end local function SettingsCreate() AJM.settingsControlWarnings = {} AJM.settingsControlRequests = {} AJM.settingsControlMerchant = {} AJM.settingsControlCurrency = {} JambaHelperSettings:CreateSettings( AJM.settingsControlWarnings, AJM.moduleDisplayName, AJM.parentDisplayNameToon, AJM.SettingsPushSettingsClick ) JambaHelperSettings:CreateSettings( AJM.settingsControlRequests, L["Toon"]..L[": "]..L["Requests"], AJM.parentDisplayNameToon, AJM.SettingsPushSettingsClick ) JambaHelperSettings:CreateSettings( AJM.settingsControlMerchant, L["Toon"]..L[": "]..L["Merchant"], AJM.parentDisplayNameMerchant, AJM.SettingsPushSettingsClick ) JambaHelperSettings:CreateSettings( AJM.settingsControlCurrency, L["Toon"]..L[": "]..L["Currency"], AJM.parentDisplayNameCurrency, AJM.SettingsPushSettingsClick ) local bottomOfWarnings = SettingsCreateWarnings( JambaHelperSettings:TopOfSettings() ) AJM.settingsControlWarnings.widgetSettings.content:SetHeight( -bottomOfWarnings ) local bottomOfRequests = SettingsCreateRequests( JambaHelperSettings:TopOfSettings() ) AJM.settingsControlRequests.widgetSettings.content:SetHeight( -bottomOfRequests ) local bottomOfMerchant = SettingsCreateMerchant( JambaHelperSettings:TopOfSettings() ) AJM.settingsControlMerchant.widgetSettings.content:SetHeight( -bottomOfMerchant ) local bottomOfCurrency = SettingsCreateCurrency( JambaHelperSettings:TopOfSettings() ) AJM.settingsControlCurrency.widgetSettings.content:SetHeight( -bottomOfCurrency ) -- Help local helpTable = {} JambaHelperSettings:CreateHelp( AJM.settingsControlWarnings, helpTable, AJM:GetConfiguration() ) end ------------------------------------------------------------------------------------------------------------- -- Settings Populate. ------------------------------------------------------------------------------------------------------------- function AJM:BeforeJambaProfileChanged() end function AJM:OnJambaProfileChanged() AJM:SettingsRefresh() end function AJM:SettingsRefresh() AJM.settingsControlWarnings.checkBoxWarnHitFirstTimeCombat:SetValue( AJM.db.warnHitFirstTimeCombat ) AJM.settingsControlWarnings.editBoxHitFirstTimeMessage:SetText( AJM.db.hitFirstTimeMessage ) AJM.settingsControlWarnings.checkBoxWarnTargetNotMasterEnterCombat:SetValue( AJM.db.warnTargetNotMasterEnterCombat ) AJM.settingsControlWarnings.editBoxWarnTargetNotMasterMessage:SetText( AJM.db.warnTargetNotMasterMessage ) AJM.settingsControlWarnings.checkBoxWarnFocusNotMasterEnterCombat:SetValue( AJM.db.warnFocusNotMasterEnterCombat ) AJM.settingsControlWarnings.editBoxWarnFocusNotMasterMessage:SetText( AJM.db.warnFocusNotMasterMessage ) AJM.settingsControlWarnings.checkBoxWarnWhenHealthDropsBelowX:SetValue( AJM.db.warnWhenHealthDropsBelowX ) AJM.settingsControlWarnings.editBoxWarnWhenHealthDropsAmount:SetText( AJM.db.warnWhenHealthDropsAmount ) AJM.settingsControlWarnings.editBoxWarnHealthDropsMessage:SetText( AJM.db.warnHealthDropsMessage ) AJM.settingsControlWarnings.checkBoxWarnWhenManaDropsBelowX:SetValue( AJM.db.warnWhenManaDropsBelowX ) AJM.settingsControlWarnings.editBoxWarnWhenManaDropsAmount:SetText( AJM.db.warnWhenManaDropsAmount ) AJM.settingsControlWarnings.editBoxWarnManaDropsMessage:SetText( AJM.db.warnManaDropsMessage ) AJM.settingsControlWarnings.checkBoxWarnBagsFull:SetValue( AJM.db.warnBagsFull ) AJM.settingsControlWarnings.editBoxBagsFullMessage:SetText( AJM.db.bagsFullMessage ) AJM.settingsControlWarnings.checkBoxWarnAfk:SetValue( AJM.db.warnAfk ) AJM.settingsControlWarnings.editBoxAfkMessage:SetText( AJM.db.afkMessage ) AJM.settingsControlWarnings.checkBoxWarnCC:SetValue( AJM.db.warnCC ) AJM.settingsControlWarnings.editBoxCCMessage:SetText( AJM.db.CcMessage ) AJM.settingsControlWarnings.dropdownWarningArea:SetValue( AJM.db.warningArea ) AJM.settingsControlRequests.checkBoxAutoAcceptResurrectRequest:SetValue( AJM.db.autoAcceptResurrectRequest ) AJM.settingsControlRequests.checkBoxAutoDenyDuels:SetValue( AJM.db.autoDenyDuels ) AJM.settingsControlRequests.checkBoxAutoAcceptSummonRequest:SetValue( AJM.db.autoAcceptSummonRequest ) AJM.settingsControlRequests.checkBoxAutoDenyGuildInvites:SetValue( AJM.db.autoDenyGuildInvites ) AJM.settingsControlRequests.dropdownRequestArea:SetValue( AJM.db.requestArea ) AJM.settingsControlMerchant.checkBoxAutoRepair:SetValue( AJM.db.autoRepair ) AJM.settingsControlMerchant.checkBoxAutoRepairUseGuildFunds:SetValue( AJM.db.autoRepairUseGuildFunds ) AJM.settingsControlMerchant.dropdownMerchantArea:SetValue( AJM.db.merchantArea ) AJM.settingsControlWarnings.editBoxHitFirstTimeMessage:SetDisabled( not AJM.db.warnHitFirstTimeCombat ) AJM.settingsControlWarnings.editBoxWarnTargetNotMasterMessage:SetDisabled( not AJM.db.warnTargetNotMasterEnterCombat ) AJM.settingsControlWarnings.editBoxWarnFocusNotMasterMessage:SetDisabled( not AJM.db.warnFocusNotMasterEnterCombat ) AJM.settingsControlWarnings.editBoxWarnWhenHealthDropsAmount:SetDisabled( not AJM.db.warnWhenHealthDropsBelowX ) AJM.settingsControlWarnings.editBoxWarnHealthDropsMessage:SetDisabled( not AJM.db.warnWhenHealthDropsBelowX ) AJM.settingsControlWarnings.editBoxWarnWhenManaDropsAmount:SetDisabled( not AJM.db.warnWhenManaDropsBelowX ) AJM.settingsControlWarnings.editBoxWarnManaDropsMessage:SetDisabled( not AJM.db.warnWhenManaDropsBelowX ) AJM.settingsControlMerchant.checkBoxAutoRepairUseGuildFunds:SetDisabled( not AJM.db.autoRepair ) AJM.settingsControlWarnings.editBoxBagsFullMessage:SetDisabled( not AJM.db.warnBagsFull ) AJM.settingsControlWarnings.editBoxAfkMessage:SetDisabled( not AJM.db.warnAfk ) AJM.settingsControlWarnings.editBoxCCMessage:SetDisabled( not AJM.db.warnCC ) AJM.settingsControlCurrency.checkBoxCurrencyGold:SetValue( AJM.db.currGold ) AJM.settingsControlCurrency.checkBoxCurrencyGoldInGuildBank:SetValue( AJM.db.currGoldInGuildBank ) AJM.settingsControlCurrency.checkBoxCurrencyGoldInGuildBank:SetDisabled( not AJM.db.currGold ) AJM.settingsControlCurrency.checkBoxCurrencyHonorPoints:SetValue( AJM.db.currHonorPoints ) AJM.settingsControlCurrency.checkBoxCurrencyConquestPoints:SetValue( AJM.db.currConquestPoints ) AJM.settingsControlCurrency.checkBoxCurrencyValor:SetValue( AJM.db.currValor ) AJM.settingsControlCurrency.checkBoxCurrencyTolBaradCommendation:SetValue( AJM.db.currTolBaradCommendation ) AJM.settingsControlCurrency.checkBoxCurrencyChampionsSeal:SetValue( AJM.db.currChampionsSeal ) AJM.settingsControlCurrency.checkBoxCurrencyIllustriousJewelcraftersToken:SetValue( AJM.db.currIllustriousJewelcraftersToken ) AJM.settingsControlCurrency.checkBoxCurrencyDalaranJewelcraftingToken:SetValue( AJM.db.currDalaranJewelcraftingToken ) AJM.settingsControlCurrency.checkBoxCurrencyIronpawToken:SetValue( AJM.db.currIronpawToken ) AJM.settingsControlCurrency.checkBoxCurrencyLesserCharmOfGoodFortune:SetValue( AJM.db.currLesserCharmOfGoodFortune ) AJM.settingsControlCurrency.checkBoxCurrencyElderCharmOfGoodFortune:SetValue( AJM.db.currElderCharmOfGoodFortune ) AJM.settingsControlCurrency.checkBoxCurrencyMoguRuneOfFate:SetValue( AJM.db.currMoguRuneOfFate ) AJM.settingsControlCurrency.checkBoxCurrencyWarforgedSeal:SetValue( AJM.db.currWarforgedSeal ) AJM.settingsControlCurrency.checkBoxCurrencyBloodyCoin:SetValue( AJM.db.currBloodyCoin ) AJM.settingsControlCurrency.checkBoxCurrencyTimelessCoin:SetValue( AJM.db.currTimelessCoin ) --ebony New WoD Currency AJM.settingsControlCurrency.checkBoxCurrencyGarrisonResources:SetValue( AJM.db.currGarrisonResources ) AJM.settingsControlCurrency.checkBoxCurrencyTemperedFate:SetValue( AJM.db.currTemperedFate ) AJM.settingsControlCurrency.checkBoxCurrencyApexisCrystal:SetValue( AJM.db.currApexisCrystal ) AJM.settingsControlCurrency.checkBoxCurrencyDarkmoon:SetValue( AJM.db.currDarkmoon ) AJM.settingsControlCurrency.checkBoxCurrencyInevitableFate:SetValue( AJM.db.currInevitableFate ) AJM.settingsControlCurrency.checkBoxCurrencyOil:SetValue( AJM.db.currOil ) AJM.settingsControlCurrency.checkBoxCurrencyTimeWalker:SetValue( AJM.db.currTimeWalker ) --end AJM.settingsControlCurrency.checkBoxCurrencyOpenStartUpMaster:SetValue( AJM.db.currOpenStartUpMaster ) AJM.settingsControlCurrency.currencyTransparencySlider:SetValue( AJM.db.currencyFrameAlpha ) AJM.settingsControlCurrency.currencyScaleSlider:SetValue( AJM.db.currencyScale ) AJM.settingsControlCurrency.currencyMediaBorder:SetValue( AJM.db.currencyBorderStyle ) AJM.settingsControlCurrency.currencyMediaBackground:SetValue( AJM.db.currencyBackgroundStyle ) AJM.settingsControlCurrency.currencyBackgroundColourPicker:SetColor( AJM.db.currencyFrameBackgroundColourR, AJM.db.currencyFrameBackgroundColourG, AJM.db.currencyFrameBackgroundColourB, AJM.db.currencyFrameBackgroundColourA ) AJM.settingsControlCurrency.currencyBorderColourPicker:SetColor( AJM.db.currencyFrameBorderColourR, AJM.db.currencyFrameBorderColourG, AJM.db.currencyFrameBorderColourB, AJM.db.currencyFrameBorderColourA ) AJM.settingsControlCurrency.currencySliderSpaceForName:SetValue( AJM.db.currencyNameWidth ) AJM.settingsControlCurrency.currencySliderSpaceForGold:SetValue( AJM.db.currencyGoldWidth ) AJM.settingsControlCurrency.currencySliderSpaceForPoints:SetValue( AJM.db.currencyPointsWidth ) AJM.settingsControlCurrency.currencySliderSpaceBetweenValues:SetValue( AJM.db.currencySpacingWidth ) AJM.settingsControlCurrency.checkBoxCurrencyLockWindow:SetValue( AJM.db.currencyLockWindow ) if AJM.currencyListFrameCreated == true then AJM:CurrencyListSetColumnWidth() AJM:CurrencyListSetHeight() AJM:SettingsUpdateBorderStyle() AJM:CurrencyUpdateWindowLock() JambaToonCurrencyListFrame:SetScale( AJM.db.currencyScale ) end end function AJM:SettingsPushSettingsClick( event ) AJM:JambaSendSettings() end function AJM:SettingsToggleAutoRepair( event, checked ) AJM.db.autoRepair = checked AJM:SettingsRefresh() end function AJM:SettingsToggleAutoRepairUseGuildFunds( event, checked ) AJM.db.autoRepairUseGuildFunds = checked AJM:SettingsRefresh() end function AJM:SettingsToggleAutoDenyDuels( event, checked ) AJM.db.autoDenyDuels = checked AJM:SettingsRefresh() end function AJM:SettingsToggleAutoAcceptSummonRequest( event, checked ) AJM.db.autoAcceptSummonRequest = checked AJM:SettingsRefresh() end function AJM:SettingsToggleAutoDenyGuildInvites( event, checked ) AJM.db.autoDenyGuildInvites = checked AJM:SettingsRefresh() end function AJM:SettingsToggleAutoAcceptResurrectRequests( event, checked ) AJM.db.autoAcceptResurrectRequest = checked AJM:SettingsRefresh() end function AJM:SettingsToggleWarnHitFirstTimeCombat( event, checked ) AJM.db.warnHitFirstTimeCombat = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedHitFirstTimeMessage( event, text ) AJM.db.hitFirstTimeMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnBagsFull( event, checked ) AJM.db.warnBagsFull = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedBagsFullMessage( event, text ) AJM.db.bagsFullMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnAfk( event, checked ) AJM.db.warnAfk = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedAfkMessage( event, text ) AJM.db.afkMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnCC( event, checked ) AJM.db.warnCC = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedCCMessage( event, text ) AJM.db.CcMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnTargetNotMasterEnterCombat( event, checked ) AJM.db.warnTargetNotMasterEnterCombat = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnTargetNotMasterMessage( event, text ) AJM.db.warnTargetNotMasterMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnFocusNotMasterEnterCombat( event, checked ) AJM.db.warnFocusNotMasterEnterCombat = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnFocusNotMasterMessage( event, text ) AJM.db.warnFocusNotMasterMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnWhenHealthDropsBelowX( event, checked ) AJM.db.warnWhenHealthDropsBelowX = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnWhenHealthDropsAmount( event, text ) local amount = tonumber( text ) amount = JambaUtilities:FixValueToRange( amount, 0, 100 ) AJM.db.warnWhenHealthDropsAmount = tostring( amount ) AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnHealthDropsMessage( event, text ) AJM.db.warnHealthDropsMessage = text AJM:SettingsRefresh() end function AJM:SettingsToggleWarnWhenManaDropsBelowX( event, checked ) AJM.db.warnWhenManaDropsBelowX = checked AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnWhenManaDropsAmount( event, text ) local amount = tonumber( text ) amount = JambaUtilities:FixValueToRange( amount, 0, 100 ) AJM.db.warnWhenManaDropsAmount = tostring( amount ) AJM:SettingsRefresh() end function AJM:EditBoxChangedWarnManaDropsMessage( event, text ) AJM.db.warnManaDropsMessage = text AJM:SettingsRefresh() end function AJM:SettingsSetWarningArea( event, value ) AJM.db.warningArea = value AJM:SettingsRefresh() end function AJM:SettingsSetRequestArea( event, value ) AJM.db.requestArea = value AJM:SettingsRefresh() end function AJM:SettingsSetMerchantArea( event, value ) AJM.db.merchantArea = value AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyGold( event, checked ) AJM.db.currGold = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyGoldInGuildBank( event, checked ) AJM.db.currGoldInGuildBank = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyHonorPoints( event, checked ) AJM.db.currHonorPoints = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyConquestPoints( event, checked ) AJM.db.currConquestPoints = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyValor( event, checked ) AJM.db.currValor = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyTolBaradCommendation( event, checked ) AJM.db.currTolBaradCommendation = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyChampionsSeal( event, checked ) AJM.db.currChampionsSeal = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyIllustriousJewelcraftersToken( event, checked ) AJM.db.currIllustriousJewelcraftersToken = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyDalaranJewelcraftingToken( event, checked ) AJM.db.currDalaranJewelcraftingToken = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyIronpawToken( event, checked ) AJM.db.currIronpawToken = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyLesserCharmOfGoodFortune( event, checked ) AJM.db.currLesserCharmOfGoodFortune = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyElderCharmOfGoodFortune( event, checked ) AJM.db.currElderCharmOfGoodFortune = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyMoguRuneOfFate( event, checked ) AJM.db.currMoguRuneOfFate = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyWarforgedSeal( event, checked ) AJM.db.currWarforgedSeal = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyBloodyCoin( event, checked ) AJM.db.currBloodyCoin = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyTimelessCoin( event, checked ) AJM.db.currTimelessCoin = checked AJM:SettingsRefresh() end --ebony New WoD Currency function AJM:SettingsToggleCurrencyGarrisonResources ( event, checked ) AJM.db.currGarrisonResources = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyTemperedFate ( event, checked ) AJM.db.currTemperedFate = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyApexisCrystal ( event, checked ) AJM.db.currApexisCrystal = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyInevitableFate ( event, checked ) AJM.db.currInevitableFate = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyOil ( event, checked ) AJM.db.currOil = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyTimeWalker ( event, checked ) AJM.db.currTimeWalker = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyDarkmoon ( event, checked ) AJM.db.currDarkmoon = checked AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyOpenStartUpMaster( event, checked ) AJM.db.currOpenStartUpMaster = checked AJM:SettingsRefresh() end function AJM:SettingsChangeScale( event, value ) AJM.db.currencyScale = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsChangeTransparency( event, value ) AJM.db.currencyFrameAlpha = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsChangeBorderStyle( event, value ) AJM.db.currencyBorderStyle = value AJM:SettingsRefresh() end function AJM:SettingsChangeBackgroundStyle( event, value ) AJM.db.currencyBackgroundStyle = value AJM:SettingsRefresh() end function AJM:SettingsBackgroundColourPickerChanged( event, r, g, b, a ) AJM.db.currencyFrameBackgroundColourR = r AJM.db.currencyFrameBackgroundColourG = g AJM.db.currencyFrameBackgroundColourB = b AJM.db.currencyFrameBackgroundColourA = a AJM:SettingsRefresh() end function AJM:SettingsBorderColourPickerChanged( event, r, g, b, a ) AJM.db.currencyFrameBorderColourR = r AJM.db.currencyFrameBorderColourG = g AJM.db.currencyFrameBorderColourB = b AJM.db.currencyFrameBorderColourA = a AJM:SettingsRefresh() end function AJM:SettingsChangeSliderSpaceForName( event, value ) AJM.db.currencyNameWidth = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsChangeSliderSpaceForGold( event, value ) AJM.db.currencyGoldWidth = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsChangeSliderSpaceForPoints( event, value ) AJM.db.currencyPointsWidth = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsChangeSliderSpaceBetweenValues( event, value ) AJM.db.currencySpacingWidth = tonumber( value ) AJM:SettingsRefresh() end function AJM:SettingsToggleCurrencyLockWindow( event, checked ) AJM.db.currencyLockWindow = checked AJM:CurrencyUpdateWindowLock() AJM:SettingsRefresh() end ------------------------------------------------------------------------------------------------------------- -- Addon initialization, enabling and disabling. ------------------------------------------------------------------------------------------------------------- -- Initialise the module. function AJM:OnInitialize() AJM.currencyTotalGold = 0 AJM.currencyListFrameCreated = false AJM.currencyFrameCharacterInfo = {} AJM.currentCurrencyValues = {} -- Create the settings control. SettingsCreate() -- Initialise the JambaModule part of this module. AJM:JambaModuleInitialize( AJM.settingsControlWarnings.widgetSettings.frame ) -- Populate the settings. AJM:SettingsRefresh() -- Create the currency list frame. AJM:CreateJambaToonCurrencyListFrame() -- Flag set when told the master about health falling below a certain percentage. AJM.toldMasterAboutHealth = false -- Flag set when told the master about mana falling below a certain percentage. AJM.toldMasterAboutMana = false -- Have been hit flag. AJM.haveBeenHit = false -- Bags full changed count. AJM.previousFreeBagSlotsCount = -1 end -- Called when the addon is enabled. function AJM:OnEnable() -- WoW events. AJM:RegisterEvent( "UNIT_COMBAT" ) AJM:RegisterEvent( "PLAYER_REGEN_DISABLED" ) AJM:RegisterEvent( "PLAYER_REGEN_ENABLED" ) AJM:RegisterEvent( "UNIT_HEALTH" ) AJM:RegisterEvent( "MERCHANT_SHOW" ) AJM:RegisterEvent( "UNIT_MANA" ) AJM:RegisterEvent( "RESURRECT_REQUEST" ) AJM:RegisterEvent( "CONFIRM_SUMMON") AJM:RegisterEvent( "DUEL_REQUESTED" ) AJM:RegisterEvent( "GUILD_INVITE_REQUEST" ) AJM:RegisterEvent( "ITEM_PUSH" ) --test --AJM:RegisterEvent("LOSS_OF_CONTROL_UPDATE") AJM:RegisterEvent("LOSS_OF_CONTROL_ADDED") --TODO: this might need chaning like in jamba-display as does not work very well with a lot of RED UI updates. (EG spamBAR?) AJM:RegisterEvent( "UI_ERROR_MESSAGE", "ITEM_PUSH" ) AJM:RegisterEvent( "UNIT_AURA" ) AJM:RegisterMessage( JambaApi.MESSAGE_MESSAGE_AREAS_CHANGED, "OnMessageAreasChanged" ) AJM:RegisterMessage( JambaApi.MESSAGE_CHARACTER_ONLINE, "OnCharactersChanged" ) AJM:RegisterMessage( JambaApi.MESSAGE_CHARACTER_OFFLINE, "OnCharactersChanged" ) if AJM.db.currOpenStartUpMaster == true then if JambaApi.IsCharacterTheMaster( self.characterName ) == true then AJM:ScheduleTimer( "JambaToonRequestCurrency", 2 ) end end end -- Called when the addon is disabled. function AJM:OnDisable() end -- Settings received. function AJM:JambaOnSettingsReceived( characterName, settings ) if characterName ~= AJM.characterName then -- Update the settings. AJM.db.warnHitFirstTimeCombat = settings.warnHitFirstTimeCombat AJM.db.hitFirstTimeMessage = settings.hitFirstTimeMessage AJM.db.warnTargetNotMasterEnterCombat = settings.warnTargetNotMasterEnterCombat AJM.db.warnTargetNotMasterMessage = settings.warnTargetNotMasterMessage AJM.db.warnFocusNotMasterEnterCombat = settings.warnFocusNotMasterEnterCombat AJM.db.warnFocusNotMasterMessage = settings.warnFocusNotMasterMessage AJM.db.warnWhenHealthDropsBelowX = settings.warnWhenHealthDropsBelowX AJM.db.warnWhenHealthDropsAmount = settings.warnWhenHealthDropsAmount AJM.db.warnHealthDropsMessage = settings.warnHealthDropsMessage AJM.db.warnWhenManaDropsBelowX = settings.warnWhenManaDropsBelowX AJM.db.warnWhenManaDropsAmount = settings.warnWhenManaDropsAmount AJM.db.warnManaDropsMessage = settings.warnManaDropsMessage AJM.db.warnBagsFull = settings.warnBagsFull AJM.db.bagsFullMessage = settings.bagsFullMessage AJM.db.warnAfk = settings.warnAfk AJM.db.afkMessage = settings.afkMessage AJM.db.warnCC = settings.warnCC AJM.db.CcMessage = settings.CcMessage AJM.db.autoAcceptResurrectRequest = settings.autoAcceptResurrectRequest AJM.db.autoDenyDuels = settings.autoDenyDuels --ebonnysum AJM.db.autoAcceptSummonRequest = settings.autoAcceptSummonRequest AJM.db.autoDenyGuildInvites = settings.autoDenyGuildInvites AJM.db.autoRepair = settings.autoRepair AJM.db.autoRepairUseGuildFunds = settings.autoRepairUseGuildFunds AJM.db.warningArea = settings.warningArea AJM.db.requestArea = settings.requestArea AJM.db.merchantArea = settings.merchantArea AJM.db.currGold = settings.currGold AJM.db.currGoldInGuildBank = settings.currGoldInGuildBank AJM.db.currHonorPoints = settings.currHonorPoints AJM.db.currConquestPoints = settings.currConquestPoints AJM.db.currValor = settings.currValor AJM.db.currTolBaradCommendation = settings.currTolBaradCommendation AJM.db.currChampionsSeal = settings.currChampionsSeal AJM.db.currIllustriousJewelcraftersToken = settings.currIllustriousJewelcraftersToken AJM.db.currDalaranJewelcraftingToken = settings.currDalaranJewelcraftingToken AJM.db.currIronpawToken = settings.currIronpawToken AJM.db.currLesserCharmOfGoodFortune = settings.currLesserCharmOfGoodFortune AJM.db.currElderCharmOfGoodFortune = settings.currElderCharmOfGoodFortune AJM.db.currMoguRuneOfFate = settings.currMoguRuneOfFate AJM.db.currWarforgedSeal = settings.currWarforgedSeal AJM.db.currBloodyCoin = settings.currBloodyCoin AJM.db.currTimelessCoin = settings.currTimelessCoin --ebony New WoD Currency AJM.db.currGarrisonResources = settings.currGarrisonResources AJM.db.currTemperedFate = settings.currTemperedFate AJM.db.currApexisCrystal = settings.currApexisCrystal AJM.db.currDarkmoon = settings.currDarkmoon AJM.db.currInevitableFate = settings.currInevitableFate AJM.db.currOil = settings.currOil AJM.db.currTimeWalker = settings.currTimeWalker -- END AJM.db.currOpenStartUpMaster = settings.currOpenStartUpMaster AJM.db.currencyScale = settings.currencyScale AJM.db.currencyFrameAlpha = settings.currencyFrameAlpha AJM.db.currencyFramePoint = settings.currencyFramePoint AJM.db.currencyFrameRelativePoint = settings.currencyFrameRelativePoint AJM.db.currencyFrameXOffset = settings.currencyFrameXOffset AJM.db.currencyFrameYOffset = settings.currencyFrameYOffset AJM.db.currencyFrameBackgroundColourR = settings.currencyFrameBackgroundColourR AJM.db.currencyFrameBackgroundColourG = settings.currencyFrameBackgroundColourG AJM.db.currencyFrameBackgroundColourB = settings.currencyFrameBackgroundColourB AJM.db.currencyFrameBackgroundColourA = settings.currencyFrameBackgroundColourA AJM.db.currencyFrameBorderColourR = settings.currencyFrameBorderColourR AJM.db.currencyFrameBorderColourG = settings.currencyFrameBorderColourG AJM.db.currencyFrameBorderColourB = settings.currencyFrameBorderColourB AJM.db.currencyFrameBorderColourA = settings.currencyFrameBorderColourA AJM.db.currencyNameWidth = settings.currencyNameWidth AJM.db.currencyPointsWidth = settings.currencyPointsWidth AJM.db.currencyGoldWidth = settings.currencyGoldWidth AJM.db.currencySpacingWidth = settings.currencySpacingWidth AJM.db.currencyLockWindow = settings.currencyLockWindow -- Refresh the settings. AJM:SettingsRefresh() -- Tell the player. AJM:Print( L["Settings received from A."]( characterName ) ) -- Tell the team? --AJM:JambaSendMessageToTeam( AJM.db.messageArea, L["Settings received from A."]( characterName ), false ) end end function AJM:UNIT_COMBAT( event, unitAffected, action ) if AJM.db.warnHitFirstTimeCombat == false then return end if JambaApi.IsCharacterTheMaster( self.characterName ) == true then return end if InCombatLockdown() then if unitAffected == "player" and action ~= "HEAL" and not AJM.haveBeenHit then AJM.haveBeenHit = true AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.hitFirstTimeMessage, false ) end end end function AJM:GUILD_INVITE_REQUEST( event, inviter, guild, ... ) if AJM.db.autoDenyGuildInvites == true then DeclineGuild() GuildInviteFrame:Hide() AJM:JambaSendMessageToTeam( AJM.db.requestArea, L["I refused a guild invite to: X from: Y"]( guild, inviter ), false ) end end function AJM:DUEL_REQUESTED( event, challenger, ... ) if AJM.db.autoDenyDuels == true then CancelDuel() StaticPopup_Hide( "DUEL_REQUESTED" ) AJM:JambaSendMessageToTeam( AJM.db.requestArea, L["I refused a duel from: X"]( challenger ), false ) end end function AJM:RESURRECT_REQUEST( event, ... ) if AJM.db.autoAcceptResurrectRequest == true then AcceptResurrect() StaticPopup_Hide( "RESURRECT") StaticPopup_Hide( "RESURRECT_NO_SICKNESS" ) StaticPopup_Hide( "RESURRECT_NO_TIMER" ) StaticPopup_Hide( "SKINNED" ) StaticPopup_Hide( "SKINNED_REPOP" ) StaticPopup_Hide( "DEATH" ) end end -- EbonySum Accepts summons function AJM:CONFIRM_SUMMON( event, sender, location, ... ) local sender, location = GetSummonConfirmSummoner(), GetSummonConfirmAreaName() if AJM.db.autoAcceptSummonRequest == true then if GetSummonConfirmTimeLeft() > 0 then ConfirmSummon() StaticPopup_Hide("CONFIRM_SUMMON") AJM:JambaSendMessageToTeam( AJM.db.requestArea, L["I Accepted Summon From: X To: Y"]( sender, location ), false ) end end end function AJM:MERCHANT_SHOW( event, ... ) -- Does the user want to auto repair? if AJM.db.autoRepair == false then return end -- Can this merchant repair? if not CanMerchantRepair() then return end -- How much to repair? local repairCost, canRepair = GetRepairAllCost() if canRepair == nil then return end -- At least some cost... if repairCost > 0 then -- If allowed to use guild funds, then attempt to repair using guild funds. if AJM.db.autoRepairUseGuildFunds == true then if IsInGuild() and CanGuildBankRepair() then RepairAllItems( 1 ) end end -- After guild funds used, still need to repair? repairCost = GetRepairAllCost() -- At least some cost... if repairCost > 0 then -- How much money available? local moneyAvailable = GetMoney() -- More or equal money than cost? if moneyAvailable >= repairCost then -- Yes, repair. RepairAllItems() else -- Nope, tell the boss. AJM:JambaSendMessageToTeam( AJM.db.merchantArea, L["I do not have enough money to repair all my items."], false ) end end end if repairCost > 0 then -- Tell the boss how much that cost. local costString = JambaUtilities:FormatMoneyString( repairCost ) AJM:JambaSendMessageToTeam( AJM.db.merchantArea, L["Repairing cost me: X"]( costString ), false ) end end function AJM:UNIT_MANA( event, unitAffected, ... ) if AJM.db.warnWhenManaDropsBelowX == false then return end if unitAffected ~= "player" then return end local powerType, powerTypeString = UnitPowerType( "player" ) if powerTypeString ~= "MANA" then return end local currentMana = (UnitMana( "player" ) / UnitManaMax( "player" ) * 100) if AJM.toldMasterAboutMana == true then if currentMana >= tonumber( AJM.db.warnWhenManaDropsAmount ) then AJM.toldMasterAboutMana = false end else if currentMana < tonumber( AJM.db.warnWhenManaDropsAmount ) then AJM.toldMasterAboutMana = true AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.warnManaDropsMessage, false ) end end end function AJM:UNIT_HEALTH( event, unitAffected, ... ) if AJM.db.warnWhenHealthDropsBelowX == false then return end if unitAffected ~= "player" then return end local currentHealth = (UnitHealth( "player" ) / UnitHealthMax( "player" ) * 100) if AJM.toldMasterAboutHealth == true then if currentHealth >= tonumber( AJM.db.warnWhenHealthDropsAmount ) then AJM.toldMasterAboutHealth = false end else if currentHealth < tonumber( AJM.db.warnWhenHealthDropsAmount ) then AJM.toldMasterAboutHealth = true AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.warnHealthDropsMessage, false ) end end end function AJM:PLAYER_REGEN_ENABLED( event, ... ) AJM.haveBeenHit = false end function AJM:PLAYER_REGEN_DISABLED( event, ... ) AJM.haveBeenHit = false if AJM.db.warnTargetNotMasterEnterCombat == true then if JambaApi.IsCharacterTheMaster( AJM.characterName ) == false then local name, realm = UnitName( "target" ) local character = JambaUtilities:AddRealmToNameIfNotNil( name, realm ) if character ~= JambaApi.GetMasterName() then AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.warnTargetNotMasterMessage, false ) end end end if AJM.db.warnFocusNotMasterEnterCombat == true then if JambaApi.IsCharacterTheMaster( AJM.characterName ) == false then local name, realm = UnitName( "focus" ) local character = JambaUtilities:AddRealmToNameIfNotNil( name, realm ) if character ~= JambaApi.GetMasterName() then AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.warnFocusNotMasterMessage, false ) end end end end function AJM:ITEM_PUSH( event, ... ) if AJM.db.warnBagsFull == true then if UnitIsGhost( "player" ) then return end if UnitIsDead( "player" ) then return end local numberFreeSlots, numberTotalSlots = LibBagUtils:CountSlots( "BAGS", 0 ) if numberFreeSlots == 0 then if AJM.previousFreeBagSlotsCount ~= numberFreeSlots then AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.bagsFullMessage, false ) end end AJM.previousFreeBagSlotsCount = numberFreeSlots end end function AJM:UNIT_AURA( event, ... ) if AJM.db.warnAfk == true then if JambaUtilities:DoesThisCharacterHaveBuff( L["Inactive"] ) == true then AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.afkMessage, false ) end end end --Ebony CCed function AJM:LOSS_OF_CONTROL_ADDED( event, ... ) if AJM.db.warnCC == true then local eventIndex = C_LossOfControl.GetNumEvents() if eventIndex > 0 then local locType, spellID, text, iconTexture, startTime, timeRemaining, duration, lockoutSchool, priority, displayType = C_LossOfControl.GetEventInfo(eventIndex) --AJM:Print("LOSS OF CONTROL", eventIndex, text) -- Ebony testing AJM:JambaSendMessageToTeam( AJM.db.warningArea, AJM.db.CcMessage..L[" "]..text, false ) end end end function AJM:CreateJambaToonCurrencyListFrame() -- The frame. local frame = CreateFrame( "Frame", "JambaToonCurrencyListWindowFrame", UIParent ) frame.obj = AJM frame:SetFrameStrata( "BACKGROUND" ) frame:SetToplevel( false ) frame:SetClampedToScreen( true ) frame:EnableMouse( true ) frame:SetMovable( true ) frame:RegisterForDrag( "LeftButton" ) frame:SetScript( "OnDragStart", function( this ) if IsAltKeyDown() then this:StartMoving() end end ) frame:SetScript( "OnDragStop", function( this ) this:StopMovingOrSizing() local point, relativeTo, relativePoint, xOffset, yOffset = this:GetPoint() AJM.db.currencyFramePoint = point AJM.db.currencyFrameRelativePoint = relativePoint AJM.db.currencyFrameXOffset = xOffset AJM.db.currencyFrameYOffset = yOffset end ) frame:SetWidth( 500 ) frame:SetHeight( 200 ) frame:ClearAllPoints() frame:SetPoint( AJM.db.currencyFramePoint, UIParent, AJM.db.currencyFrameRelativePoint, AJM.db.currencyFrameXOffset, AJM.db.currencyFrameYOffset ) frame:SetBackdrop( { bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", tile = true, tileSize = 10, edgeSize = 10, insets = { left = 3, right = 3, top = 3, bottom = 3 } } ) -- Create the title for the frame. local titleName = frame:CreateFontString( "JambaToonCurrencyListWindowFrameTitleText", "OVERLAY", "GameFontNormal" ) titleName:SetPoint( "TOPLEFT", frame, "TOPLEFT", 3, -8 ) titleName:SetTextColor( NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1.0 ) titleName:SetText( L["Currency"] ) titleName:SetWidth( 200 ) titleName:SetJustifyH( "LEFT" ) titleName:SetWordWrap( false ) frame.titleName = titleName -- Create the headings. local left = 10 local spacing = 50 local width = 50 local top = -30 local parentFrame = frame local r = 1.0 local g = 0.96 local b = 0.41 local a = 1.0 -- Set the characters name font string. local frameCharacterName = AJM.globalCurrencyFramePrefix.."TitleCharacterName" local frameCharacterNameText = parentFrame:CreateFontString( frameCharacterName.."Text", "OVERLAY", "GameFontNormal" ) frameCharacterNameText:SetText( L["Toon"] ) frameCharacterNameText:SetTextColor( r, g, b, a ) frameCharacterNameText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameCharacterNameText:SetWidth( width * 2.5 ) frameCharacterNameText:SetJustifyH( "LEFT" ) frame.characterNameText = frameCharacterNameText left = left + (spacing * 2) -- Set the Gold font string. local frameGold = AJM.globalCurrencyFramePrefix.."TitleGold" local frameGoldText = parentFrame:CreateFontString( frameGold.."Text", "OVERLAY", "GameFontNormal" ) frameGoldText:SetText( L["Gold"] ) frameGoldText:SetTextColor( r, g, b, a ) frameGoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameGoldText:SetWidth( width ) frameGoldText:SetJustifyH( "CENTER" ) frame.GoldText = frameGoldText left = left + spacing -- Set the HonorPoints font string. local frameHonorPoints = AJM.globalCurrencyFramePrefix.."TitleHonorPoints" local frameHonorPointsText = parentFrame:CreateFontString( frameHonorPoints.."Text", "OVERLAY", "GameFontNormal" ) frameHonorPointsText:SetText( L["HP"] ) frameHonorPointsText:SetTextColor( r, g, b, a ) frameHonorPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameHonorPointsText:SetWidth( width ) frameHonorPointsText:SetJustifyH( "CENTER" ) frame.HonorPointsText = frameHonorPointsText left = left + spacing -- Set the ConquestPoints font string. local frameConquestPoints = AJM.globalCurrencyFramePrefix.."TitleConquestPoints" local frameConquestPointsText = parentFrame:CreateFontString( frameConquestPoints.."Text", "OVERLAY", "GameFontNormal" ) frameConquestPointsText:SetText( L["CP"] ) frameConquestPointsText:SetTextColor( r, g, b, a ) frameConquestPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameConquestPointsText:SetWidth( width ) frameConquestPointsText:SetJustifyH( "CENTER" ) frame.ConquestPointsText = frameConquestPointsText left = left + spacing -- Set the Valor font string. local frameValor = AJM.globalCurrencyFramePrefix.."Valor" local frameValorText = parentFrame:CreateFontString( frameValor.."Text", "OVERLAY", "GameFontNormal" ) frameValorText:SetText( L["VP"] ) frameValorText:SetTextColor( r, g, b, a ) frameValorText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameValorText:SetWidth( width ) frameValorText:SetJustifyH( "CENTER" ) frame.ValorText = frameValorText left = left + spacing -- Set the TolBaradCommendation font string. local frameTolBaradCommendation = AJM.globalCurrencyFramePrefix.."TitleTolBaradCommendation" local frameTolBaradCommendationText = parentFrame:CreateFontString( frameTolBaradCommendation.."Text", "OVERLAY", "GameFontNormal" ) frameTolBaradCommendationText:SetText( L["TBC"] ) frameTolBaradCommendationText:SetTextColor( r, g, b, a ) frameTolBaradCommendationText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTolBaradCommendationText:SetWidth( width ) frameTolBaradCommendationText:SetJustifyH( "CENTER" ) frame.TolBaradCommendationText = frameTolBaradCommendationText left = left + spacing -- Set the ChampionsSeal font string. local frameChampionsSeal = AJM.globalCurrencyFramePrefix.."TitleChampionsSeal" local frameChampionsSealText = parentFrame:CreateFontString( frameChampionsSeal.."Text", "OVERLAY", "GameFontNormal" ) frameChampionsSealText:SetText( L["CS"] ) frameChampionsSealText:SetTextColor( r, g, b, a ) frameChampionsSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameChampionsSealText:SetWidth( width ) frameChampionsSealText:SetJustifyH( "CENTER" ) frame.ChampionsSealText = frameChampionsSealText left = left + spacing -- Set the IllustriousJewelcraftersToken font string. local frameIllustriousJewelcraftersToken = AJM.globalCurrencyFramePrefix.."TitleIllustriousJewelcraftersToken" local frameIllustriousJewelcraftersTokenText = parentFrame:CreateFontString( frameIllustriousJewelcraftersToken.."Text", "OVERLAY", "GameFontNormal" ) frameIllustriousJewelcraftersTokenText:SetText( L["IJT"] ) frameIllustriousJewelcraftersTokenText:SetTextColor( r, g, b, a ) frameIllustriousJewelcraftersTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameIllustriousJewelcraftersTokenText:SetWidth( width ) frameIllustriousJewelcraftersTokenText:SetJustifyH( "CENTER" ) frame.IllustriousJewelcraftersTokenText = frameIllustriousJewelcraftersTokenText left = left + spacing -- Set the DalaranJewelcraftingToken font string. local frameDalaranJewelcraftingToken = AJM.globalCurrencyFramePrefix.."TitleDalaranJewelcraftingToken" local frameDalaranJewelcraftingTokenText = parentFrame:CreateFontString( frameDalaranJewelcraftingToken.."Text", "OVERLAY", "GameFontNormal" ) frameDalaranJewelcraftingTokenText:SetText( L["DJT"] ) frameDalaranJewelcraftingTokenText:SetTextColor( r, g, b, a ) frameDalaranJewelcraftingTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameDalaranJewelcraftingTokenText:SetWidth( width ) frameDalaranJewelcraftingTokenText:SetJustifyH( "CENTER" ) frame.DalaranJewelcraftingTokenText = frameDalaranJewelcraftingTokenText left = left + spacing -- Set the IronpawToken font string. local frameIronpawToken = AJM.globalCurrencyFramePrefix.."TitleIronpawToken" local frameIronpawTokenText = parentFrame:CreateFontString( frameIronpawToken.."Text", "OVERLAY", "GameFontNormal" ) frameIronpawTokenText:SetText( L["IT"] ) frameIronpawTokenText:SetTextColor( r, g, b, a ) frameIronpawTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameIronpawTokenText:SetWidth( width ) frameIronpawTokenText:SetJustifyH( "CENTER" ) frame.IronpawTokenText = frameIronpawTokenText left = left + spacing -- Set the LesserCharmOfGoodFortune font string. local frameLesserCharmOfGoodFortune = AJM.globalCurrencyFramePrefix.."TitleLesserCharmOfGoodFortune" local frameLesserCharmOfGoodFortuneText = parentFrame:CreateFontString( frameLesserCharmOfGoodFortune.."Text", "OVERLAY", "GameFontNormal" ) frameLesserCharmOfGoodFortuneText:SetText( L["LCGF"] ) frameLesserCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) frameLesserCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameLesserCharmOfGoodFortuneText:SetWidth( width ) frameLesserCharmOfGoodFortuneText:SetJustifyH( "CENTER" ) frame.LesserCharmOfGoodFortuneText = frameLesserCharmOfGoodFortuneText left = left + spacing -- Set the ElderCharmOfGoodFortune font string. local frameElderCharmOfGoodFortune = AJM.globalCurrencyFramePrefix.."TitleElderCharmOfGoodFortune" local frameElderCharmOfGoodFortuneText = parentFrame:CreateFontString( frameElderCharmOfGoodFortune.."Text", "OVERLAY", "GameFontNormal" ) frameElderCharmOfGoodFortuneText:SetText( L["ECGF"] ) frameElderCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) frameElderCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameElderCharmOfGoodFortuneText:SetWidth( width ) frameElderCharmOfGoodFortuneText:SetJustifyH( "CENTER" ) frame.ElderCharmOfGoodFortuneText = frameElderCharmOfGoodFortuneText left = left + spacing -- Set the MoguRuneOfFate font string. local frameMoguRuneOfFate = AJM.globalCurrencyFramePrefix.."TitleMoguRuneOfFate" local frameMoguRuneOfFateText = parentFrame:CreateFontString( frameMoguRuneOfFate.."Text", "OVERLAY", "GameFontNormal" ) frameMoguRuneOfFateText:SetText( L["MROF"] ) frameMoguRuneOfFateText:SetTextColor( r, g, b, a ) frameMoguRuneOfFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameMoguRuneOfFateText:SetWidth( width ) frameMoguRuneOfFateText:SetJustifyH( "CENTER" ) frame.MoguRuneOfFateText = frameMoguRuneOfFateText left = left + spacing -- Set the WarforgedSeal font string. local frameWarforgedSeal = AJM.globalCurrencyFramePrefix.."TitleWarforgedSeal" local frameWarforgedSealText = parentFrame:CreateFontString( frameWarforgedSeal.."Text", "OVERLAY", "GameFontNormal" ) frameWarforgedSealText:SetText( L["WS"] ) frameWarforgedSealText:SetTextColor( r, g, b, a ) frameWarforgedSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameWarforgedSealText:SetWidth( width ) frameWarforgedSealText:SetJustifyH( "CENTER" ) frame.WarforgedSealText = frameWarforgedSealText left = left + spacing -- Set the BloodyCoin font string. local frameBloodyCoin = AJM.globalCurrencyFramePrefix.."TitleBloodyCoin" local frameBloodyCoinText = parentFrame:CreateFontString( frameBloodyCoin.."Text", "OVERLAY", "GameFontNormal" ) frameBloodyCoinText:SetText( L["BC"] ) frameBloodyCoinText:SetTextColor( r, g, b, a ) frameBloodyCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameBloodyCoinText:SetWidth( width ) frameBloodyCoinText:SetJustifyH( "CENTER" ) frame.BloodyCoinText = frameBloodyCoinText left = left + spacing -- Set the TimelessCoin font string. local frameTimelessCoin = AJM.globalCurrencyFramePrefix.."TitleTimelessCoin" local frameTimelessCoinText = parentFrame:CreateFontString( frameTimelessCoin.."Text", "OVERLAY", "GameFontNormal" ) frameTimelessCoinText:SetText( L["TC"] ) frameTimelessCoinText:SetTextColor( r, g, b, a ) frameTimelessCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTimelessCoinText:SetWidth( width ) frameTimelessCoinText:SetJustifyH( "CENTER" ) frame.TimelessCoinText = frameTimelessCoinText left = left + spacing --ebony New WoD Currency -- Set the GarrisonResources font string. local frameGarrisonResources = AJM.globalCurrencyFramePrefix.."TitleGarrisonResources" local frameGarrisonResourcesText = parentFrame:CreateFontString( frameGarrisonResources .."Text", "OVERLAY", "GameFontNormal" ) frameGarrisonResourcesText:SetText( L["GR"] ) frameGarrisonResourcesText:SetTextColor( r, g, b, a ) frameGarrisonResourcesText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameGarrisonResourcesText:SetWidth( width ) frameGarrisonResourcesText:SetJustifyH( "CENTER" ) frame.GarrisonResourcesText = frameGarrisonResourcesText left = left + spacing -- Set the Tempered Fate font string. local frameTemperedFate = AJM.globalCurrencyFramePrefix.."TitleTemperedFate" local frameTemperedFateText = parentFrame:CreateFontString( frameTemperedFate .."Text", "OVERLAY", "GameFontNormal" ) frameTemperedFateText:SetText( L["SoT"] ) frameTemperedFateText:SetTextColor( r, g, b, a ) frameTemperedFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTemperedFateText:SetWidth( width ) frameTemperedFateText:SetJustifyH( "CENTER" ) frame.TemperedFateText = frameTemperedFateText left = left + spacing -- Set the Apexis Crystal font string. local frameApexisCrystal = AJM.globalCurrencyFramePrefix.."TitleApexisCrystal" local frameApexisCrystalText = parentFrame:CreateFontString( frameApexisCrystal .."Text", "OVERLAY", "GameFontNormal" ) frameApexisCrystalText:SetText( L["AC"] ) frameApexisCrystalText:SetTextColor( r, g, b, a ) frameApexisCrystalText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameApexisCrystalText:SetWidth( width ) frameApexisCrystalText:SetJustifyH( "CENTER" ) frame.ApexisCrystalText = frameApexisCrystalText left = left + spacing -- Set the Darkmoon Prize font string. local frameDarkmoon = AJM.globalCurrencyFramePrefix.."TitleDarkmoon" local frameDarkmoonText = parentFrame:CreateFontString( frameDarkmoon .."Text", "OVERLAY", "GameFontNormal" ) frameDarkmoonText:SetText( L["DPT"] ) frameDarkmoonText:SetTextColor( r, g, b, a ) frameDarkmoonText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameDarkmoonText:SetWidth( width ) frameDarkmoonText:SetJustifyH( "CENTER" ) frame.DarkmoonText = frameDarkmoonText left = left + spacing -- Set the Oil font string. local frameOil = AJM.globalCurrencyFramePrefix.."TitleOil" local frameOilText = parentFrame:CreateFontString( frameOil .."Text", "OVERLAY", "GameFontNormal" ) frameOilText:SetText( L["OIL"] ) frameOilText:SetTextColor( r, g, b, a ) frameOilText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameOilText:SetWidth( width ) frameOilText:SetJustifyH( "CENTER" ) frame.OilText = frameOilText left = left + spacing -- Set the InevitableFate Prize font string. local frameInevitableFate = AJM.globalCurrencyFramePrefix.."TitleInevitableFate" local frameInevitableFateText = parentFrame:CreateFontString( frameInevitableFate .."Text", "OVERLAY", "GameFontNormal" ) frameInevitableFateText:SetText( L["SoI"] ) frameInevitableFateText:SetTextColor( r, g, b, a ) frameInevitableFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameInevitableFateText:SetWidth( width ) frameInevitableFateText:SetJustifyH( "CENTER" ) frame.InevitableFateText = frameInevitableFateText left = left + spacing -- Set the Time Walker font string. local frameTimeWalker = AJM.globalCurrencyFramePrefix.."TitleTimewalker" local frameTimeWalkerText = parentFrame:CreateFontString( frameTimeWalker .."Text", "OVERLAY", "GameFontNormal" ) frameTimeWalkerText:SetText( L["SoI"] ) frameTimeWalkerText:SetTextColor( r, g, b, a ) frameTimeWalkerText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTimeWalkerText:SetWidth( width ) frameTimeWalkerText:SetJustifyH( "CENTER" ) frame.TimeWalkerText = frameTimeWalkerText left = left + spacing -- Set the Total Gold font string. left = 10 top = -50 local frameTotalGoldTitle = AJM.globalCurrencyFramePrefix.."TitleTotalGold" local frameTotalGoldTitleText = parentFrame:CreateFontString( frameTotalGoldTitle.."Text", "OVERLAY", "GameFontNormal" ) frameTotalGoldTitleText:SetText( L["Total"] ) frameTotalGoldTitleText:SetTextColor( r, g, b, a ) frameTotalGoldTitleText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTotalGoldTitleText:SetWidth( width ) frameTotalGoldTitleText:SetJustifyH( "LEFT" ) frame.TotalGoldTitleText = frameTotalGoldTitleText local frameTotalGoldGuildTitle = AJM.globalCurrencyFramePrefix.."TitleTotalGoldGuild" local frameTotalGoldGuildTitleText = parentFrame:CreateFontString( frameTotalGoldGuildTitle.."Text", "OVERLAY", "GameFontNormal" ) frameTotalGoldGuildTitleText:SetText( L["Guild"] ) frameTotalGoldGuildTitleText:SetTextColor( r, g, b, a ) frameTotalGoldGuildTitleText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTotalGoldGuildTitleText:SetWidth( width ) frameTotalGoldGuildTitleText:SetJustifyH( "LEFT" ) frame.TotalGoldGuildTitleText = frameTotalGoldGuildTitleText local frameTotalGold = AJM.globalCurrencyFramePrefix.."TotalGold" local frameTotalGoldText = parentFrame:CreateFontString( frameTotalGold.."Text", "OVERLAY", "GameFontNormal" ) frameTotalGoldText:SetText( "0" ) frameTotalGoldText:SetTextColor( r, g, b, a ) frameTotalGoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTotalGoldText:SetWidth( width ) frameTotalGoldText:SetJustifyH( "RIGHT" ) frame.TotalGoldText = frameTotalGoldText local frameTotalGoldGuild = AJM.globalCurrencyFramePrefix.."TotalGoldGuild" local frameTotalGoldGuildText = parentFrame:CreateFontString( frameTotalGoldGuild.."Text", "OVERLAY", "GameFontNormal" ) frameTotalGoldGuildText:SetText( "0" ) frameTotalGoldGuildText:SetTextColor( r, g, b, a ) frameTotalGoldGuildText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTotalGoldGuildText:SetWidth( width ) frameTotalGoldGuildText:SetJustifyH( "RIGHT" ) frame.TotalGoldGuildText = frameTotalGoldGuildText -- Set frame width. frame:SetWidth( left + 10 ) -- Set transparency of the the frame (and all its children). frame:SetAlpha( AJM.db.currencyFrameAlpha ) -- Set scale. frame:SetScale( AJM.db.currencyScale ) -- Set the global frame reference for this frame. JambaToonCurrencyListFrame = frame -- Close. local closeButton = CreateFrame( "Button", AJM.globalCurrencyFramePrefix.."ButtonClose", frame, "UIPanelCloseButton" ) closeButton:SetScript( "OnClick", function() JambaToonCurrencyListFrame:Hide() end ) closeButton:SetPoint( "TOPRIGHT", frame, "TOPRIGHT", 0, 0 ) frame.closeButton = closeButton -- Update. local updateButton = CreateFrame( "Button", AJM.globalCurrencyFramePrefix.."ButtonUpdate", frame, "UIPanelButtonTemplate" ) updateButton:SetScript( "OnClick", function() AJM:JambaToonRequestCurrency() end ) updateButton:SetPoint( "TOPRIGHT", frame, "TOPRIGHT", -30, -4 ) updateButton:SetHeight( 22 ) updateButton:SetWidth( 55 ) updateButton:SetText( L["Update"] ) frame.updateButton = updateButton AJM:CurrencyListSetHeight() AJM:SettingsUpdateBorderStyle() AJM:CurrencyUpdateWindowLock() JambaToonCurrencyListFrame:Hide() AJM.currencyListFrameCreated = true end function AJM:CurrencyUpdateWindowLock() if AJM.db.currencyLockWindow == false then JambaToonCurrencyListFrame:EnableMouse( true ) else JambaToonCurrencyListFrame:EnableMouse( false ) end end function AJM:SettingsUpdateBorderStyle() local borderStyle = AJM.SharedMedia:Fetch( "border", AJM.db.currencyBorderStyle ) local backgroundStyle = AJM.SharedMedia:Fetch( "background", AJM.db.currencyBackgroundStyle ) local frame = JambaToonCurrencyListFrame frame:SetBackdrop( { bgFile = backgroundStyle, edgeFile = borderStyle, tile = true, tileSize = frame:GetWidth(), edgeSize = 10, insets = { left = 3, right = 3, top = 3, bottom = 3 } } ) frame:SetBackdropColor( AJM.db.currencyFrameBackgroundColourR, AJM.db.currencyFrameBackgroundColourG, AJM.db.currencyFrameBackgroundColourB, AJM.db.currencyFrameBackgroundColourA ) frame:SetBackdropBorderColor( AJM.db.currencyFrameBorderColourR, AJM.db.currencyFrameBorderColourG, AJM.db.currencyFrameBorderColourB, AJM.db.currencyFrameBorderColourA ) frame:SetAlpha( AJM.db.currencyFrameAlpha ) end function AJM:CurrencyListSetHeight() local additionalLines = 0 local addHeight = 0 if AJM.db.currGold == true then if AJM.db.currGoldInGuildBank == true then additionalLines = 2 addHeight = 7 else additionalLines = 1 addHeight = 5 end end JambaToonCurrencyListFrame:SetHeight( 56 + (( JambaApi.GetTeamListMaximumOrderOnline() + additionalLines) * 15) + addHeight ) end function AJM:CurrencyListSetColumnWidth() local nameWidth = AJM.db.currencyNameWidth local pointsWidth = AJM.db.currencyPointsWidth local goldWidth = AJM.db.currencyGoldWidth local spacingWidth = AJM.db.currencySpacingWidth local frameHorizontalSpacing = 10 local numberOfPointsColumns = 0 local parentFrame = JambaToonCurrencyListFrame local headingRowTopPoint = -30 local left = frameHorizontalSpacing local haveGold = 0 -- Heading rows. parentFrame.characterNameText:SetWidth( nameWidth ) parentFrame.characterNameText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + nameWidth + spacingWidth if AJM.db.currGold == true then parentFrame.GoldText:SetWidth( goldWidth ) parentFrame.GoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + goldWidth + (spacingWidth * 3) parentFrame.GoldText:Show() haveGold = 1 else parentFrame.GoldText:Hide() haveGold = 0 end if AJM.db.currHonorPoints == true then parentFrame.HonorPointsText:SetWidth( pointsWidth ) parentFrame.HonorPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.HonorPointsText:Show() else parentFrame.HonorPointsText:Hide() end if AJM.db.currConquestPoints == true then parentFrame.ConquestPointsText:SetWidth( pointsWidth ) parentFrame.ConquestPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.ConquestPointsText:Show() else parentFrame.ConquestPointsText:Hide() end if AJM.db.currValor == true then parentFrame.ValorText:SetWidth( pointsWidth ) parentFrame.ValorText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.ValorText:Show() else parentFrame.ValorText:Hide() end if AJM.db.currTolBaradCommendation == true then parentFrame.TolBaradCommendationText:SetWidth( pointsWidth ) parentFrame.TolBaradCommendationText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.TolBaradCommendationText:Show() else parentFrame.TolBaradCommendationText:Hide() end if AJM.db.currChampionsSeal == true then parentFrame.ChampionsSealText:SetWidth( pointsWidth ) parentFrame.ChampionsSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.ChampionsSealText:Show() else parentFrame.ChampionsSealText:Hide() end if AJM.db.currIllustriousJewelcraftersToken == true then parentFrame.IllustriousJewelcraftersTokenText:SetWidth( pointsWidth ) parentFrame.IllustriousJewelcraftersTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.IllustriousJewelcraftersTokenText:Show() else parentFrame.IllustriousJewelcraftersTokenText:Hide() end if AJM.db.currDalaranJewelcraftingToken == true then parentFrame.DalaranJewelcraftingTokenText:SetWidth( pointsWidth ) parentFrame.DalaranJewelcraftingTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.DalaranJewelcraftingTokenText:Show() else parentFrame.DalaranJewelcraftingTokenText:Hide() end if AJM.db.currIronpawToken == true then parentFrame.IronpawTokenText:SetWidth( pointsWidth ) parentFrame.IronpawTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.IronpawTokenText:Show() else parentFrame.IronpawTokenText:Hide() end if AJM.db.currLesserCharmOfGoodFortune == true then parentFrame.LesserCharmOfGoodFortuneText:SetWidth( pointsWidth ) parentFrame.LesserCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.LesserCharmOfGoodFortuneText:Show() else parentFrame.LesserCharmOfGoodFortuneText:Hide() end if AJM.db.currElderCharmOfGoodFortune == true then parentFrame.ElderCharmOfGoodFortuneText:SetWidth( pointsWidth ) parentFrame.ElderCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.ElderCharmOfGoodFortuneText:Show() else parentFrame.ElderCharmOfGoodFortuneText:Hide() end if AJM.db.currMoguRuneOfFate == true then parentFrame.MoguRuneOfFateText:SetWidth( pointsWidth ) parentFrame.MoguRuneOfFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.MoguRuneOfFateText:Show() else parentFrame.MoguRuneOfFateText:Hide() end if AJM.db.currWarforgedSeal == true then parentFrame.WarforgedSealText:SetWidth( pointsWidth ) parentFrame.WarforgedSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.WarforgedSealText:Show() else parentFrame.WarforgedSealText:Hide() end if AJM.db.currBloodyCoin == true then parentFrame.BloodyCoinText:SetWidth( pointsWidth ) parentFrame.BloodyCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.BloodyCoinText:Show() else parentFrame.BloodyCoinText:Hide() end if AJM.db.currTimelessCoin == true then parentFrame.TimelessCoinText:SetWidth( pointsWidth ) parentFrame.TimelessCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.TimelessCoinText:Show() else parentFrame.TimelessCoinText:Hide() end --ebony New WoD Currency if AJM.db.currGarrisonResources == true then parentFrame.GarrisonResourcesText:SetWidth( pointsWidth ) parentFrame.GarrisonResourcesText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.GarrisonResourcesText:Show() else parentFrame.GarrisonResourcesText:Hide() end if AJM.db.currTemperedFate == true then parentFrame.TemperedFateText:SetWidth( pointsWidth ) parentFrame.TemperedFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.TemperedFateText:Show() else parentFrame.TemperedFateText:Hide() end if AJM.db.currApexisCrystal == true then parentFrame.ApexisCrystalText:SetWidth( pointsWidth ) parentFrame.ApexisCrystalText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.ApexisCrystalText:Show() else parentFrame.ApexisCrystalText:Hide() end if AJM.db.currDarkmoon == true then parentFrame.DarkmoonText:SetWidth( pointsWidth ) parentFrame.DarkmoonText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.DarkmoonText:Show() else parentFrame.DarkmoonText:Hide() end if AJM.db.currInevitableFate == true then parentFrame.InevitableFateText:SetWidth( pointsWidth ) parentFrame.InevitableFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.InevitableFateText:Show() else parentFrame.InevitableFateText:Hide() end if AJM.db.currOil == true then parentFrame.OilText:SetWidth( pointsWidth ) parentFrame.OilText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.OilText:Show() else parentFrame.OilText:Hide() end if AJM.db.currTimeWalker == true then parentFrame.TimeWalkerText:SetWidth( pointsWidth ) parentFrame.TimeWalkerText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, headingRowTopPoint ) left = left + pointsWidth + spacingWidth numberOfPointsColumns = numberOfPointsColumns + 1 parentFrame.TimeWalkerText:Show() else parentFrame.TimeWalkerText:Hide() end -- Character rows. for characterName, currencyFrameCharacterInfo in pairs( AJM.currencyFrameCharacterInfo ) do --if JambaPrivate.Team.GetCharacterOnlineStatus (characterName) == false then --AJM.Print("offline", characterName) -- currencyFrameCharacterInfo.characterNameText:hide() --end local left = frameHorizontalSpacing local characterRowTopPoint = currencyFrameCharacterInfo.characterRowTopPoint currencyFrameCharacterInfo.characterNameText:SetWidth( nameWidth ) currencyFrameCharacterInfo.characterNameText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + nameWidth + spacingWidth if AJM.db.currGold == true then currencyFrameCharacterInfo.GoldText:SetWidth( goldWidth ) currencyFrameCharacterInfo.GoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + goldWidth + (spacingWidth * 3) currencyFrameCharacterInfo.GoldText:Show() else currencyFrameCharacterInfo.GoldText:Hide() end if AJM.db.currHonorPoints == true then currencyFrameCharacterInfo.HonorPointsText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.HonorPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.HonorPointsText:Show() else currencyFrameCharacterInfo.HonorPointsText:Hide() end if AJM.db.currConquestPoints == true then currencyFrameCharacterInfo.ConquestPointsText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.ConquestPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.ConquestPointsText:Show() else currencyFrameCharacterInfo.ConquestPointsText:Hide() end if AJM.db.currValor == true then currencyFrameCharacterInfo.ValorText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.ValorText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.ValorText:Show() else currencyFrameCharacterInfo.ValorText:Hide() end if AJM.db.currTolBaradCommendation == true then currencyFrameCharacterInfo.TolBaradCommendationText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.TolBaradCommendationText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.TolBaradCommendationText:Show() else currencyFrameCharacterInfo.TolBaradCommendationText:Hide() end if AJM.db.currChampionsSeal == true then currencyFrameCharacterInfo.ChampionsSealText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.ChampionsSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.ChampionsSealText:Show() else currencyFrameCharacterInfo.ChampionsSealText:Hide() end if AJM.db.currIllustriousJewelcraftersToken == true then currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:Show() else currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:Hide() end if AJM.db.currDalaranJewelcraftingToken == true then currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:Show() else currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:Hide() end if AJM.db.currIronpawToken == true then currencyFrameCharacterInfo.IronpawTokenText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.IronpawTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.IronpawTokenText:Show() else currencyFrameCharacterInfo.IronpawTokenText:Hide() end if AJM.db.currLesserCharmOfGoodFortune == true then currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:Show() else currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:Hide() end if AJM.db.currElderCharmOfGoodFortune == true then currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:Show() else currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:Hide() end if AJM.db.currMoguRuneOfFate == true then currencyFrameCharacterInfo.MoguRuneOfFateText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.MoguRuneOfFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.MoguRuneOfFateText:Show() else currencyFrameCharacterInfo.MoguRuneOfFateText:Hide() end if AJM.db.currWarforgedSeal == true then currencyFrameCharacterInfo.WarforgedSealText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.WarforgedSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.WarforgedSealText:Show() else currencyFrameCharacterInfo.WarforgedSealText:Hide() end if AJM.db.currBloodyCoin == true then currencyFrameCharacterInfo.BloodyCoinText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.BloodyCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.BloodyCoinText:Show() else currencyFrameCharacterInfo.BloodyCoinText:Hide() end if AJM.db.currTimelessCoin == true then currencyFrameCharacterInfo.TimelessCoinText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.TimelessCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.TimelessCoinText:Show() else currencyFrameCharacterInfo.TimelessCoinText:Hide() end --ebony New WoD Currency if AJM.db.currGarrisonResources == true then currencyFrameCharacterInfo.GarrisonResourcesText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.GarrisonResourcesText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.GarrisonResourcesText:Show() else currencyFrameCharacterInfo.GarrisonResourcesText:Hide() end if AJM.db.currTemperedFate == true then currencyFrameCharacterInfo.TemperedFateText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.TemperedFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.TemperedFateText:Show() else currencyFrameCharacterInfo.TemperedFateText:Hide() end if AJM.db.currApexisCrystal == true then currencyFrameCharacterInfo.ApexisCrystalText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.ApexisCrystalText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.ApexisCrystalText:Show() else currencyFrameCharacterInfo.ApexisCrystalText:Hide() end if AJM.db.currDarkmoon == true then currencyFrameCharacterInfo.DarkmoonText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.DarkmoonText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.DarkmoonText:Show() else currencyFrameCharacterInfo.DarkmoonText:Hide() end if AJM.db.currInevitableFate == true then currencyFrameCharacterInfo.InevitableFateText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.InevitableFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.InevitableFateText:Show() else currencyFrameCharacterInfo.InevitableFateText:Hide() end if AJM.db.currOil == true then currencyFrameCharacterInfo.OilText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.OilText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.OilText:Show() else currencyFrameCharacterInfo.OilText:Hide() end if AJM.db.currTimeWalker == true then currencyFrameCharacterInfo.TimeWalkerText:SetWidth( pointsWidth ) currencyFrameCharacterInfo.TimeWalkerText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, characterRowTopPoint ) left = left + pointsWidth + spacingWidth currencyFrameCharacterInfo.TimeWalkerText:Show() else currencyFrameCharacterInfo.TimeWalkerText:Hide() end end -- Parent frame width and title. local finalParentWidth = frameHorizontalSpacing + nameWidth + spacingWidth + (haveGold * (goldWidth + (spacingWidth * 3))) + (numberOfPointsColumns * (pointsWidth + spacingWidth)) + frameHorizontalSpacing if finalParentWidth < 95 then finalParentWidth = 95 end local widthOfCloseAndUpdateButtons = 70 parentFrame.titleName:SetWidth( finalParentWidth - widthOfCloseAndUpdateButtons - frameHorizontalSpacing - frameHorizontalSpacing ) parentFrame.titleName:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", frameHorizontalSpacing, -9 ) if AJM.db.currGold == true then if numberOfPointsColumns > 1 then parentFrame.titleName:SetText( L["Jamba Currency"] ) else parentFrame.titleName:SetText( L["Currency"] ) end else if numberOfPointsColumns < 2 then parentFrame.titleName:SetText( "" ) end if numberOfPointsColumns == 2 then parentFrame.titleName:SetText( L["Curr"] ) end if (numberOfPointsColumns >= 3) and (numberOfPointsColumns <= 4) then parentFrame.titleName:SetText( L["Currency"] ) end if numberOfPointsColumns > 4 then parentFrame.titleName:SetText( L["Jamba Currency"] ) end end parentFrame:SetWidth( finalParentWidth ) -- Total Gold. local nameLeft = frameHorizontalSpacing local goldLeft = frameHorizontalSpacing + nameWidth + spacingWidth --local guildTop = -35 - ((JambaApi.GetTeamListMaximumOrder() + 1) * 15) - 5 --local goldTop = -35 - ((JambaApi.GetTeamListMaximumOrder() + 1) * 15) - 7 local guildTop = -35 - ((JambaApi.GetTeamListMaximumOrderOnline() + 1) * 15) - 5 local goldTop = -35 - ((JambaApi.GetTeamListMaximumOrderOnline() + 1) * 15) - 7 if AJM.db.currGold == true then if AJM.db.currGoldInGuildBank == true then parentFrame.TotalGoldGuildTitleText:SetWidth( nameWidth ) parentFrame.TotalGoldGuildTitleText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", nameLeft, guildTop ) parentFrame.TotalGoldGuildTitleText:Show() parentFrame.TotalGoldGuildText:SetWidth( goldWidth ) parentFrame.TotalGoldGuildText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", goldLeft, guildTop ) parentFrame.TotalGoldGuildText:Show() --goldTop = -35 - ((JambaApi.GetTeamListMaximumOrder() + 2) * 15) - 5 goldTop = -35 - ((JambaApi.GetTeamListMaximumOrderOnline() + 2) * 15) - 5 else parentFrame.TotalGoldGuildTitleText:Hide() parentFrame.TotalGoldGuildText:Hide() end parentFrame.TotalGoldTitleText:SetWidth( nameWidth ) parentFrame.TotalGoldTitleText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", nameLeft, goldTop ) parentFrame.TotalGoldTitleText:Show() parentFrame.TotalGoldText:SetWidth( goldWidth ) parentFrame.TotalGoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", goldLeft, goldTop ) parentFrame.TotalGoldText:Show() else parentFrame.TotalGoldTitleText:Hide() parentFrame.TotalGoldText:Hide() parentFrame.TotalGoldGuildTitleText:Hide() parentFrame.TotalGoldGuildText:Hide() end end function AJM:CreateJambaCurrencyFrameInfo( characterName, parentFrame ) --AJM.Print("makelist", characterName) local left = 10 local spacing = 50 local width = 50 --local top = -35 + (-15 * JambaApi.GetPositionForCharacterName( characterName )) local top = -35 + (-15 * JambaApi.GetPositionForCharacterNameOnline( characterName) ) -- Create the table to hold the status bars for this character. AJM.currencyFrameCharacterInfo[characterName] = {} -- Get the character info table. local currencyFrameCharacterInfo = AJM.currencyFrameCharacterInfo[characterName] currencyFrameCharacterInfo.characterRowTopPoint = top -- Set the characters name font string. local frameCharacterName = AJM.globalCurrencyFramePrefix.."CharacterName" local frameCharacterNameText = parentFrame:CreateFontString( frameCharacterName.."Text", "OVERLAY", "GameFontNormal" ) frameCharacterNameText:SetText( Ambiguate( characterName , "none" ) ) frameCharacterNameText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameCharacterNameText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameCharacterNameText:SetWidth( width * 2.5 ) frameCharacterNameText:SetJustifyH( "LEFT" ) currencyFrameCharacterInfo.characterNameText = frameCharacterNameText left = left + (spacing * 2) -- Set the Gold font string. local frameGold = AJM.globalCurrencyFramePrefix.."Gold" local frameGoldText = parentFrame:CreateFontString( frameGold.."Text", "OVERLAY", "GameFontNormal" ) frameGoldText:SetText( "0" ) frameGoldText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameGoldText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameGoldText:SetWidth( width ) frameGoldText:SetJustifyH( "RIGHT" ) currencyFrameCharacterInfo.GoldText = frameGoldText left = left + spacing -- Set the HonorPoints font string. local frameHonorPoints = AJM.globalCurrencyFramePrefix.."HonorPoints" local frameHonorPointsText = parentFrame:CreateFontString( frameHonorPoints.."Text", "OVERLAY", "GameFontNormal" ) frameHonorPointsText:SetText( "0" ) frameHonorPointsText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameHonorPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameHonorPointsText:SetWidth( width ) frameHonorPointsText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.HonorPointsText = frameHonorPointsText left = left + spacing -- Set the ConquestPoints font string. local frameConquestPoints = AJM.globalCurrencyFramePrefix.."ConquestPoints" local frameConquestPointsText = parentFrame:CreateFontString( frameConquestPoints.."Text", "OVERLAY", "GameFontNormal" ) frameConquestPointsText:SetText( "0" ) frameConquestPointsText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameConquestPointsText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameConquestPointsText:SetWidth( width ) frameConquestPointsText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.ConquestPointsText = frameConquestPointsText left = left + spacing -- Set the Valor font string. local frameValor = AJM.globalCurrencyFramePrefix.."Valor" local frameValorText = parentFrame:CreateFontString( frameValor.."Text", "OVERLAY", "GameFontNormal" ) frameValorText:SetText( "0" ) frameValorText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameValorText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameValorText:SetWidth( width ) frameValorText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.ValorText = frameValorText left = left + spacing -- Set the TolBaradCommendation font string. local frameTolBaradCommendation = AJM.globalCurrencyFramePrefix.."TolBaradCommendation" local frameTolBaradCommendationText = parentFrame:CreateFontString( frameTolBaradCommendation.."Text", "OVERLAY", "GameFontNormal" ) frameTolBaradCommendationText:SetText( "0" ) frameTolBaradCommendationText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameTolBaradCommendationText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTolBaradCommendationText:SetWidth( width ) frameTolBaradCommendationText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.TolBaradCommendationText = frameTolBaradCommendationText left = left + spacing -- Set the ChampionsSeal font string. local frameChampionsSeal = AJM.globalCurrencyFramePrefix.."ChampionsSeal" local frameChampionsSealText = parentFrame:CreateFontString( frameChampionsSeal.."Text", "OVERLAY", "GameFontNormal" ) frameChampionsSealText:SetText( "0" ) frameChampionsSealText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameChampionsSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameChampionsSealText:SetWidth( width ) frameChampionsSealText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.ChampionsSealText = frameChampionsSealText left = left + spacing -- Set the IllustriousJewelcraftersToken font string. local frameIllustriousJewelcraftersToken = AJM.globalCurrencyFramePrefix.."IllustriousJewelcraftersToken" local frameIllustriousJewelcraftersTokenText = parentFrame:CreateFontString( frameIllustriousJewelcraftersToken.."Text", "OVERLAY", "GameFontNormal" ) frameIllustriousJewelcraftersTokenText:SetText( "0" ) frameIllustriousJewelcraftersTokenText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameIllustriousJewelcraftersTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameIllustriousJewelcraftersTokenText:SetWidth( width ) frameIllustriousJewelcraftersTokenText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText = frameIllustriousJewelcraftersTokenText left = left + spacing -- Set the DalaranJewelcraftingToken font string. local frameDalaranJewelcraftingToken = AJM.globalCurrencyFramePrefix.."DalaranJewelcraftingToken" local frameDalaranJewelcraftingTokenText = parentFrame:CreateFontString( frameDalaranJewelcraftingToken.."Text", "OVERLAY", "GameFontNormal" ) frameDalaranJewelcraftingTokenText:SetText( "0" ) frameDalaranJewelcraftingTokenText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameDalaranJewelcraftingTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameDalaranJewelcraftingTokenText:SetWidth( width ) frameDalaranJewelcraftingTokenText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.DalaranJewelcraftingTokenText = frameDalaranJewelcraftingTokenText left = left + spacing -- Set the IronpawToken font string. local frameIronpawToken = AJM.globalCurrencyFramePrefix.."IronpawToken" local frameIronpawTokenText = parentFrame:CreateFontString( frameIronpawToken.."Text", "OVERLAY", "GameFontNormal" ) frameIronpawTokenText:SetText( "0" ) frameIronpawTokenText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameIronpawTokenText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameIronpawTokenText:SetWidth( width ) frameIronpawTokenText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.IronpawTokenText = frameIronpawTokenText left = left + spacing -- Set the LesserCharmOfGoodFortune font string. local frameLesserCharmOfGoodFortune = AJM.globalCurrencyFramePrefix.."LesserCharmOfGoodFortune" local frameLesserCharmOfGoodFortuneText = parentFrame:CreateFontString( frameLesserCharmOfGoodFortune.."Text", "OVERLAY", "GameFontNormal" ) frameLesserCharmOfGoodFortuneText:SetText( "0" ) frameLesserCharmOfGoodFortuneText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameLesserCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameLesserCharmOfGoodFortuneText:SetWidth( width ) frameLesserCharmOfGoodFortuneText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText = frameLesserCharmOfGoodFortuneText left = left + spacing -- Set the ElderCharmOfGoodFortune font string. local frameElderCharmOfGoodFortune = AJM.globalCurrencyFramePrefix.."ElderCharmOfGoodFortune" local frameElderCharmOfGoodFortuneText = parentFrame:CreateFontString( frameElderCharmOfGoodFortune.."Text", "OVERLAY", "GameFontNormal" ) frameElderCharmOfGoodFortuneText:SetText( "0" ) frameElderCharmOfGoodFortuneText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameElderCharmOfGoodFortuneText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameElderCharmOfGoodFortuneText:SetWidth( width ) frameElderCharmOfGoodFortuneText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText = frameElderCharmOfGoodFortuneText left = left + spacing -- Set the MoguRuneOfFate font string. local frameMoguRuneOfFate = AJM.globalCurrencyFramePrefix.."MoguRuneOfFate" local frameMoguRuneOfFateText = parentFrame:CreateFontString( frameMoguRuneOfFate.."Text", "OVERLAY", "GameFontNormal" ) frameMoguRuneOfFateText:SetText( "0" ) frameMoguRuneOfFateText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameMoguRuneOfFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameMoguRuneOfFateText:SetWidth( width ) frameMoguRuneOfFateText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.MoguRuneOfFateText = frameMoguRuneOfFateText left = left + spacing -- Set the WarforgedSeal font string. local frameWarforgedSeal = AJM.globalCurrencyFramePrefix.."WarforgedSeal" local frameWarforgedSealText = parentFrame:CreateFontString( frameWarforgedSeal.."Text", "OVERLAY", "GameFontNormal" ) frameWarforgedSealText:SetText( "0" ) frameWarforgedSealText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameWarforgedSealText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameWarforgedSealText:SetWidth( width ) frameWarforgedSealText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.WarforgedSealText = frameWarforgedSealText left = left + spacing -- Set the BloodyCoin font string. local frameBloodyCoin = AJM.globalCurrencyFramePrefix.."BloodyCoin" local frameBloodyCoinText = parentFrame:CreateFontString( frameBloodyCoin.."Text", "OVERLAY", "GameFontNormal" ) frameBloodyCoinText:SetText( "0" ) frameBloodyCoinText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameBloodyCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameBloodyCoinText:SetWidth( width ) frameBloodyCoinText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.BloodyCoinText = frameBloodyCoinText left = left + spacing -- Set the TimelessCoin font string. local frameTimelessCoin = AJM.globalCurrencyFramePrefix.."TimelessCoin" local frameTimelessCoinText = parentFrame:CreateFontString( frameTimelessCoin.."Text", "OVERLAY", "GameFontNormal" ) frameTimelessCoinText:SetText( "0" ) frameTimelessCoinText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameTimelessCoinText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTimelessCoinText:SetWidth( width ) frameTimelessCoinText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.TimelessCoinText = frameTimelessCoinText left = left + spacing --ebony New WoD Currency -- Set the GarrisonResources font string. local frameGarrisonResources = AJM.globalCurrencyFramePrefix.."GarrisonResources" local frameGarrisonResourcesText = parentFrame:CreateFontString( frameGarrisonResources .."Text", "OVERLAY", "GameFontNormal" ) frameGarrisonResourcesText:SetText( "0" ) frameGarrisonResourcesText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameGarrisonResourcesText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameGarrisonResourcesText:SetWidth( width ) frameGarrisonResourcesText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.GarrisonResourcesText = frameGarrisonResourcesText left = left + spacing -- Set the TemperedFate font string. local frameTemperedFate = AJM.globalCurrencyFramePrefix.."TemperedFate" local frameTemperedFateText = parentFrame:CreateFontString( frameTemperedFate .."Text", "OVERLAY", "GameFontNormal" ) frameTemperedFateText:SetText( "0" ) frameTemperedFateText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameTemperedFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTemperedFateText:SetWidth( width ) frameTemperedFateText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.TemperedFateText = frameTemperedFateText left = left + spacing -- Set the ApexisCrystal font string. local frameApexisCrystal = AJM.globalCurrencyFramePrefix.."ApexisCrystal" local frameApexisCrystalText = parentFrame:CreateFontString( frameApexisCrystal .."Text", "OVERLAY", "GameFontNormal" ) frameApexisCrystalText:SetText( "0" ) frameApexisCrystalText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameApexisCrystalText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameApexisCrystalText:SetWidth( width ) frameApexisCrystalText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.ApexisCrystalText = frameApexisCrystalText left = left + spacing -- Set the Darkmoon font string. local frameDarkmoon = AJM.globalCurrencyFramePrefix.."Darkmoon" local frameDarkmoonText = parentFrame:CreateFontString( frameDarkmoon .."Text", "OVERLAY", "GameFontNormal" ) frameDarkmoonText:SetText( "0" ) frameDarkmoonText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameDarkmoonText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameDarkmoonText:SetWidth( width ) frameDarkmoonText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.DarkmoonText = frameDarkmoonText left = left + spacing -- Set the InevitableFate font string. local frameInevitableFate = AJM.globalCurrencyFramePrefix.."InevitableFate" local frameInevitableFateText = parentFrame:CreateFontString( frameInevitableFate .."Text", "OVERLAY", "GameFontNormal" ) frameInevitableFateText:SetText( "0" ) frameInevitableFateText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameInevitableFateText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameInevitableFateText:SetWidth( width ) frameInevitableFateText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.InevitableFateText = frameInevitableFateText left = left + spacing -- Set the Oil font string. local frameOil = AJM.globalCurrencyFramePrefix.."Oil" local frameOilText = parentFrame:CreateFontString( frameOil .."Text", "OVERLAY", "GameFontNormal" ) frameOilText:SetText( "0" ) frameOilText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameOilText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameOilText:SetWidth( width ) frameOilText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.OilText = frameOilText left = left + spacing -- Set the TimeWalker font string. local frameTimeWalker = AJM.globalCurrencyFramePrefix.."TimeWalker" local frameTimeWalkerText = parentFrame:CreateFontString( frameTimeWalker .."Text", "OVERLAY", "GameFontNormal" ) frameTimeWalkerText:SetText( "0" ) frameTimeWalkerText:SetTextColor( 1.00, 1.00, 1.00, 1.00 ) frameTimeWalkerText:SetPoint( "TOPLEFT", parentFrame, "TOPLEFT", left, top ) frameTimeWalkerText:SetWidth( width ) frameTimeWalkerText:SetJustifyH( "CENTER" ) currencyFrameCharacterInfo.TimeWalkerText = frameTimeWalkerText left = left + spacing end function AJM:JambaToonHideCurrency() JambaToonCurrencyListFrame:Hide() end function AJM:JambaToonRequestCurrency() --AJM.Print("DoRequestCurrency", characterName) -- Colour red. local r = 1.0 local g = 0.0 local b = 0.0 local a = 0.6 for characterName, currencyFrameCharacterInfo in pairs( AJM.currencyFrameCharacterInfo ) do if JambaApi.GetCharacterOnlineStatus ( characterName ) == true then -- AJM.Print("offlineRemove") -- AJM.currencyFrameCharacterInfo[characterName] = nil -- return --else currencyFrameCharacterInfo.GoldText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.characterNameText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.HonorPointsText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ConquestPointsText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ValorText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TolBaradCommendationText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ChampionsSealText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.IronpawTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.MoguRuneOfFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.WarforgedSealText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.BloodyCoinText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TimelessCoinText:SetTextColor( r, g, b, a ) --ebony New WoD Currency currencyFrameCharacterInfo.GarrisonResourcesText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TemperedFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ApexisCrystalText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.DarkmoonText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.InevitableFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.OilText:SetTextColor( r, g, b, a ) else --AJM.currencyFrameCharacterInfo[characterName] = nil --table.wipe( AJM.currentCurrencyValues ) --AJM.currencyFrameCharacterInfo = {} end end AJM.currencyTotalGold = 0 if AJM.db.currGoldInGuildBank == true then if IsInGuild() then AJM.currencyTotalGold = GetGuildBankMoney() end end AJM:JambaSendCommandToTeam( AJM.COMMAND_REQUEST_CURRENCY, "" ) AJM.SettingsRefresh() end function AJM:DoSendCurrency( characterName, dummyValue ) table.wipe( AJM.currentCurrencyValues ) AJM.currentCurrencyValues.currGold = GetMoney() AJM.currentCurrencyValues.currHonorPoints = select( 2, GetCurrencyInfo( AJM.CHonorPoints ) ) AJM.currentCurrencyValues.currConquestPoints = select( 2, GetCurrencyInfo( AJM.CConquestPoints ) ) AJM.currentCurrencyValues.currValor = select( 2, GetCurrencyInfo( AJM.CValor ) ) AJM.currentCurrencyValues.currTolBaradCommendation = select( 2, GetCurrencyInfo( AJM.CTolBaradCommendation ) ) AJM.currentCurrencyValues.currChampionsSeal = select( 2, GetCurrencyInfo(AJM.CChampionsSeal ) ) AJM.currentCurrencyValues.currIllustriousJewelcraftersToken = select( 2, GetCurrencyInfo( AJM.CIllustriousJewelcraftersToken ) ) AJM.currentCurrencyValues.currDalaranJewelcraftingToken = select( 2, GetCurrencyInfo( AJM.CDalaranJewelcraftingToken ) ) AJM.currentCurrencyValues.currIronpawToken = select( 2, GetCurrencyInfo( AJM.CIronpawToken ) ) AJM.currentCurrencyValues.currLesserCharmOfGoodFortune = select( 2, GetCurrencyInfo( AJM.CLesserCharmOfGoodFortune ) ) AJM.currentCurrencyValues.currElderCharmOfGoodFortune = select( 2, GetCurrencyInfo( AJM.CElderCharmOfGoodFortune ) ) AJM.currentCurrencyValues.currMoguRuneOfFate = select( 2, GetCurrencyInfo( AJM.CMoguRuneOfFate ) ) AJM.currentCurrencyValues.currWarforgedSeal = select( 2, GetCurrencyInfo( AJM.CWarforgedSeal ) ) AJM.currentCurrencyValues.currBloodyCoin = select( 2, GetCurrencyInfo( AJM.CBloodyCoin ) ) AJM.currentCurrencyValues.currTimelessCoin = select( 2, GetCurrencyInfo( AJM.CTimelessCoin ) ) --ebony New WoD Currency AJM.currentCurrencyValues.currGarrisonResources = select( 2, GetCurrencyInfo( AJM.CGarrisonResources ) ) AJM.currentCurrencyValues.currTemperedFate = select( 2, GetCurrencyInfo( AJM.CTemperedFate ) ) AJM.currentCurrencyValues.currApexisCrystal = select( 2, GetCurrencyInfo( AJM.CApexisCrystal ) ) AJM.currentCurrencyValues.currDarkmoon = select( 2, GetCurrencyInfo( AJM.CDarkmoon ) ) AJM.currentCurrencyValues.currInevitableFate = select( 2, GetCurrencyInfo( AJM.CInevitableFate ) ) AJM.currentCurrencyValues.currOil = select( 2, GetCurrencyInfo( AJM.COil ) ) AJM.currentCurrencyValues.currTimeWalker = select( 2, GetCurrencyInfo( AJM.CTimeWalker ) ) AJM:JambaSendCommandToToon( characterName, AJM.COMMAND_HERE_IS_CURRENCY, AJM.currentCurrencyValues ) end function AJM:DoShowToonsCurrency( characterName, currencyValues ) --AJM.Print("DoShowCurrency", characterName) --if JambaPrivate.Team.GetCharacterOnlineStatus( characterName ) == true then local parentFrame = JambaToonCurrencyListFrame -- Get (or create and get) the character information. local currencyFrameCharacterInfo = AJM.currencyFrameCharacterInfo[characterName] if currencyFrameCharacterInfo == nil then AJM:CreateJambaCurrencyFrameInfo( characterName, parentFrame ) currencyFrameCharacterInfo = AJM.currencyFrameCharacterInfo[characterName] end -- Colour white. local r = 1.0 local g = 1.0 local b = 1.0 local a = 1.0 currencyFrameCharacterInfo.GoldText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.characterNameText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.HonorPointsText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ConquestPointsText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ValorText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TolBaradCommendationText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ChampionsSealText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.IronpawTokenText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.MoguRuneOfFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.WarforgedSealText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.BloodyCoinText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TimelessCoinText:SetTextColor( r, g, b, a ) --ebony New WoD Currency currencyFrameCharacterInfo.GarrisonResourcesText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.TemperedFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.ApexisCrystalText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.DarkmoonText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.InevitableFateText:SetTextColor( r, g, b, a ) currencyFrameCharacterInfo.OilText:SetTextColor( r, g, b, a ) -- Information. currencyFrameCharacterInfo.GoldText:SetText( JambaUtilities:FormatMoneyString( currencyValues.currGold ) ) currencyFrameCharacterInfo.HonorPointsText:SetText( currencyValues.currHonorPoints ) currencyFrameCharacterInfo.ConquestPointsText:SetText( currencyValues.currConquestPoints ) currencyFrameCharacterInfo.ValorText:SetText( currencyValues.currValor ) currencyFrameCharacterInfo.TolBaradCommendationText:SetText( currencyValues.currTolBaradCommendation ) currencyFrameCharacterInfo.ChampionsSealText:SetText( currencyValues.currChampionsSeal ) currencyFrameCharacterInfo.IllustriousJewelcraftersTokenText:SetText( currencyValues.currIllustriousJewelcraftersToken ) currencyFrameCharacterInfo.DalaranJewelcraftingTokenText:SetText( currencyValues.currDalaranJewelcraftingToken ) currencyFrameCharacterInfo.IronpawTokenText:SetText( currencyValues.currIronpawToken ) currencyFrameCharacterInfo.LesserCharmOfGoodFortuneText:SetText( currencyValues.currLesserCharmOfGoodFortune ) currencyFrameCharacterInfo.ElderCharmOfGoodFortuneText:SetText( currencyValues.currElderCharmOfGoodFortune ) currencyFrameCharacterInfo.MoguRuneOfFateText:SetText( currencyValues.currMoguRuneOfFate ) currencyFrameCharacterInfo.WarforgedSealText:SetText( currencyValues.currWarforgedSeal ) currencyFrameCharacterInfo.BloodyCoinText:SetText( currencyValues.currBloodyCoin ) currencyFrameCharacterInfo.TimelessCoinText:SetText( currencyValues.currTimelessCoin ) --ebony New WoD Currency currencyFrameCharacterInfo.GarrisonResourcesText:SetText( currencyValues.currGarrisonResources ) currencyFrameCharacterInfo.TemperedFateText:SetText( currencyValues.currTemperedFate ) currencyFrameCharacterInfo.ApexisCrystalText:SetText( currencyValues.currApexisCrystal ) currencyFrameCharacterInfo.DarkmoonText:SetText( currencyValues.currDarkmoon ) currencyFrameCharacterInfo.InevitableFateText:SetText( currencyValues.currInevitableFate ) currencyFrameCharacterInfo.OilText:SetText( currencyValues.currOil ) currencyFrameCharacterInfo.TimeWalkerText:SetText( currencyValues.currTimeWalker ) -- Total gold. AJM.currencyTotalGold = AJM.currencyTotalGold + currencyValues.currGold parentFrame.TotalGoldText:SetText( JambaUtilities:FormatMoneyString( AJM.currencyTotalGold ) ) if IsInGuild() then parentFrame.TotalGoldGuildText:SetText( JambaUtilities:FormatMoneyString( GetGuildBankMoney() ) ) end -- Update width of currency list. AJM:CurrencyListSetColumnWidth() JambaToonCurrencyListFrame:Show() --end end -- A Jamba command has been received. function AJM:JambaOnCommandReceived( characterName, commandName, ... ) if commandName == AJM.COMMAND_REQUEST_CURRENCY then AJM:DoSendCurrency( characterName, ... ) end if commandName == AJM.COMMAND_HERE_IS_CURRENCY then AJM:DoShowToonsCurrency( characterName, ... ) end end local function test2() JambaUtilities:ClearTable( AJM.currencyFrameCharacterInfo ) --AJM:CreateJambaToonCurrencyListFrame() AJM.Print("clearTable") end local function test() --for characterName, currencyFrameCharacterInfo in pairs( AJM.currencyFrameCharacterInfo ) do return pairs( AJM.currencyFrameCharacterInfo) end JambaApi.test = test JambaApi.test2 = test2