From 4cbf9e0c41e67d3707270344351f299e195fb1c1 Mon Sep 17 00:00:00 2001 From: Jennifer Date: Sat, 7 Nov 2020 18:15:55 +0000 Subject: [PATCH] 0170 --- CHANGELOG.txt | 35 +++- Core/Team.lua | 15 +- EMA.toc | 2 +- EbonyUtilities.lua | 8 + GUI/EMAHelperSettings.lua | 14 +- Locales/Core-Locale-enUS.lua | 19 ++ Media/MacroIcon.tga | Bin 0 -> 16428 bytes Modules/Follow.lua | 2 +- Modules/Macro.lua | 441 ++++++++++++++++++++++++++++++++++++++++++ Modules/Modules.xml | 6 +- Modules/Quest.lua | 22 ++- Modules/QuestWatcher.lua | 2 + Modules/Talk.lua | 2 +- Modules/Toon.lua | 10 +- Modules/Trade.lua | 4 +- 15 files changed, 556 insertions(+), 26 deletions(-) create mode 100644 Media/MacroIcon.tga create mode 100644 Modules/Macro.lua diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 20ab3a5..96ee9da 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,12 +1,45 @@ --------------------------- ChangeLogs: --------------------------- +EMA Version: v9.0.1-Release-v3.1(0170) +Game Version: 9.0.1 +Release Date: 07/11/2020 + +## Quest + Fix #17 + +## Isboxer + -- Removed isboxer support for now. due to new policy update. + +## Added New Module -- By: RobinFrcd ( edited by me ) + -- Macro Add and copys Macros to your team! + +## Display-team + -- Added player level By: RobinFrcd + +--------------------------- +EMA Version: v9.0.1-Release-v3.1(0169-0169) +Game Version: 9.0.1 +Release Date: 30/10/2020 + +## Quest + - Quests with Gossip options Should Now work in BFA Zones. + -- Dev note: Sorry about this one it seems they was not working with the new api like even older zones are? + +## Disaply-Team + - Can Move the frame again + --dev note: BBtC + + + + +--------------------------- EMA Version: v9.0.1-Release-v3.1(0164-0166) Game Version: 9.0.1 Release Date: 30/10/2020 ## Information - -- Added Support For Bagspace Information + -- Added Support For Bag space Information -- Information Panel Can Now Startup On All Team Members -- Added Some Options To Support The Removal Of "Expansions" From Dropdown List. -- Added Shadowlands Currencies. diff --git a/Core/Team.lua b/Core/Team.lua index 67f11a5..e4f4527 100644 --- a/Core/Team.lua +++ b/Core/Team.lua @@ -332,6 +332,7 @@ local function SettingsCreateTeamList() EMA.SettingsAddPartyClick, L["BUTTON_ADDALL_HELP"] ) +--[[ EMA.settingsControl.teamListButtonAddIsboxerList = EMAHelperSettings:Icon( EMA.settingsControl, iconSize, @@ -343,13 +344,14 @@ local function SettingsCreateTeamList() EMA.SettingsAddIsboxerListClick, L["BUTTON_ISBOXER_ADD_HELP"] ) +]] EMA.settingsControl.teamListButtonMoveUp = EMAHelperSettings:Icon( EMA.settingsControl, iconSize, iconSize, "Interface\\Addons\\EMA\\Media\\CharUp.tga", --icon Image left - iconSize - 11, - topOfList - verticalSpacing - iconHight * 3, + topOfList - verticalSpacing - iconHight * 2, L[""], EMA.SettingsMoveUpClick, L["BUTTON_UP_HELP"] @@ -360,7 +362,7 @@ local function SettingsCreateTeamList() iconSize, "Interface\\Addons\\EMA\\Media\\CharDown.tga", --icon Image left - iconSize - 11, - topOfList - verticalSpacing - iconHight * 4, + topOfList - verticalSpacing - iconHight * 3, L[""], EMA.SettingsMoveDownClick, L["BUTTON_DOWN_HELP"] @@ -371,7 +373,7 @@ local function SettingsCreateTeamList() iconSize, "Interface\\Addons\\EMA\\Media\\CharRemove.tga", --icon Image left - iconSize - 11 , - topOfList - verticalSpacing - iconHight * 5, + topOfList - verticalSpacing - iconHight * 4, L[""], EMA.SettingsRemoveClick, L["BUTTON_REMOVE_HELP"] @@ -382,7 +384,7 @@ local function SettingsCreateTeamList() iconSize, "Interface\\Addons\\EMA\\Media\\CharMaster.tga", --icon Image left - iconSize - 11 , - topOfList - verticalSpacing - iconHight * 6, + topOfList - verticalSpacing - iconHight * 5, L[""], EMA.SettingsSetMasterClick, L["BUTTON_MASTER_HELP"] @@ -1341,6 +1343,7 @@ function EMA:OnMasterChange( message, characterName ) end end +--[[ function EMA:AddIsboxerMembers() if IsAddOnLoaded("Isboxer" ) then for slot, characterName in EMAApi.IsboxerTeamList() do @@ -1350,7 +1353,7 @@ function EMA:AddIsboxerMembers() EMA:Print(L["ISBOXER_ADDON_NOT_LOADED"]) end end - +]] ------------------------------------------------------------------------------------------------------------- -- Addon initialization, enabling and disabling. @@ -1738,9 +1741,11 @@ function EMA.SettingsAddPartyClick( event ) EMA:AddPartyMembers() end +--[[ function EMA:SettingsAddIsboxerListClick( event ) EMA:AddIsboxerMembers() end +]] function EMA:SettingsInviteClick( event ) EMA:InviteTeamToParty(nil) diff --git a/EMA.toc b/EMA.toc index 4b5b193..00ba644 100644 --- a/EMA.toc +++ b/EMA.toc @@ -2,7 +2,7 @@ ## Title: EMA ## Notes: Ebony's MultiBoxing Assistant ## Author: Jennifer Calladine 'Ebony' -## Version: v9.0.1-Release-v3.1(0166) +## Version: v9.0.1-Release-v3.1(0170) ## SavedVariables: CoreProfileDB, CommunicationsProfileDB, TeamProfileDB, TagProfileDB, MessageProfileDB, InformationProfileDB, DisplayTeamProfileDB, FollowProfileDB, GuildProfileDB, InteractionProfileDB, ItemUseProfileDB, PurchaseProfileDB, QuestProfileDB, QuestWatcherProfileDB, SellProfileDB, TalkProfileDB, ToonProfileDB, TradeProfileDB, MailProfileDB, BankProfileDB, ISBoxerProfileDB #Libs diff --git a/EbonyUtilities.lua b/EbonyUtilities.lua index 659db19..c82724d 100644 --- a/EbonyUtilities.lua +++ b/EbonyUtilities.lua @@ -334,3 +334,11 @@ function EbonyUtilities:getPetOwner( petName ) -- print(owner) end end + +function EbonyUtilities:endsWith(str, ending) + if str ~= nil then + return str:match(ending .. '$') + else + return false + end +end diff --git a/GUI/EMAHelperSettings.lua b/GUI/EMAHelperSettings.lua index 016e14b..0876f0e 100644 --- a/GUI/EMAHelperSettings.lua +++ b/GUI/EMAHelperSettings.lua @@ -347,9 +347,21 @@ function EMAHelperSettings:CreateIcon( settingsControl, width, left, top, iconNa return icon end +------------------------------------------------------------------------------------------------------------- +-- FreeLabel. +------------------------------------------------------------------------------------------------------------- + +function EMAHelperSettings:CreateFreeLabel( settingsControl, width, left, top, text ) + local label = AceGUI:Create( "Label" ) + label:SetText( text ) + settingsControl.widgetSettings:AddChild( label ) + label:SetWidth( width ) + label:SetPoint( "TOPLEFT", settingsControl.widgetSettings.content, "TOPLEFT", left, top ) + return label +end ------------------------------------------------------------------------------------------------------------- --- Label. +-- NormalLabel. ------------------------------------------------------------------------------------------------------------- function EMAHelperSettings:GetLabelHeight() diff --git a/Locales/Core-Locale-enUS.lua b/Locales/Core-Locale-enUS.lua index c4e78d3..e95cb26 100644 --- a/Locales/Core-Locale-enUS.lua +++ b/Locales/Core-Locale-enUS.lua @@ -128,6 +128,7 @@ L["QUEST"] = "Quest" L["COMPLETION"] = "Completion" L["TRACKER"] = "Tracker" L["ISBOXER"] = "ISBoxer" +L["MACRO"] = "Macro" -------------------------- -- Pecoded String Formats @@ -1009,4 +1010,22 @@ L["LDBBAR_CONFIG_TEAM"] = "To Open Team Settings" L["LDBBAR_PUSH"] = "To Push All Settings" ----------------------- +-- Macro Local +local ema_macro_tail = "_EMA_AUTO" +L["MACRO_TAIL"] = ema_macro_tail -- Don't change this one, used to identify EMA macros + +L["MACRO_TITLE"] = "Duplicate Macros" +L["SELECT_MACRO_TITLE"] = "Select macro to edit and clone" +L["LOAD_MACRO_BUTTON"] = "Load macros" +L["LOAD_MACRO_BUTTON_HELP"] = "Get current character macros" +L["MACRO_NAME_AREA"] = "Macro name" +L["MACRO_BODY"] = "Macro content" +L["DELETE_MACROS"] = "Delete ALL EMA macros" +L["SEND_MACRO_ALL_CHARACTERS"] = "Send to all characters" +L["SEND_MACRO"] = "Send to character" +L["LOCAL_MACRO"] = "Local Macro ?" +L["LOCAL_MACRO_HELP"] = "If not local, it's global" +L["DELETE_MACROS_HELP"] = "It will delete all macros ending with " .. ema_macro_tail .. " on all your characters" + +----------------------- -- X Locale \ No newline at end of file diff --git a/Media/MacroIcon.tga b/Media/MacroIcon.tga new file mode 100644 index 0000000000000000000000000000000000000000..50e81433608103cfed8505c610f83ef4db9c4e07 GIT binary patch literal 16428 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