Quantcast

jamba-5.3 for patch 7.3

Ebonyfaye [08-30-17 - 16:18]
jamba-5.3 for patch 7.3
Filename
Jamba/AceGUIContainer-JambaWindow.lua
Jamba/CHANGELOG.txt
Jamba/Jamba.toc
Jamba/JambaCommunications.lua
Jamba/JambaCore.lua
Jamba/JambaEmbeds.xml
Jamba/JambaMessage.lua
Jamba/JambaStartupMessage.xml
Jamba/JambaTag.lua
Jamba/JambaTeam.lua
Jamba/JambaUtilities.lua
Jamba/Libs/AceComm-3.0/AceComm-3.0.lua
Jamba/Libs/AceConfig-3.0/AceConfig-3.0.lua
Jamba/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
Jamba/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
Jamba/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
Jamba/Libs/AceEvent-3.0/AceEvent-3.0.lua
Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets.toc
Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets/widget.xml
Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/widget.xml
Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
Jamba/Libs/LibBabble-Class-3.0/LibBabble-Class-3.0.lua
Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test.lua
Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test3.lua
Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test4.lua
Jamba/Libs/LibBabble-Inventory-3.0/lib.xml
Jamba/Libs/LibBagUtils-1.0/LibBagUtils-1.0.xml
Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua
Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.toc
Jamba/Libs/LibButtonGlow-1.0/LibStub/LibStub.toc
Jamba/Libs/LibDeformat-3.0/LibDeformat-3.0.lua
Jamba/Libs/LibDeformat-3.0/lib.xml
Jamba/Libs/LibGratuity-3.0/LibGratuity-3.0.toc
Jamba/Libs/LibGratuity-3.0/LibStub/tests/test.lua
Jamba/Libs/LibGratuity-3.0/LibStub/tests/test3.lua
Jamba/Libs/LibGratuity-3.0/LibStub/tests/test4.lua
Jamba/Libs/LibGratuity-3.0/lib.xml
Jamba/Libs/LibSharedMedia-3.0/lib.xml
Jamba/Libs/UTF8/UTF8.toc
Jamba/Libs/UTF8/utf8.lua
Jamba/Libs/UTF8/utf8data.lua
Jamba/Locales/JambaCore-Locale-enUS.lua
Jamba/Locales/JambaMessage-Locale-enUS.lua
Jamba/Locales/JambaTeam-Locale-enUS.lua
Jamba/Locales/Locales.xml
diff --git a/Jamba/AceGUIContainer-JambaWindow.lua b/Jamba/AceGUIContainer-JambaWindow.lua
index 7b8bc11..9b84543 100644
--- a/Jamba/AceGUIContainer-JambaWindow.lua
+++ b/Jamba/AceGUIContainer-JambaWindow.lua
@@ -17,7 +17,7 @@ Really the olny thing changed is to lower the setframestata for InitializePopupD
 --[[-----------------------------------------------------------------------------
 Frame Container
 -------------------------------------------------------------------------------]]
-local Type, Version = "JambaWindow", 2
+local Type, Version = "JambaWindow", 3
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -37,7 +37,8 @@ local CreateFrame, UIParent = CreateFrame, UIParent
 Scripts
 -------------------------------------------------------------------------------]]
 local function Button_OnClick(frame)
-	PlaySound("gsTitleOptionExit")
+	--7.3 PlaySound Update.
+	PlaySound(PlaySoundKitID and "gsTitleOptionExit" or 799) -- SOUNDKIT.GS_TITLE_OPTION_EXIT
 	frame.obj:Hide()
 end

diff --git a/Jamba/CHANGELOG.txt b/Jamba/CHANGELOG.txt
index deb27b6..d168679 100644
--- a/Jamba/CHANGELOG.txt
+++ b/Jamba/CHANGELOG.txt
@@ -1,6 +1,197 @@
 ---------------------------
 ChangeLogs:
 ---------------------------
+Jamba Version: 5.3.0
+WoW Game Version: 7.3
+File Version: 7.3.0-5.3.0
+Release Date: 30/8/2017
+Modules Changed: Core, communications, Item-Use, Team-Display, Jamba-sell Jamba-Trade, Avd Loot
+Modules Removed: Macros, Target
+
+*Jamba-Core
+	- Should Nolonger LUA error when sending to a toon that does not have the module Installed (GameData/commsData)
+	- Added a new library LibItemUpGradeInfo.
+	- Updated Ace3 for Patch 7.3
+	- Updated PlaySound in JambaFrameWindow to support the 7.3 changes
+	- Updated Toc to 7.3
+
+*Jamba-Communications
+	- Removed BN communications (To much excess Data to check was kinda pointless and did not work right.)
+	- Added Guild communications - this will put all communications though the guild Might for use with big teams.
+	- Added support for Guild communications to use the Automated Online/Offline System.
+
+*Jamba-ItemUse
+	- No Longer sends all Settings when changing items on the bar.
+	- Added a Sync Button next to clear (In Case minions are not Synced)
+
+*Jamba-Team_Display
+	- Changed the minions name colour when the minion is in combat
+	- Added support for incoming Heals.
+	- Can Set the health Bar to class colour
+	- Can set a option to show health/mana updates when not in a party ( might lag out communications Use at own risk, works well with guild communications )
+
+*Jamba-Sell
+	- *sell items with team(Alt)* No longer trys to Equips Items when not interacting with the merchant.
+	- Should now sell ALL gray's in your bags. (Not half at a time)
+	- New Options Sell Items by Quality, ItemLevel and if item is Soulbound.
+	- Tells The Team the amount of Items they have sold and the gold they have made.
+	- Removed Old Usable soulbound Items and Lower tier options ( Game has come a long way since then )
+
+*Jamba-Trade
+	- Updated Trade BoE to support the new tooltip Scanner
+
+*jamba-Currency
+	- if the minion is Maxed on a currency type (EG can not have anymore of that currency ) then the text will show red.
+	- Changed FrameStrata from "BACKGROUND" to "LOW" (ticket #182) ((PS: I guess a dropdown list would be better))
+	- Added 7.3 currencies:
+		- Writhing Essence
+		- Argus Waystone
+		- Veiled Argunite
+
+*Jamba-Advanced_Loot
+	- trying new event LOOT_READY
+
+
+*Jamba-Macro
+	- Removed module.
+
+*Jamba-Target
+	- Removed module.
+
+
+---------------------------
+Jamba Version: 5.2.4
+WoW Game Version: 7.2.5
+File Version: 7.2.5-5.2.4
+Release Date: 14/6/2017
+Modules Changed: Core, Display-Curr
+
+*Jamba-Currency
+	- Fixed a icon bug with patch 7.2.5
+	- Should now update frame position when sending settings without a reload on UI.
+	- Added new 7.2.5 Currency "Coins of Air"
+
+
+---------------------------
+Jamba Version: 5.2.3
+WoW Game Version: 7.2.0
+File Version: 7.2.0-5.2.3
+Release Date: 23/5/2017
+Modules Changed: Core, Display-Team, Quest-Watcher, Jamba-Team, Jamba-Trade, Jamba_itemUse
+
+
+*Jamba-Display Team
+	- Added xp bars Animations
+
+*Jamba-Quest-Watcher
+	- Fixed bug #117
+
+*Jamba-ItemUse
+	- Fixed a buged where Emissary quest items Nolonger would show on bar.
+	- Nolonger adds LockBox to the Item-Bar
+
+*Jamba-Team
+	- added Enhancement #179*
+	*- Add Party to team works with Raids.
+	- Added Class colour Support Jamba_API/EMA_API
+
+*jamba-Trade
+	- Added Enhancement #181*
+	*- Premade for Crafting Reagents.
+
+---------------------------
+Jamba Version: 5.2.2
+WoW Game Version: 7.2.0
+File Version: 7.2.0-5.2.2
+Release Date: 4/5/2017
+Modules Changed: Core, Display-Team
+
+
+*jamba-Display Team
+
+	- Fixed the artifact bug -- am really sorry this one took so long, av not been very well.
+
+
+
+
+---------------------------
+Jamba Version: 5.2.1
+WoW Game Version: 7.2.1
+File Version: 7.2.0-5.2.1
+Release Date: 21/4/2017
+Modules Changed: Core, Mount, Currency
+
+*Jamba-Core
+	*(Communications) fixed a small bug with this not working.
+
+*Jamba-Mount
+	*Temp Fix undone most changes form 5.2.0
+
+*jamba-Currency
+	- Added currency Legionfall War Supplies (1342)
+
+
+
+---------------------------
+Jamba Version: 5.2.0
+WoW Game Version: 7.2.0
+File Version: 7.2.0-5.2.0
+Release Date: 28/3/2017
+Modules Changed: Core, Toon, Trade, Team, Mount, Trade, Currency, Taxi, Quest, Follow, Team-Display
+
+*Jamba-Core
+	*(Communications)
+	- Added support for Cross Realm using BNSendGameData Jamba will look fo the character
+	  and will do all the magic. (you need to turn this on in options)
+
+*Jamba-Toon
+	(Holding Shift will stop most stuff forwarding to team)
+	- Ready-check with Team.
+	- LFG Role-check Auto.
+	- Teleport LFG with team.
+	- Roll Need/greed/Etc... with Team
+	- Removed AFK (PvP)
+
+*Jamba-Quest
+	- Removed support for Unignore and Ignore --Blizzard removed in patch 7.2
+	- Jamba_Quest 3.0
+		- Now shows a Popup Dialog when you track or abandon quests asking if you like to do it with the team.
+		- Removed "box" icons for abandon/track/share ALL, Changed for Blizzard Buttons.
+		- No Longer spams raid warning if the toon does not have the quest to abandon
+		- Does not loop on all toon's when abandoning/track/share all quests.
+
+*Jamba-Trade
+	- Removed the Old Trade PopUp Window
+	- You can now make a list of items you want to trade with master.
+	- Now will only trade gold to the master Toon.
+	- Added a option to trade Binds When Equipped Items With Master. (Green/Blue/Purple)
+
+*jamba-Currency
+	- Fixed a bug when Border/Background not Sending Settings.
+
+*Jamba-Team
+	- Added a option to set all members to assistant when you join a raid group.
+	- Remove command "/jamba-team InviteTag".
+	- "/Jamba-Team Invite" now support's <Tag>
+	- If Tag is Unknown it will tell you.
+
+*Jamba-Taxi
+	- Changed default Taxi dely to 2 sec, added in 0.5sec max 5 sec now.
+	- When Closing out the Taxi Frame the Team will close as well.
+
+*Jamba-Mount
+	- Fixed for Chauffeur Mount ( Level 1 Mount )
+	- Warns if the toon trying to mount is in combat.
+	- Checks the toon is not moving before it Mounts if toon is moving it will try again until toon stop moving.
+
+*Jamba-Follow
+	- Having ticked [Auto Follow After Combat] will now warn when follow breaks.
+	- Updated the speed the follow message gets sent by 0.5 secs.
+
+*Jamba-Team_Display
+	- Added a glow effect when follow brecks on the Display-team bar.
+
+---------------------------
 Jamba Version: 5.1.7
 WoW Game Version: 7.1.5
 File Version: 7.1.5-5.1.7
diff --git a/Jamba/Jamba.toc b/Jamba/Jamba.toc
index 0f450ae..46c8952 100644
--- a/Jamba/Jamba.toc
+++ b/Jamba/Jamba.toc
@@ -1,8 +1,8 @@
-## Interface: 70100
+## Interface: 70300
 ## Title: Jamba
 ## Notes: Jamba
 ## Author: Ebony, Former Author: Jafula
-## Version: 7.1.5-5.1.7
+## Version: 5.3.0
 ## SavedVariables: JambaCoreProfileDB, JambaCommunicationsProfileDB, JambaTeamProfileDB, JambaTagProfileDB, JambaMessageProfileDB
 JambaEmbeds.xml
 JambaUtilities.lua
diff --git a/Jamba/JambaCommunications.lua b/Jamba/JambaCommunications.lua
index 78509b1..2c55fea 100644
--- a/Jamba/JambaCommunications.lua
+++ b/Jamba/JambaCommunications.lua
@@ -38,16 +38,11 @@ AJM.chatCommand = "jamba-comm"
 -- Communication methods.
 AJM.COMMUNICATION_WHISPER = "WHISPER"
 AJM.COMMUNICATION_GROUP = "RAID"
+AJM.COMMUNICATION_GUILD = "GUILD"

 -- Communication message prefix.
 AJM.MESSAGE_PREFIX = "JmbCmMsg"

---[[
--- Communication over channel for online status.
-AJM.COMMUNICATION_TEAM_ONLINE_PREFIX = "JmbCmTmOn"
-AJM.COMMUNICATION_MESSAGE_ONLINE = "JmbCmTmOnTe"
-AJM.COMMUNICATION_MESSAGE_OFFLINE = "JmbCmTmOnFe"
---]]

 -- Communication priorities.
 AJM.COMMUNICATION_PRIORITY_BULK = "BULK"
@@ -66,8 +61,6 @@ AJM.COMMAND_INTERNAL_SEND_SETTINGS = "JmbCmSdSet"
 -- Messages module sends.
 -------------------------------------------------------------------------------------------------------------

---AJM.MESSAGE_CHARACTER_ONLINE = "JmbTmChrOn"
---AJM.MESSAGE_CHARACTER_OFFLINE = "JmbTmChrOf"

 -- Get a settings value.
 function AJM:ConfigurationGetSetting( key )
@@ -89,6 +82,7 @@ AJM.settings = {
 		assumeTeamAlwaysOnline = false, -- This is a place holder And is used as backup DO NOT CHANGE assumeTeamAlwaysOnline unless you know what your doing that you probs don't ;)
 		autoSetTeamOnlineorOffline = true,
 		boostCommunication = true,
+		useGuildComms = false,
 	},
 }

@@ -123,7 +117,6 @@ end
 -------------------------------------------------------------------------------------------------------------
 -- Character online management.
 -------------------------------------------------------------------------------------------------------------
--- TODO: Is a character online? This needs Working on Ebony Or needs to go for now it always return true
 local function IsCharacterOnline( characterName )
 	if AJM.db.assumeTeamAlwaysOnline == true then
 		return true
@@ -162,48 +155,6 @@ local function CreateCommandToSend( moduleName, commandName, ... )
 	return message
 end

---[[
--- Rewrite of communications start ebony. Using Guild, Party, then whisper
--- Send a command to all members of the current team. Trying to use a goble channel to send all communications on.
-local function CommandAll( moduleName, commandName, ... )
-    AJM:DebugMessage( "Command All: ", moduleName, commandName, ... )
-	-- Get the message to send.
-	local message = CreateCommandToSend( moduleName, commandName, ... )
-	for characterName, characterOrder in JambaPrivate.Team.TeamList() do
-		-- Send command to all in party.
-		--if UnitInParty( characterName ) == true then	and not isInInstance
-		--local Instance, instanceType = IsInInstance()
-		--AJM.Print("Raid test", Instance)
-		--if Instance == false then
-		if UnitInParty( Ambiguate( characterName, "none" ) ) == true then
-			if not UnitInBattleground( "player" ) then
-				--if not IsInInstance("raid") then
-				--AJM.Print("UnitisinParty", characterName )
-					AJM:DebugMessage("Sending command to group.", message, "Group", nil)
-							AJM:SendCommMessage(
-							AJM.COMMAND_PREFIX,
-							message,
-							AJM.COMMUNICATION_GROUP,
-							nil,
-							AJM.COMMUNICATION_PRIORITY_ALERT
-							)
-				--end
-			end
-		else
-			if IsCharacterOnline( characterName ) == true then
-				AJM:DebugMessage("Sending command to others not in party/raid.", message, "WHISPER", characterName, "online", IsCharacterOnline)
-					AJM:SendCommMessage(
-					AJM.COMMAND_PREFIX,
-					message,
-					AJM.COMMUNICATION_WHISPER,
-					characterName,
-					AJM.COMMUNICATION_PRIORITY_ALERT
-					)
-			end
-		end
-	end
-end
---]]

 local function CommandAll( moduleName, commandName, ... )
    -- AJM:DebugMessage( "Command All: ", moduleName, commandName, ... )
@@ -211,9 +162,19 @@ local function CommandAll( moduleName, commandName, ... )
 	-- Get the message to send.
 	local message = CreateCommandToSend( moduleName, commandName, ... )
 	local channel
+	if AJM.db.useGuildComms == true then
+			AJM:SendCommMessage(
+			AJM.COMMAND_PREFIX,
+			message,
+			AJM.COMMUNICATION_GUILD,
+			nil,
+			AJM.COMMUNICATION_PRIORITY_ALERT
+			)
+		return
+	end
 	-- toon has to be in a group
 	if UnitInBattleground( "player" ) then
-	AJM:DebugMessage( "PvP_INSTANCE")
+		AJM:DebugMessage( "PvP_INSTANCE")
 		channel = "INSTANCE_CHAT"
 	elseif IsInGroup() then
 		AJM:DebugMessage( "Group")
@@ -254,19 +215,18 @@ local function CommandAll( moduleName, commandName, ... )
 	end
 	--if the unit is not in the party then it unlikely did not get the party message,
 	for characterName, characterOrder in JambaPrivate.Team.TeamList() do
-		--AJM:Print( "Toon not in party:", characterName)
-		if UnitInParty( Ambiguate( characterName, "none" ) ) == false then
+		if UnitInParty( Ambiguate( characterName, "none" ) ) == false then
 			AJM:DebugMessage( "Toon not in party:", characterName)
 			if IsCharacterOnline( characterName ) == true then
 				AJM:DebugMessage("Sending command to others not in party/raid.", message, "WHISPER", characterName)
-					AJM:SendCommMessage(
-					AJM.COMMAND_PREFIX,
-					message,
-					AJM.COMMUNICATION_WHISPER,
-					characterName,
-					AJM.COMMUNICATION_PRIORITY_ALERT
-					)
-					--AJM:Print("testWis", AJM.COMMAND_PREFIX, AJM.COMMUNICATION_WHISPER, characterName , AJM.COMMUNICATION_PRIORITY_ALERT)
+				AJM:SendCommMessage(
+				AJM.COMMAND_PREFIX,
+				message,
+				AJM.COMMUNICATION_WHISPER,
+				characterName,
+				AJM.COMMUNICATION_PRIORITY_ALERT
+				)
+				--AJM:Print("testWis", AJM.COMMAND_PREFIX, AJM.COMMUNICATION_WHISPER, characterName , AJM.COMMUNICATION_PRIORITY_ALERT)
 			end
 		end
 	end
@@ -346,30 +306,6 @@ end
 ChatFrame_AddMessageEventFilter("CHAT_MSG_SYSTEM", SystemSpamFilter)


---Ebony old way. was this is a better way? it did not work with EvlUI.
---[[
-function AJM:ChatFrame_MessageEventHandler(frame, event, msg, ...)
-		--if event == "CHAT_MSG_SYSTEM" then
-		if( event == "CHAT_MSG_SYSTEM") then
-			--local match = strmatch(msg, format(ERR_CHAT_PLAYER_NOT_FOUND_S, "(.+)"))
-				--if match then
-					if msg:match(string.format(ERR_CHAT_PLAYER_NOT_FOUND_S, "(.+)")) then
-					return true
-				--if (not match) then
-				--IF not match then Go about whatever you wonted to do, If match hide Msg from player.
-				--self:DebugMessage( "Not matched!" )
-				--self.hooks.ChatFrame_MessageEventHandler(frame, event, ...)
-				--AJM.hooks["ChatFrame_MessageEventHandler"]( self, event, ... )
-			end
-		else
-		self.hooks.ChatFrame_MessageEventHandler(frame, event, ...);
-		end
-
-end
---]]
---ChatFrame_AddMessageEventFilter("CHAT_MSG_SYSTEM", SystemSpamFilter)
---AJM.ChatFrame_AddMessageEventVanasKoS("CHAT_MSG_SYSTEM", AJM:ChatFrame_MessageEventHandler)
-

 -- Receive a command from another character.
 function AJM:CommandReceived( prefix, message, distribution, sender )
@@ -381,12 +317,12 @@ function AJM:CommandReceived( prefix, message, distribution, sender )
 		--checks the char is in the team if not everyone can change settings and we do not want that
 		if JambaPrivate.Team.IsCharacterInTeam( sender ) == true then
 		    AJM:DebugMessage( "Sender is in team list." )
-		   --automaic setting team members online. -- we don't really need to keep sending this so we add a if
+		   --automaic setting team members online.
 			--AJM:Print("toonnonline", sender )
-			if JambaPrivate.Team.GetCharacterOnlineStatus( characterName ) == false then
-				--AJM:Print("Setting Toon online", sender, characterName )
-				JambaApi.setOnline( characterName, true)
-			end
+				if JambaPrivate.Team.GetCharacterOnlineStatus( characterName ) == false then
+					--AJM:Print("Setting Toon online", distribution, sender, characterName )
+					JambaApi.setOnline( characterName, true)
+				end
 			-- Split the command into its components.
 			local moduleName, commandName, argumentsStringSerialized = strsplit( AJM.COMMAND_SEPERATOR, message )
 			local argumentsTable  = {}
@@ -479,7 +415,6 @@ function AJM:OnInitialize()
 	self.characterName = self.characterNameLessRealm.."-"..self.characterRealm
 	AJM.characterGUID = UnitGUID( "player" )
 	-- End of needed:
-	--AJM:RegisterChatCommand( AJM.chatCommand, "JambaChatCommand" )
 	-- Register communications as a module.
 	JambaPrivate.Core.RegisterModule( AJM, AJM.moduleName )
 end
@@ -487,6 +422,7 @@ end
 function AJM:OnEnable()
 	--local hookSecure = true
 	--AJM:RawHook( "ChatFrame_MessageEventHandler", true )
+	AJM:RegisterEvent("GUILD_ROSTER_UPDATE")
 	if AJM.db.boostCommunication == true then
 		AJM:BoostCommunication()
 		-- Repeat every 5 minutes.
@@ -516,23 +452,29 @@ function AJM:JambaChatCommand( input )
     end
 end

---[[
-function AJM:StopChannelPollTimer()
-	if AJM.channelPollTimer ~= nil then
-		AJM:CancelTimer( AJM.channelPollTimer )
-	end
-end
-
-
-function AJM:StartChannelPollTimer()
-	-- Poll for characters every 5 seconds.
-	AJM.channelPollTimer = AJM:ScheduleRepeatingTimer( ListChannelByName, 5, AJM.lastChannel )
-end
---]]
 function AJM:OnDisable()
 	--AJM:CancelAllTimers()
 end

+function AJM:GUILD_ROSTER_UPDATE(event, ... )
+	if AJM.db.useGuildComms == false then
+		return
+	end
+	local numGuildMembers, numOnline, numOnlineAndMobile = GetNumGuildMembers()
+	for index = 1, numGuildMembers do
+		characterName,_,_,_,class,_,_,_,online,status,classFileName,_, _,isMobile = GetGuildRosterInfo(index)
+		--AJM:Print("Name", fullName, "online", online )
+		if online == false then
+			if AJM.db.autoSetTeamOnlineorOffline == true then
+				if JambaApi.IsCharacterInTeam(characterName) == true and IsCharacterOnline( characterName ) == true then
+					JambaApi.setOffline( characterName, false )
+					--AJM:Print("player offline in team", characterName )
+				end
+			end
+		end
+	end
+end
+
 -------------------------------------------------------------------------------------------------------------
 -- Settings Dialogs.
 -------------------------------------------------------------------------------------------------------------
@@ -612,18 +554,40 @@ function AJM:SettingsCreateOptions( top )
 		L["**reload UI to take effect, may cause disconnections"]
 	)
 	movingTop = movingTop - buttonHeight
-	AJM.settingsControl.checkBoxShowChannel = JambaHelperSettings:CreateCheckBox(
+	AJM.settingsControl.checkBoxUseGuildComms = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		headingWidth,
 		column1Left,
 		movingTop,
+		L["Use Guild Communications***"],
+		AJM.CheckBoxUseGuildComms
+	)
+	movingTop = movingTop - checkBoxHeight
+	AJM.settingsControl.labelInformationBNComms = JambaHelperSettings:CreateContinueLabel(
+		AJM.settingsControl,
+		headingWidth,
+		column1Left,
+		movingTop,
+		L["*** EveryToon will be classed as online and needs to be in same guild!"]
+	)
+--[[	AJM.settingsControl.checkBoxShowChannel = JambaHelperSettings:CreateCheckBox(
+		AJM.settingsControl,
+		headingWidth,
+		column1Left,
+		movingTop,
 		L["Show Online Channel Traffic (For Debugging Purposes)"],
 		AJM.CheckBoxShowChannelClick
 	)
+]]
 	movingTop = movingTop - checkBoxHeight
 	return movingTop
 end

+function AJM:CheckBoxUseGuildComms( event, value )
+	AJM.db.useGuildComms = value
+	AJM:SettingsRefresh()
+end
+
 function AJM:CheckBoxBoostCommunication( event, value )
 	AJM.db.boostCommunication = value
 	AJM:SettingsRefresh()
@@ -650,6 +614,7 @@ function AJM:SettingsRefresh()
 --	AJM.settingsControl.checkBoxAssumeAlwaysOnline:SetValue( AJM.db.assumeTeamAlwaysOnline )
 	AJM.settingsControl.checkBoxAutoSetTeamOnlineorOffline:SetValue( AJM.db.autoSetTeamOnlineorOffline )
 	AJM.settingsControl.checkBoxBoostCommunication:SetValue( AJM.db.boostCommunication )
+	AJM.settingsControl.checkBoxUseGuildComms:SetValue( AJM.db.useGuildComms )
 end

 -- Settings received.
@@ -664,6 +629,7 @@ function AJM:JambaOnSettingsReceived( characterName, settings )
 		AJM.db.assumeTeamAlwaysOnline = settings.assumeTeamAlwaysOnline
 		AJM.db.autoSetTeamOnlineorOffline = settings.autoSetTeamOnlineorOffline
 		AJM.db.boostCommunication = settings.boostCommunication
+		AJM.db.useGuildComms = settings.useGuildComms
 		-- Refresh the settings.
 		AJM:SettingsRefresh()
 		-- Tell the player.
@@ -673,55 +639,6 @@ function AJM:JambaOnSettingsReceived( characterName, settings )
 	end
 end

--- text = message to send
--- chatDestination = "PARTY, WHISPER, RAID, CHANNEL, etc"
--- characterOrChannelName = character name if WHISPER or channel name if CHANNEL or nil otherwise
--- priority = one of
---   AJM.COMMUNICATION_PRIORITY_BULK,
---   AJM.COMMUNICATION_PRIORITY_NORMAL
---   AJM.COMMUNICATION_PRIORITY_ALERT
-local function SendChatMessage( text, chatDestination, characterOrChannelName, priority )
-	-- Message small enough to send?
-	AJM:Print("test", text, chatDestination, characterOrChannelName, priority)
-
-	if text:len() <= 255 then
-		--AJM:Print("test TURE!!!!! TOBIG" )
-		ChatThrottleLib:SendChatMessage( priority, AJM.MESSAGE_PREFIX, text, chatDestination, nil, characterOrChannelName, nil )
-
-
-	else
-		-- No, message is too big, split into smaller messages, taking UTF8 characters into account.
-		local bytesAvailable = string.utf8len(text1)
-		local currentPosition = 1
-		local countBytes = 1
-		local startPosition = currentPosition
-		local splitText = ""
-		-- Iterate all the utf8 characters, character by character until we reach 255 characters, then send
-		-- those off and start counting over.
-		while currentPosition <= bytesAvailable do
-			-- Count the number of bytes the character at this position takes up.
-			countBytes = countBytes + jambautf8charbytes( text, currentPosition )
-			-- More than 255 bytes yet?
-			if countBytes <= 255 then
-				-- No, increment the position and keep counting.
-				currentPosition = currentPosition + jambautf8charbytes( text, currentPosition )
-			else
-				-- Yes, more than 255.  Send this amount off.
-				splitText = text:sub( startPosition, currentPosition )
-				ChatThrottleLib:SendChatMessage( priority, AJM.MESSAGE_PREFIX, splitText, chatDestination, nil, characterOrChannelName, nil )
-				-- New start position and count.
-				startPosition = currentPosition + 1
-				countBytes = 1
-			end
-		end
-		-- Any more bytes left to send?
-		if startPosition < currentPosition then
-			-- Yes, send them.
-			splitText = text:sub( startPosition, currentPosition )
-			ChatThrottleLib:SendChatMessage( priority, AJM.MESSAGE_PREFIX, splitText, chatDestination, nil, characterOrChannelName, nil )
-		end
-	end
-end

 -- Functions available from Jamba Communications for other Jamba internal objects.
 JambaPrivate.Communications.COMMUNICATION_PRIORITY_BULK = AJM.COMMUNICATION_PRIORITY_BULK
@@ -735,13 +652,3 @@ JambaPrivate.Communications.SendCommandToon = SendCommandToon
 JambaPrivate.Communications.SendCommandMaster = SendCommandMaster
 JambaPrivate.Communications.SendCommandToon = SendCommandToon
 JambaPrivate.Communications.AssumeTeamAlwaysOnline = AssumeTeamAlwaysOnline
--- moved to jamba-team
---JambaPrivate.Communications.MESSAGE_CHARACTER_ONLINE = AJM.MESSAGE_CHARACTER_ONLINE
---JambaPrivate.Communications.MESSAGE_CHARACTER_OFFLINE = AJM.MESSAGE_CHARACTER_OFFLINE
-JambaApi.SendChatMessage = SendChatMessage
-JambaApi.COMMUNICATION_PRIORITY_BULK = AJM.COMMUNICATION_PRIORITY_BULK
-JambaApi.COMMUNICATION_PRIORITY_NORMAL = AJM.COMMUNICATION_PRIORITY_NORMAL
-JambaApi.COMMUNICATION_PRIORITY_ALERT = AJM.COMMUNICATION_PRIORITY_ALERT
--- moved to jamba-team
---JambaApi.MESSAGE_CHARACTER_ONLINE = AJM.MESSAGE_CHARACTER_ONLINE
---JambaApi.MESSAGE_CHARACTER_OFFLINE = AJM.MESSAGE_CHARACTER_OFFLINE
diff --git a/Jamba/JambaCore.lua b/Jamba/JambaCore.lua
index 4a74c64..87ef9d6 100644
--- a/Jamba/JambaCore.lua
+++ b/Jamba/JambaCore.lua
@@ -353,7 +353,12 @@ local function SendCommandToTeam( moduleAddress, commandName, ... )
 	-- Get the name of the module.
 	local moduleName = AJM.registeredModulesByAddress[moduleAddress]
 	-- Send the command identified by the module name.
+	if moduleAddress == nil then
+		AJM:Print(L["Module Not Loaded:"], moduleName)
+		return
+	else
 	JambaPrivate.Communications.SendCommandAll( moduleName, commandName, ... )
+	end
 end

 -- Send a command for the module specified (using its address) to the master character.
@@ -361,14 +366,24 @@ local function SendCommandToMaster( moduleAddress, commandName, ... )
 	-- Get the name of the module.
 	local moduleName = AJM.registeredModulesByAddress[moduleAddress]
 	-- Send the command identified by the module name.
+	if moduleAddress == nil then
+		AJM:Print(L["Module Not Loaded:"], moduleName)
+		return
+	else
 	JambaPrivate.Communications.SendCommandMaster( moduleName, commandName, ... )
+	end
 end

 local function SendCommandToToon( moduleAddress, characterName, commandName, ... )
 	-- Get the name of the module.
 	local moduleName = AJM.registeredModulesByAddress[moduleAddress]
 	-- Send the command identified by the module name.
+	if moduleAddress == nil then
+		AJM:Print(L["Module Not Loaded:"], moduleName)
+		return
+	else
 	JambaPrivate.Communications.SendCommandToon( moduleName, characterName, commandName, ... )
+	end
 end

 -- A command is received, pass it to the relevant module.
@@ -377,7 +392,12 @@ local function OnCommandReceived( sender, moduleName, commandName, ... )
 	-- Get the address of the module.
 	local moduleAddress = AJM.registeredModulesByName[moduleName]
 	-- Pass the module its settings.
-	moduleAddress:JambaOnCommandReceived( sender, commandName, ... )
+	if moduleAddress == nil then
+		AJM:Print(L["Module Not Loaded:"], moduleName)
+		return
+	else
+		moduleAddress:JambaOnCommandReceived( sender, commandName, ... )
+	end
 end

 -------------------------------------------------------------------------------------------------------------
@@ -669,7 +689,7 @@ function AJM:CoreSettingsCreateInfo( top )
 		L["Text10"]
 	)
 	--movingTop = movingTop - labelContinueHeight
-	movingTop = movingTop - buttonHeight * 3
+--[[	movingTop = movingTop - buttonHeight * 3
 	AJM.settingsControl.buttonPushSettingsForAllModules = JambaHelperSettings:CreateButton(
 		AJM.settingsControl,
 		buttonPushAllSettingsWidth,
@@ -679,6 +699,7 @@ function AJM:CoreSettingsCreateInfo( top )
 		AJM.ShowChangeLog,
 		L["Shows the Full changelog\nOpens a new Frame."]
 	)
+--]]
 	-- Special thanks Heading

 	movingTop = movingTop - buttonHeight
@@ -706,7 +727,7 @@ function AJM:CoreSettingsCreateInfo( top )
 		headingWidth,
 		column1Left,
 		movingTop,
-		L["To Schilm (Max Schilling) for Advanced Loot and Jamba-Quest for 4.3"]
+		L["To Schilm (Max Schilling) for Advanced Loot"]
 	)
 	-- Useful websites Heading
 	movingTop = movingTop - labelContinueHeight * 2
diff --git a/Jamba/JambaEmbeds.xml b/Jamba/JambaEmbeds.xml
index 0f2ee8c..9788a46 100644
--- a/Jamba/JambaEmbeds.xml
+++ b/Jamba/JambaEmbeds.xml
@@ -29,6 +29,7 @@ http://jafula.com/jamba/
 	<Include file="Libs\LibDeformat-3.0\lib.xml" />
 	<Include file="LibItemUtilsJamba-1.0.lua" />
 	<Include file="LibActionButtonJamba-1.0.lua" />
+	<Include file="Libs\LibButtonGlow-1.0\LibButtonGlow-1.0.lua" />
 	<Include file="Libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua" />
 	<Include file="Libs\UTF8\utf8data.lua" />
 	<Include file="Libs\UTF8\utf8.lua" />
@@ -36,4 +37,6 @@ http://jafula.com/jamba/
 	<Include file="AceGUIWidget-JambaNormalLabel.lua" />
 	<Include file="AceGUIWidget-JambaContinueLabel.lua" />
 	<Include file="AceGUIWidget-JambaKeybinding.lua" />
+	<Include file="Libs\LibItemUpgradeInfo-1.0\LibItemUpgradeInfo-1.0.xml" />
+
 </Ui>
diff --git a/Jamba/JambaMessage.lua b/Jamba/JambaMessage.lua
index 3cac3d0..db70abc 100644
--- a/Jamba/JambaMessage.lua
+++ b/Jamba/JambaMessage.lua
@@ -1033,4 +1033,4 @@ JambaPrivate.Message.SendMessage = SendMessage
 JambaApi.MessageAreaList = MessageAreaList
 JambaApi.DefaultMessageArea = DefaultMessageArea
 JambaApi.DefaultWarningArea = DefaultWarningArea
-JambaApi.MESSAGE_MESSAGE_AREAS_CHANGED = AJM.MESSAGE_MESSAGE_AREAS_CHANGED
+JambaApi.MESSAGE_MESSAGE_AREAS_CHANGED = AJM.MESSAGE_MESSAGE_AREAS_CHANGED
\ No newline at end of file
diff --git a/Jamba/JambaStartupMessage.xml b/Jamba/JambaStartupMessage.xml
index db4cbfb..c6c9507 100644
--- a/Jamba/JambaStartupMessage.xml
+++ b/Jamba/JambaStartupMessage.xml
@@ -79,4 +79,4 @@
             </Button>
         </Frames>
     </Frame>
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/JambaTag.lua b/Jamba/JambaTag.lua
index 56210e6..1dc7b49 100644
--- a/Jamba/JambaTag.lua
+++ b/Jamba/JambaTag.lua
@@ -765,4 +765,4 @@ JambaApi.AllTagsList = AllTagsList
 JambaApi.AllTagsListIterator = AllTagsListIterator
 JambaApi.DoesCharacterHaveTag = DoesCharacterHaveTag
 JambaApi.IsAValidTag = IsAValidTag
-JambaApi.GetCharacterWithTag = GetCharacterWithTag
+JambaApi.GetCharacterWithTag = GetCharacterWithTag
\ No newline at end of file
diff --git a/Jamba/JambaTeam.lua b/Jamba/JambaTeam.lua
index e0c8864..32fc934 100644
--- a/Jamba/JambaTeam.lua
+++ b/Jamba/JambaTeam.lua
@@ -39,6 +39,7 @@ AJM.settings = {
 		master = "",
         teamList = {},
 		characterOnline = {},
+		characterClass = {},
 		focusChangeSetMaster = false,
 		masterChangePromoteLeader = false,
 		inviteAcceptTeam = true,
@@ -47,6 +48,7 @@ AJM.settings = {
 		inviteAcceptGuild = false,
 		inviteDeclineStrangers = false,
 		inviteConvertToRaid = true,
+		inviteSetAllAssistant = false,
 		lootSetAutomatically = false,
 		lootSetFreeForAll = true,
 		lootSetGroupLoot = false,
@@ -102,7 +104,7 @@ function AJM:GetConfiguration()
 			invite = {
 				type = "input",
 				name = L["Invite"],
-				desc = L["Invite team members to a party."],
+				desc = L["Invite team members to a party with or without a <tag>."],
 				usage = "/jamba-team invite",
 				get = false,
 				set = "InviteTeamToParty",
@@ -111,7 +113,7 @@ function AJM:GetConfiguration()
 				type = "input",
 				name = L["Invites"],
 				desc = L["Invite team members to a <tag> party."],
-				usage = "/jamba-team invite <tag>",
+				usage = "/jamba-team inviteTag <tag>",
 				get = false,
 				set = "InviteTeamToPartys",
 			},
@@ -295,7 +297,7 @@ local function SettingsCreateTeamList()
 		topOfList - verticalSpacing - buttonHeight - verticalSpacing - buttonHeight - verticalSpacing - buttonHeight,
 		L["Add Party"],
 		AJM.SettingsAddPartyClick,
-		L["Adds all Party members to the team list"]
+		L["Adds all Party/Raid members to the team list"]
 	)
 	AJM.settingsControl.teamListButtonRemove = JambaHelperSettings:CreateButton(
 		AJM.settingsControl,
@@ -304,7 +306,7 @@ local function SettingsCreateTeamList()
 		topOfList - verticalSpacing - buttonHeight - verticalSpacing - buttonHeight - verticalSpacing - buttonHeight - verticalSpacing - buttonHeight,
 		L["Remove"],
 		AJM.SettingsRemoveClick,
-		L["Removes Party members from the team list"]
+		L["Removes Members from the team list"]
 	)
 	AJM.settingsControl.teamListButtonSetMaster = JambaHelperSettings:CreateButton(
 		AJM.settingsControl,
@@ -393,7 +395,7 @@ local function SettingsCreatePartyInvitationsControl( top )
 	local checkBoxWidth = (headingWidth - horizontalSpacing) / 2
 	local column1Left = left
 	local column2Left = left + checkBoxWidth + horizontalSpacing
-	local bottomOfSection = top - headingHeight - (checkBoxHeight * 3) - (verticalSpacing * 2)
+	local bottomOfSection = top - headingHeight - (checkBoxHeight * 4) - (verticalSpacing * 2)
 	-- Create a heading.
 	JambaHelperSettings:CreateHeading( AJM.settingsControl, L["Party Invitations Control"], top, false )
 	-- Create checkboxes.
@@ -406,11 +408,20 @@ local function SettingsCreatePartyInvitationsControl( top )
 		AJM.SettingsinviteConvertToRaidToggle,
 		L["Auto Convert To Raid if team is over five character's"]
 	)
-	AJM.settingsControl.partyInviteControlCheckBoxAcceptMembers = JambaHelperSettings:CreateCheckBox(
+	AJM.settingsControl.partyInviteControlCheckBoxSetAllAssist = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		checkBoxWidth,
 		column2Left,
-		top - headingHeight,
+		top - headingHeight,
+		L["Auto Set All Assistant"],
+		AJM.SettingsinviteSetAllAssistToggle,
+		L["Auto Set all raid Member's to Assistant"]
+	)
+	AJM.settingsControl.partyInviteControlCheckBoxAcceptMembers = JambaHelperSettings:CreateCheckBox(
+		AJM.settingsControl,
+		checkBoxWidth,
+		column1Left,
+		top - headingHeight - checkBoxHeight,
 		L["Accept from team."],
 		AJM.SettingsAcceptInviteMembersToggle,
 		L["Auto Accept invites from the team."]
@@ -418,7 +429,7 @@ local function SettingsCreatePartyInvitationsControl( top )
 	AJM.settingsControl.partyInviteControlCheckBoxAcceptFriends = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		checkBoxWidth,
-		column1Left,
+		column2Left,
 		top - headingHeight - checkBoxHeight,
 		L["Accept from friends."],
 		AJM.SettingsAcceptInviteFriendsToggle,
@@ -427,16 +438,16 @@ local function SettingsCreatePartyInvitationsControl( top )
 	AJM.settingsControl.partyInviteControlCheckBoxAcceptBNFriends = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		checkBoxWidth,
-		column2Left,
-		top - headingHeight - checkBoxHeight,
-		L["Accept from BattleNet friends."],
+		column1Left,
+		top - headingHeight - checkBoxHeight - checkBoxHeight,
+		L["Accept From BattleTag Friends."],
 		AJM.SettingsAcceptInviteBNFriendsToggle,
-		L["Auto Accept invites from your Battlenet or RealID Friends list."]
+		L["Auto Accept invites from your BatteTag or RealID Friends list."]
 	)
 	AJM.settingsControl.partyInviteControlCheckBoxAcceptGuild = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		checkBoxWidth,
-		column1Left,
+		column2Left,
 		top - headingHeight - checkBoxHeight - checkBoxHeight,
 		L["Accept from guild."],
 		AJM.SettingsAcceptInviteGuildToggle,
@@ -445,8 +456,8 @@ local function SettingsCreatePartyInvitationsControl( top )
 	AJM.settingsControl.partyInviteControlCheckBoxDeclineStrangers = JambaHelperSettings:CreateCheckBox(
 		AJM.settingsControl,
 		checkBoxWidth,
-		column2Left,
-		top - headingHeight  - checkBoxHeight - checkBoxHeight,
+		column1Left,
+		top - headingHeight  - checkBoxHeight - checkBoxHeight - checkBoxHeight,
 		L["Decline from strangers."],
 		AJM.SettingsDeclineInviteStrangersToggle,
 		L["Decline invites from anyone else."]
@@ -468,7 +479,7 @@ local function SettingsCreatePartyLootControl( top )
 	local indentContinueLabel = horizontalSpacing * 13
 	local column1Left = left
 	local column2Left = left + checkBoxWidth + horizontalSpacing
-	local bottomOfSection = top - headingHeight - checkBoxHeight - radioBoxHeight - verticalSpacing - checkBoxHeight - checkBoxHeight - (verticalSpacing * 4) - labelContinueHeight - checkBoxHeight
+	local bottomOfSection = top - headingHeight - checkBoxHeight - radioBoxHeight - verticalSpacing - checkBoxHeight - checkBoxHeight -  checkBoxHeight - (verticalSpacing * 4) - labelContinueHeight - checkBoxHeight
 	-- Create a heading.
 	JambaHelperSettings:CreateHeading( AJM.settingsControl, L["Party Loot Control (Instances)"], top, false )
 	-- Create checkboxes.
@@ -626,9 +637,24 @@ local function TeamList()
 end

 local function Offline()
-	return pairs( AJM.db.characterOnline)
+	return pairs( AJM.db.characterOnline )
+end
+
+local function characterClass()
+	return pairs( AJM.db.characterClass )
 end

+local function setClass()
+	for characterName, position in pairs( AJM.db.teamList ) do
+	local class, classFileName, classIndex = UnitClass( Ambiguate(characterName, "none") )
+		--AJM:Print("new", class, CharacterName )
+		if class ~= nil then
+			AJM.db.characterClass[characterName] = classFileName
+		end
+	end
+end
+
+
 -- Get the largest order number from the team list.
 local function GetTeamListMaximumOrder()
 	local largestPosition = 0
@@ -754,11 +780,19 @@ local function AddMember( characterName )
 	if characterName ~= nil and characterName:trim() ~= "" and characterName:len() > 1 then
 		-- If the character is not already in the list...
 		local character = JambaUtilities:AddRealmToNameIfMissing( characterName )
-			if AJM.db.teamList[character] == nil then
+		if AJM.db.teamList[character] == nil then
 			-- Get the maximum order number.
 			local maxOrder = GetTeamListMaximumOrder()
 			-- Yes, add to the member list.
 			AJM.db.teamList[character] = maxOrder + 1
+
+			local class, classFileName, classIndex = UnitClass( characterName )
+			if class ~= nil then
+				--AJM:Print( classFileName )
+				AJM.db.characterClass[character] = classFileName
+			else
+				AJM.db.characterClass[character] = nil
+			end
 			JambaPrivate.Team.SetTeamOnline()
 			--AJM.Print("teamList", character)
 			-- Send a message to any listeners that AJM character has been added.
@@ -779,12 +813,23 @@ end

 -- Add all party members to the member list. does not worl cross rwalm todo
 function AJM:AddPartyMembers()
-	local numberPartyMembers = GetNumSubgroupMembers()
+	--local numberPartyMembers = GetNumSubgroupMembers()
+	local numberPartyMembers = GetNumGroupMembers()
 	for iteratePartyMembers = numberPartyMembers, 1, -1 do
-		local partyMemberName, partyMemberRealm = UnitName( "party"..iteratePartyMembers )
-		local character = JambaUtilities:AddRealmToNameIfNotNil( partyMemberName, partyMemberRealm )
-		if IsCharacterInTeam( character ) == false then
-			AddMember( character )
+		--AJM:Print("party/raid", numberPartyMembers, iteratePartyMembers)
+		local inRaid = IsInRaid()
+		if inRaid == true then
+			local partyMemberName, partyMemberRealm = UnitName( "raid"..iteratePartyMembers )
+			local character = JambaUtilities:AddRealmToNameIfNotNil( partyMemberName, partyMemberRealm )
+			if IsCharacterInTeam( character ) == false then
+				AddMember( character )
+			end
+		else
+			local partyMemberName, partyMemberRealm = UnitName( "party"..iteratePartyMembers )
+			local character = JambaUtilities:AddRealmToNameIfNotNil( partyMemberName, partyMemberRealm )
+			if IsCharacterInTeam( character ) == false then
+				AddMember( character )
+			end
 		end
 	end
 end
@@ -1048,30 +1093,25 @@ end
 -------------------------------------------------------------------------------------------------------------

 -- Invite team to party.
-function AJM:InviteTeamToParty()
-	-- Iterate each enabled member and invite them to a group.
-	AJM.inviteList = {}
-	AJM.inviteCount = 0
-	for index, characterName in TeamListOrdered() do
-		if GetCharacterOnlineStatus( characterName ) == true then
-			-- As long as they are not the player doing the inviting.
-			if characterName ~= AJM.characterName then
-				AJM.inviteList[AJM.inviteCount] = characterName
-				AJM.inviteCount = AJM.inviteCount + 1
-			end
-		end
-	end
-	AJM.currentInviteCount = 0
-	AJM:ScheduleTimer( "DoTeamPartyInvite", 0.5 )
+
+function AJM:InviteTeamToPartys()
+	--Clean up in next xpac!
+	AJM:Print("This Command Has Been Removed and is now used as \"/Jamba-Team Invite <TagName>/")
 end

+
 function AJM.DoTeamPartyInvite()
 	InviteUnit( AJM.inviteList[AJM.currentInviteCount] )
 	AJM.currentInviteCount = AJM.currentInviteCount + 1
 	if AJM.currentInviteCount < AJM.inviteCount then
 		--if GetTeamListMaximumOrderOnline() > 5 and AJM.db.inviteConvertToRaid == true then
 		if AJM.inviteCount > 5 and AJM.db.inviteConvertToRaid == true then
-		ConvertToRaid()
+			if AJM.db.inviteSetAllAssistant == true then
+				ConvertToRaid()
+				SetEveryoneIsAssistant(true)
+			else
+				ConvertToRaid()
+			end
 		end
 		AJM:ScheduleTimer( "DoTeamPartyInvite", 0.5 )
 	else
@@ -1081,28 +1121,28 @@ function AJM.DoTeamPartyInvite()
 	end
 end

-function AJM:InviteTeamToPartys( info, tag )
+
+function AJM:InviteTeamToParty( info, tag )
 	-- Iterate each enabled member and invite them to a group.
-	if tag == nil then
-	return
+	if tag == nil or tag == "" then
+		tag = "all"
 	end
-	if JambaPrivate.Tag.DoesCharacterHaveTag( AJM.characterName, tag ) == false then
-		--AJM:Print("IDONOTHAVETAG", tag)
-		for index, characterName in TeamListOrdered() do
-			--AJM:Print("NextChartohavetag", tag, characterName )
-			if JambaPrivate.Tag.DoesCharacterHaveTag( characterName, tag ) then
-				--AJM:Print("i have tag", tag, characterName )
-				AJM:JambaSendCommandToTeam( AJM.COMMAND_TAG_PARTY, characterName, tag )
-				break
+	if JambaUtilities:InTagList(tag) == true then
+		if JambaPrivate.Tag.DoesCharacterHaveTag( AJM.characterName, tag ) == false then
+			--AJM:Print("IDONOTHAVETAG", tag)
+			for index, characterName in TeamListOrderedOnline() do
+				--AJM:Print("NextChartohavetag", tag, characterName )
+				if JambaPrivate.Tag.DoesCharacterHaveTag( characterName, tag ) then
+					--AJM:Print("i have tag", tag, characterName )
+					AJM:JambaSendCommandToTeam( AJM.COMMAND_TAG_PARTY, characterName, tag )
+					break
+				end
 			end
-		end
-		return
-	else
-		AJM.inviteList = {}
-		AJM.inviteCount = 0
-		for index, characterName in TeamListOrdered() do
-			if GetCharacterOnlineStatus( characterName ) == true then
-				--AJM:Print("test", characterName, tag )
+			return
+		else
+			AJM.inviteList = {}
+			AJM.inviteCount = 0
+			for index, characterName in TeamListOrderedOnline() do
 				if JambaPrivate.Tag.DoesCharacterHaveTag( characterName, tag ) then
 					--AJM:Print("HasTag", characterName, tag )
 					-- As long as they are not the player doing the inviting.
@@ -1113,17 +1153,19 @@ function AJM:InviteTeamToPartys( info, tag )
 				end
 			end
 		end
-	end
-	AJM.currentInviteCount = 0
-	AJM:ScheduleTimer( "DoTeamPartyInvite", 0.5 )
+		AJM.currentInviteCount = 0
+		AJM:ScheduleTimer( "DoTeamPartyInvite", 0.5 )
+	else
+	AJM:Print (L["Unknown Tag "]..tag )
+	end
 end

-function AJM:TagParty(test, characterName, tag, ...)
+function AJM:TagParty(event, characterName, tag, ...)
 	--AJM:Print("test", characterName, tag )
 	if AJM.characterName == characterName then
 	 --AJM:Print("this msg is for me", characterName )
 		if JambaPrivate.Tag.DoesCharacterHaveTag( AJM.characterName, tag ) then
-			AJM:InviteTeamToPartys( nil, tag)
+			AJM:InviteTeamToParty( nil, tag)
 		else
 			return
 		end
@@ -1241,14 +1283,12 @@ function AJM:PARTY_INVITE_REQUEST( event, inviter, ... )
 		-- Accept an invite from BNET/RealD?
 		if AJM.db.inviteAcceptBNFriends and BNFeaturesEnabledAndConnected() == true then
 			-- Iterate each friend; searching for the inviter in the friends list.
-			for bnIndex = 1, BNGetNumFriends() do
-			--local _, _, _, _, name, toonid = BNGetFriendGameAccountInfo( bnIndex )
+			local _, numFriends = BNGetNumFriends()
+			for bnIndex = 1, numFriends do
 				for toonIndex = 1, BNGetNumFriendGameAccounts( bnIndex ) do
 					local _, toonName, client, realmName = BNGetFriendGameAccountInfo( bnIndex, toonIndex )
-					--AJM:Print("Test", inviter, toonName, realmName, client )
+					--AJM:Print("BNFrindsTest", toonName, client, realmName, "inviter", inviter)
 					if client == "WoW" then
-						--inviter = inviter:match("(.+)%-.+") or inviter
-						--AJM:Print("True", toonName.."-"..realmName )
 						if toonName == inviter or toonName.."-"..realmName == inviter then
 							acceptInvite = true
 							break
@@ -1371,6 +1411,9 @@ function AJM:OnInitialize()
 			AJM.db.teamList = JambaUtilities:CopyTable( updatedTeamList )
 		end
 	end
+	--Sets The class of the char.
+	setClass()
+
 --todo look at this ebony
 --	local updateMatchStart = AJM.db.master:find( "-" )
 --	if not updateMatchStart then
@@ -1431,6 +1474,7 @@ function AJM:SettingsRefresh()
 	AJM.settingsControl.partyInviteControlCheckBoxAcceptGuild:SetValue( AJM.db.inviteAcceptGuild )
 	AJM.settingsControl.partyInviteControlCheckBoxDeclineStrangers:SetValue( AJM.db.inviteDeclineStrangers )
 	AJM.settingsControl.partyInviteControlCheckBoxConvertToRaid:SetValue( AJM.db.inviteConvertToRaid )
+	AJM.settingsControl.partyInviteControlCheckBoxSetAllAssist:SetValue( AJM.db.inviteSetAllAssistant )
 	-- Party Loot Control.
 	AJM.settingsControl.partyLootControlCheckBoxSetLootMethod:SetValue( AJM.db.lootSetAutomatically )
 	AJM.settingsControl.partyLootControlCheckBoxSetFFA:SetValue( AJM.db.lootSetFreeForAll )
@@ -1440,6 +1484,7 @@ function AJM:SettingsRefresh()
 	--AJM.settingsControl.partyLootControlCheckBoxFriendsNotStrangers:SetValue( AJM.db.lootToGroupFriendsAreNotStrangers )
 	--AJM.settingsControl.partyLootControlCheckBoxSetOptOutOfLoot:SetValue( AJM.db.lootSlavesOptOutOfLoot )
 	-- Ensure correct state.
+	AJM.settingsControl.partyInviteControlCheckBoxSetAllAssist:SetDisabled (not AJM.db.inviteConvertToRaid )
 	AJM.settingsControl.partyLootControlCheckBoxSetFFA:SetDisabled( not AJM.db.lootSetAutomatically )
 	AJM.settingsControl.partyLootControlCheckBoxSetGroupLoot:SetDisabled( not AJM.db.lootSetAutomatically )
 	AJM.settingsControl.partyLootControlCheckBoxSetPersLooter:SetDisabled( not AJM.db.lootSetAutomatically )
@@ -1464,6 +1509,7 @@ function AJM:JambaOnSettingsReceived( characterName, settings )
 		AJM.db.inviteAcceptGuild = settings.inviteAcceptGuild
 		AJM.db.inviteDeclineStrangers = settings.inviteDeclineStrangers
 		AJM.db.inviteConvertToRaid = settings.inviteConvertToRaid
+		AJM.db.inviteSetAllAssistant = settings.inviteSetAllAssistant
 		AJM.db.lootSetAutomatically = settings.lootSetAutomatically
 		AJM.db.lootSetFreeForAll = settings.lootSetFreeForAll
 		AJM.db.lootSetGroupLoot = settings.lootSetGroupLoot
@@ -1515,6 +1561,17 @@ function AJM:SettingsTeamListScrollRefresh()
 			if isOnline == false then
 				displayCharacterName = characterName.." "..L["(Offline)"]
 			end
+			local class = AJM.db.characterClass[characterName]
+			--AJM:Print("Test", class)
+			-- Set Class Color
+			if class ~= nil then
+				local color = RAID_CLASS_COLORS[class]
+	--Debug	--	AJM:Print("Name", characterName, class)
+				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[1].textString:SetTextColor( color.r, color.g, color.b, 1.0 )
+				if isOnline == false then
+				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[1].textString:SetTextColor( color.r, color.g, color.b, 0.4 )
+				end
+			end
 			local isMaster = false
 			local characterType = L["Minion"]
 			if IsCharacterTheMaster( characterName ) == true then
@@ -1525,14 +1582,13 @@ function AJM:SettingsTeamListScrollRefresh()
 			AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[2].textString:SetText( characterType )
 			-- Master is a yellow colour.
 			if isMaster == true then
-				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[1].textString:SetTextColor( 1.0, 0.96, 0.41, 1.0 )
+				--AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[1].textString:SetTextColor( 1.0, 0.96, 0.41, 1.0 )
 				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[2].textString:SetTextColor( 1.0, 0.96, 0.41, 1.0 )
 			end
-			-- Offline is a grey colour.
-			if isOnline == false then
-				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[1].textString:SetTextColor( 1.0, 1.0, 1.0, 0.6 )
-				AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[2].textString:SetTextColor( 1.0, 1.0, 1.0, 0.6 )
-			end
+		--	-- Offline is a grey colour.
+		--
+		--		AJM.settingsControl.teamList.rows[iterateDisplayRows].columns[2].textString:SetTextColor( 1.0, 1.0, 1.0, 0.6 )
+		--	end
 			-- Highlight the selected row.
 			if dataRowNumber == AJM.settingsControl.teamListHighlightRow then
 				--AJM.settingsControl.teamList.rows[iterateDisplayRows].highlight:SetTexture( 1.0, 1.0, 0.0, 0.5 )
@@ -1600,7 +1656,7 @@ function AJM.SettingsAddPartyClick( event )
 	AJM:AddPartyMembers()
 end
 function AJM:SettingsInviteClick( event )
-	AJM:InviteTeamToParty()
+	AJM:InviteTeamToParty(nil)
 end

 function AJM:SettingsDisbandClick( event )
@@ -1665,6 +1721,10 @@ function AJM:SettingsinviteConvertToRaidToggle( event, checked )
 	AJM:SettingsRefresh()
 end

+function AJM:SettingsinviteSetAllAssistToggle( event, checked )
+	AJM.db.inviteSetAllAssistant = checked
+end
+
 function AJM:SettingsSetLootMethodToggle( event, checked )
 	AJM.db.lootSetAutomatically = checked
 	AJM:SettingsRefresh()
@@ -1806,3 +1866,5 @@ JambaApi.setOnline = setOnline
 JambaApi.GetTeamListMaximumOrderOnline = GetTeamListMaximumOrderOnline
 JambaApi.TeamListOrderedOnline = TeamListOrderedOnline
 JambaApi.GetPositionForCharacterNameOnline = GetPositionForCharacterNameOnline
+JambaApi.GetClass = characterClass
+JambaApi.SetClass = setClass
diff --git a/Jamba/JambaUtilities.lua b/Jamba/JambaUtilities.lua
index 8154374..682ae3d 100644
--- a/Jamba/JambaUtilities.lua
+++ b/Jamba/JambaUtilities.lua
@@ -120,6 +120,9 @@ end
 -- itemLink - the item link to extract an item id from.
 -- Gets an item id from an item link.  Returns nil, if an item id could not be found.
 function JambaUtilities:GetItemIdFromItemLink( itemLink )
+	if itemLink == nil then
+		return
+	end
 	local itemIdFound = nil
 	local itemStringStart, itemStringEnd, itemString = itemLink:find( "^|c%x+|H(.+)|h%[.*%]" )
 	if itemStringStart then
@@ -189,16 +192,84 @@ function JambaUtilities:FixValueToRange( value, minValue, maxValue )
 end


-
-
-
-
-
-
-
-
-
-
-
+function JambaUtilities:CheckIsFromMyRealm( name )
+	--print("test", name)
+	local sameRealm = false
+	if name ~= nil then
+		local player, realm = strsplit( "-", name, 2 )
+		local myRealm = string.gsub(GetRealmName(), "%s+", "")
+		if realm == myRealm then
+			--print("Real SameRealm")
+			sameRealm = true
+		else
+			local connectedServers = GetAutoCompleteRealms()
+			if connectedServers then --Check if realm matches any realm in our connection
+				for i = 1, #connectedServers do
+	 				if realm == connectedServers[i] then
+						--print("connectedRealm")
+						sameRealm = true
+					end
+				end
+			else
+				--print("NotFromARealm")
+				sameRealm = false
+			end
+		end
+	end
+	return sameRealm
+end


+function JambaUtilities:InTagList( tag )
+	local isInTagList = false
+	if tag ~= nil then
+		local tagList = JambaApi.AllTagsList()
+		for i = 1, #tagList do
+			if tag == tagList[i] then
+				isInTagList = true
+			end
+		end
+	end
+	return isInTagList
+end
+
+function JambaUtilities:TooltipScaner(item)
+	local text = nil
+	local text2 = nil
+		if item ~= nil then
+			local tooltipName = "AJMScanner"
+			local tooltipScanner = CreateFrame("GameTooltip", tooltipName, nil, "GameTooltipTemplate")
+			tooltipScanner:SetOwner(UIParent, "ANCHOR_NONE")
+			tooltipScanner:SetHyperlink(item)
+			local tooltipText = _G[tooltipName.."TextLeft2"]:GetText()
+			local tooltipTextTwo = _G[tooltipName.."TextLeft3"]:GetText()
+				--print("test",  tooltipTextTwo)
+				text = tooltipText
+				text2 = tooltipTextTwo
+			end
+	--print("test9", text, text2)
+	return text, text2
+end
+
+
+function JambaUtilities:ToolTipBagScaner(item, bag, slot)
+	--print("test", item, bag, slot )
+	if item ~= nil or bag ~= nil or slot ~= nil then
+		local boe = nil
+		local ilvl = nil
+		local tooltipName = "AJMBagScanner"
+		local tooltipbagScanner = CreateFrame("GameTooltip", tooltipName , nil, "GameTooltipTemplate")
+			tooltipbagScanner:SetOwner(UIParent, "ANCHOR_NONE")
+			tooltipbagScanner:SetBagItem(bag, slot)
+			tooltipbagScanner:Show()
+		for i = 1,6 do
+			local t = _G[tooltipName.."TextLeft"..i]:GetText()
+			--print("test", t)
+			if (t == ITEM_SOULBOUND) then
+				boe = ITEM_SOULBOUND
+			end
+		end
+	    tooltipbagScanner:Hide()
+		return boe
+	end
+end
\ No newline at end of file
diff --git a/Jamba/Libs/AceComm-3.0/AceComm-3.0.lua b/Jamba/Libs/AceComm-3.0/AceComm-3.0.lua
index 8d944a5..5815530 100644
--- a/Jamba/Libs/AceComm-3.0/AceComm-3.0.lua
+++ b/Jamba/Libs/AceComm-3.0/AceComm-3.0.lua
@@ -9,7 +9,7 @@
 -- make into AceComm.
 -- @class file
 -- @name AceComm-3.0
--- @release $Id: AceComm-3.0.lua 1107 2014-02-19 16:40:32Z nevcairiel $
+-- @release $Id: AceComm-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $

 --[[ AceComm-3.0

@@ -17,15 +17,14 @@ TODO: Time out old data rotting around from dead senders? Not a HUGE deal since

 ]]

-local MAJOR, MINOR = "AceComm-3.0", 9
+local CallbackHandler = LibStub("CallbackHandler-1.0")
+local CTL = assert(ChatThrottleLib, "AceComm-3.0 requires ChatThrottleLib")

+local MAJOR, MINOR = "AceComm-3.0", 10
 local AceComm,oldminor = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceComm then return end

-local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0")
-local CTL = assert(ChatThrottleLib, "AceComm-3.0 requires ChatThrottleLib")
-
 -- Lua APIs
 local type, next, pairs, tostring = type, next, pairs, tostring
 local strsub, strfind = string.sub, string.find
diff --git a/Jamba/Libs/AceConfig-3.0/AceConfig-3.0.lua b/Jamba/Libs/AceConfig-3.0/AceConfig-3.0.lua
index 3bedf8c..a99ddf7 100644
--- a/Jamba/Libs/AceConfig-3.0/AceConfig-3.0.lua
+++ b/Jamba/Libs/AceConfig-3.0/AceConfig-3.0.lua
@@ -3,7 +3,7 @@
 -- as well as associate it with a slash command.
 -- @class file
 -- @name AceConfig-3.0
--- @release $Id: AceConfig-3.0.lua 969 2010-10-07 02:11:48Z shefki $
+-- @release $Id: AceConfig-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $

 --[[
 AceConfig-3.0
@@ -12,13 +12,14 @@ Very light wrapper library that combines all the AceConfig subcomponents into on

 ]]

-local MAJOR, MINOR = "AceConfig-3.0", 2
+local cfgreg = LibStub("AceConfigRegistry-3.0")
+local cfgcmd = LibStub("AceConfigCmd-3.0")
+
+local MAJOR, MINOR = "AceConfig-3.0", 3
 local AceConfig = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceConfig then return end

-local cfgreg = LibStub("AceConfigRegistry-3.0")
-local cfgcmd = LibStub("AceConfigCmd-3.0")
 --TODO: local cfgdlg = LibStub("AceConfigDialog-3.0", true)
 --TODO: local cfgdrp = LibStub("AceConfigDropdown-3.0", true)

diff --git a/Jamba/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua b/Jamba/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
index 2023981..33f9fe1 100644
--- a/Jamba/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
+++ b/Jamba/Libs/AceConfig-3.0/AceConfigCmd-3.0/AceConfigCmd-3.0.lua
@@ -1,7 +1,7 @@
 --- AceConfigCmd-3.0 handles access to an options table through the "command line" interface via the ChatFrames.
 -- @class file
 -- @name AceConfigCmd-3.0
--- @release $Id: AceConfigCmd-3.0.lua 1045 2011-12-09 17:58:40Z nevcairiel $
+-- @release $Id: AceConfigCmd-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $

 --[[
 AceConfigCmd-3.0
@@ -14,8 +14,9 @@ REQUIRES: AceConsole-3.0 for command registration (loaded on demand)

 -- TODO: plugin args

+local cfgreg = LibStub("AceConfigRegistry-3.0")

-local MAJOR, MINOR = "AceConfigCmd-3.0", 13
+local MAJOR, MINOR = "AceConfigCmd-3.0", 14
 local AceConfigCmd = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceConfigCmd then return end
@@ -23,7 +24,6 @@ if not AceConfigCmd then return end
 AceConfigCmd.commands = AceConfigCmd.commands or {}
 local commands = AceConfigCmd.commands

-local cfgreg = LibStub("AceConfigRegistry-3.0")
 local AceConsole -- LoD
 local AceConsoleName = "AceConsole-3.0"

diff --git a/Jamba/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua b/Jamba/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
index 3612fe8..f2d5266 100644
--- a/Jamba/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
+++ b/Jamba/Libs/AceConfig-3.0/AceConfigDialog-3.0/AceConfigDialog-3.0.lua
@@ -1,10 +1,13 @@
 --- AceConfigDialog-3.0 generates AceGUI-3.0 based windows based on option tables.
 -- @class file
 -- @name AceConfigDialog-3.0
--- @release $Id: AceConfigDialog-3.0.lua 1139 2016-07-03 07:43:51Z nevcairiel $
+-- @release $Id: AceConfigDialog-3.0.lua 1163 2017-08-14 14:04:39Z nevcairiel $

 local LibStub = LibStub
-local MAJOR, MINOR = "AceConfigDialog-3.0", 61
+local gui = LibStub("AceGUI-3.0")
+local reg = LibStub("AceConfigRegistry-3.0")
+
+local MAJOR, MINOR = "AceConfigDialog-3.0", 64
 local AceConfigDialog, oldminor = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceConfigDialog then return end
@@ -17,9 +20,6 @@ AceConfigDialog.frame.apps = AceConfigDialog.frame.apps or {}
 AceConfigDialog.frame.closing = AceConfigDialog.frame.closing or {}
 AceConfigDialog.frame.closeAllOverride = AceConfigDialog.frame.closeAllOverride or {}

-local gui = LibStub("AceGUI-3.0")
-local reg = LibStub("AceConfigRegistry-3.0")
-
 -- Lua APIs
 local tconcat, tinsert, tsort, tremove, tsort = table.concat, table.insert, table.sort, table.remove, table.sort
 local strmatch, format = string.match, string.format
@@ -611,6 +611,31 @@ local function confirmPopup(appName, rootframe, basepath, info, message, func, .
 	end
 end

+local function validationErrorPopup(message)
+	if not StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"] then
+		StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"] = {}
+	end
+	local t = StaticPopupDialogs["ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG"]
+	t.text = message
+	t.button1 = OKAY
+	t.preferredIndex = STATICPOPUP_NUMDIALOGS
+	local dialog, oldstrata
+	t.OnAccept = function()
+		if dialog and oldstrata then
+			dialog:SetFrameStrata(oldstrata)
+		end
+	end
+	t.timeout = 0
+	t.whileDead = 1
+	t.hideOnEscape = 1
+
+	dialog = StaticPopup_Show("ACECONFIGDIALOG30_VALIDATION_ERROR_DIALOG")
+	if dialog then
+		oldstrata = dialog:GetFrameStrata()
+		dialog:SetFrameStrata("TOOLTIP")
+	end
+end
+
 local function ActivateControl(widget, event, ...)
 	--This function will call the set / execute handler for the widget
 	--widget:GetUserDataTable() contains the needed info
@@ -696,32 +721,26 @@ local function ActivateControl(widget, event, ...)
 	end

 	local rootframe = user.rootframe
-	if type(validated) == "string" then
-		--validate function returned a message to display
-		if rootframe.SetStatusText then
-			rootframe:SetStatusText(validated)
-		else
-			-- TODO: do something else.
-		end
-		PlaySound("igPlayerInviteDecline")
-		del(info)
-		return true
-	elseif not validated then
-		--validate returned false
-		if rootframe.SetStatusText then
+	if not validated or type(validated) == "string" then
+		if not validated then
 			if usage then
-				rootframe:SetStatusText(name..": "..usage)
+				validated = name..": "..usage
 			else
 				if pattern then
-					rootframe:SetStatusText(name..": Expected "..pattern)
+					validated = name..": Expected "..pattern
 				else
-					rootframe:SetStatusText(name..": Invalid Value")
+					validated = name..": Invalid Value"
 				end
 			end
+		end
+
+		-- show validate message
+		if rootframe.SetStatusText then
+			rootframe:SetStatusText(validated)
 		else
-			-- TODO: do something else
+			validationErrorPopup(validated)
 		end
-		PlaySound("igPlayerInviteDecline")
+		PlaySound(PlaySoundKitID and "igPlayerInviteDecline" or 882) -- SOUNDKIT.IG_PLAYER_INVITE_DECLINE || XXX _DECLINE is actually missing from the table
 		del(info)
 		return true
 	else
diff --git a/Jamba/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua b/Jamba/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
index cf81973..b84e770 100644
--- a/Jamba/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
+++ b/Jamba/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua
@@ -8,16 +8,16 @@
 -- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName".
 -- @class file
 -- @name AceConfigRegistry-3.0
--- @release $Id: AceConfigRegistry-3.0.lua 1139 2016-07-03 07:43:51Z nevcairiel $
-local MAJOR, MINOR = "AceConfigRegistry-3.0", 16
+-- @release $Id: AceConfigRegistry-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $
+local CallbackHandler = LibStub("CallbackHandler-1.0")
+
+local MAJOR, MINOR = "AceConfigRegistry-3.0", 17
 local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceConfigRegistry then return end

 AceConfigRegistry.tables = AceConfigRegistry.tables or {}

-local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0")
-
 if not AceConfigRegistry.callbacks then
 	AceConfigRegistry.callbacks = CallbackHandler:New(AceConfigRegistry)
 end
diff --git a/Jamba/Libs/AceEvent-3.0/AceEvent-3.0.lua b/Jamba/Libs/AceEvent-3.0/AceEvent-3.0.lua
index 578ae25..bbf55c2 100644
--- a/Jamba/Libs/AceEvent-3.0/AceEvent-3.0.lua
+++ b/Jamba/Libs/AceEvent-3.0/AceEvent-3.0.lua
@@ -9,8 +9,10 @@
 -- make into AceEvent.
 -- @class file
 -- @name AceEvent-3.0
--- @release $Id: AceEvent-3.0.lua 975 2010-10-23 11:26:18Z nevcairiel $
-local MAJOR, MINOR = "AceEvent-3.0", 3
+-- @release $Id: AceEvent-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $
+local CallbackHandler = LibStub("CallbackHandler-1.0")
+
+local MAJOR, MINOR = "AceEvent-3.0", 4
 local AceEvent = LibStub:NewLibrary(MAJOR, MINOR)

 if not AceEvent then return end
@@ -18,8 +20,6 @@ if not AceEvent then return end
 -- Lua APIs
 local pairs = pairs

-local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0")
-
 AceEvent.frame = AceEvent.frame or CreateFrame("Frame", "AceEvent30Frame") -- our event frame
 AceEvent.embeds = AceEvent.embeds or {} -- what objects embed this lib

diff --git a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets.toc b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets.toc
index 482fb71..3644493 100644
--- a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets.toc
+++ b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets.toc
@@ -1,4 +1,4 @@
-## Interface: 60200
+## Interface: 60200
 ## X-Curse-Packaged-Version: r53
 ## X-Curse-Project-Name: AceGUI-3.0-SharedMediaWidgets
 ## X-Curse-Project-ID: ace-gui-3-0-shared-media-widgets
@@ -16,4 +16,4 @@
 # Libs\AceGUI-3.0\AceGUI-3.0.xml
 #@end-no-lib-strip@

-widget.xml
+widget.xml
\ No newline at end of file
diff --git a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets/widget.xml b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets/widget.xml
index 43c46a1..15cd102 100644
--- a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets/widget.xml
+++ b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/AceGUI-3.0-SharedMediaWidgets/widget.xml
@@ -6,4 +6,4 @@
 	<Script file="StatusbarWidget.lua" />
 	<Script file="BorderWidget.lua" />
 	<Script file="BackgroundWidget.lua" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/widget.xml b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/widget.xml
index ecf2945..dd3eb2b 100644
--- a/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/widget.xml
+++ b/Jamba/Libs/AceGUI-3.0-SharedMediaWidgets/widget.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\FrameXML\UI.xsd">
 	<Include file="AceGUI-3.0-SharedMediaWidgets\widget.xml" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
index 0dae68c..020eaf6 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Frame.lua
@@ -1,7 +1,7 @@
 --[[-----------------------------------------------------------------------------
 Frame Container
 -------------------------------------------------------------------------------]]
-local Type, Version = "Frame", 24
+local Type, Version = "Frame", 26
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -21,10 +21,14 @@ local CreateFrame, UIParent = CreateFrame, UIParent
 Scripts
 -------------------------------------------------------------------------------]]
 local function Button_OnClick(frame)
-	PlaySound("gsTitleOptionExit")
+	PlaySound(PlaySoundKitID and "gsTitleOptionExit" or 799) -- SOUNDKIT.GS_TITLE_OPTION_EXIT
 	frame.obj:Hide()
 end

+local function Frame_OnShow(frame)
+	frame.obj:Fire("OnShow")
+end
+
 local function Frame_OnClose(frame)
 	frame.obj:Fire("OnClose")
 end
@@ -186,6 +190,7 @@ local function Constructor()
 	frame:SetBackdropColor(0, 0, 0, 1)
 	frame:SetMinResize(400, 200)
 	frame:SetToplevel(true)
+	frame:SetScript("OnShow", Frame_OnShow)
 	frame:SetScript("OnHide", Frame_OnClose)
 	frame:SetScript("OnMouseDown", Frame_OnMouseDown)

diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
index 6dd0c4d..9afb54b 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-ScrollFrame.lua
@@ -6,8 +6,6 @@ local Type, Version = "ScrollFrame", 24
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

-local IsLegion = select(4, GetBuildInfo()) >= 70000
-
 -- Lua APIs
 local pairs, assert, type = pairs, assert, type
 local min, max, floor, abs = math.min, math.max, math.floor, math.abs
@@ -178,11 +176,7 @@ local function Constructor()

 	local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
 	scrollbg:SetAllPoints(scrollbar)
-	if IsLegion then
-		scrollbg:SetColorTexture(0, 0, 0, 0.4)
-	else
-		scrollbg:SetTexture(0, 0, 0, 0.4)
-	end
+	scrollbg:SetColorTexture(0, 0, 0, 0.4)

 	--Container Support
 	local content = CreateFrame("Frame", nil, scrollframe)
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
index 00be129..d00470e 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TabGroup.lua
@@ -2,7 +2,7 @@
 TabGroup Container
 Container that uses tabs on top to switch between groups.
 -------------------------------------------------------------------------------]]
-local Type, Version = "TabGroup", 35
+local Type, Version = "TabGroup", 36
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -63,7 +63,7 @@ Scripts
 -------------------------------------------------------------------------------]]
 local function Tab_OnClick(frame)
 	if not (frame.selected or frame.disabled) then
-		PlaySound("igCharacterInfoTab")
+		PlaySound(PlaySoundKitID and "igCharacterInfoTab" or 841) -- SOUNDKIT.IG_CHARACTER_INFO_TAB
 		frame.obj:SelectTab(frame.value)
 	end
 end
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
index 9bf17d8..617d5dc 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-TreeGroup.lua
@@ -6,8 +6,6 @@ local Type, Version = "TreeGroup", 40
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

-local IsLegion = select(4, GetBuildInfo()) >= 70000
-
 -- Lua APIs
 local next, pairs, ipairs, assert, type = next, pairs, ipairs, assert, type
 local math_min, math_max, floor = math.min, math.max, floor
@@ -672,12 +670,7 @@ local function Constructor()

 	local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND")
 	scrollbg:SetAllPoints(scrollbar)
-
-	if IsLegion then
-		scrollbg:SetColorTexture(0,0,0,0.4)
-	else
-		scrollbg:SetTexture(0,0,0,0.4)
-	end
+	scrollbg:SetColorTexture(0,0,0,0.4)

 	local border = CreateFrame("Frame",nil,frame)
 	border:SetPoint("TOPLEFT", treeframe, "TOPRIGHT")
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
index bb0a2a2..6c36aca 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIContainer-Window.lua
@@ -21,14 +21,18 @@ local CreateFrame, UIParent = CreateFrame, UIParent
 ]]
 do
 	local Type = "Window"
-	local Version = 4
+	local Version = 6
+
+	local function frameOnShow(this)
+		this.obj:Fire("OnShow")
+	end

 	local function frameOnClose(this)
 		this.obj:Fire("OnClose")
 	end

 	local function closeOnClick(this)
-		PlaySound("gsTitleOptionExit")
+		PlaySound(PlaySoundKitID and "gsTitleOptionExit" or 799) -- SOUNDKIT.GS_TITLE_OPTION_EXIT
 		this.obj:Hide()
 	end

@@ -180,6 +184,7 @@ do
 		frame:SetFrameStrata("FULLSCREEN_DIALOG")
 		frame:SetScript("OnMouseDown", frameOnMouseDown)

+		frame:SetScript("OnShow",frameOnShow)
 		frame:SetScript("OnHide",frameOnClose)
 		frame:SetMinResize(240,240)
 		frame:SetToplevel(true)
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
index c7c72c1..55b7bc8 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Button.lua
@@ -2,7 +2,7 @@
 Button Widget
 Graphical Button.
 -------------------------------------------------------------------------------]]
-local Type, Version = "Button", 23
+local Type, Version = "Button", 24
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -18,7 +18,7 @@ Scripts
 -------------------------------------------------------------------------------]]
 local function Button_OnClick(frame, ...)
 	AceGUI:ClearFocus()
-	PlaySound("igMainMenuOption")
+	PlaySound(PlaySoundKitID and "igMainMenuOption" or 852) -- SOUNDKIT.IG_MAINMENU_OPTION
 	frame.obj:Fire("OnClick", ...)
 end

diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
index 8847ebc..b8426e3 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-CheckBox.lua
@@ -1,7 +1,7 @@
 --[[-----------------------------------------------------------------------------
 Checkbox Widget
 -------------------------------------------------------------------------------]]
-local Type, Version = "CheckBox", 22
+local Type, Version = "CheckBox", 23
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -60,9 +60,9 @@ local function CheckBox_OnMouseUp(frame)
 		self:ToggleChecked()

 		if self.checked then
-			PlaySound("igMainMenuOptionCheckBoxOn")
+			PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOn" or 856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
 		else -- for both nil and false (tristate)
-			PlaySound("igMainMenuOptionCheckBoxOff")
+			PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOff" or 857) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF
 		end

 		self:Fire("OnValueChanged", self.checked)
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
index 740a467..05e2b57 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-ColorPicker.lua
@@ -5,8 +5,6 @@ local Type, Version = "ColorPicker", 23
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

-local IsLegion = select(4, GetBuildInfo()) >= 70000
-
 -- Lua APIs
 local pairs = pairs

@@ -148,11 +146,7 @@ local function Constructor()
 	local texture = frame:CreateTexture(nil, "BACKGROUND")
 	texture:SetWidth(16)
 	texture:SetHeight(16)
-	if IsLegion then
-		texture:SetColorTexture(1, 1, 1)
-	else
-		texture:SetTexture(1, 1, 1)
-	end
+	texture:SetColorTexture(1, 1, 1)
 	texture:SetPoint("CENTER", colorSwatch)
 	texture:Show()

diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
index 5ea840f..cb9c14c 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown-Items.lua
@@ -1,9 +1,7 @@
---[[ $Id: AceGUIWidget-DropDown-Items.lua 1137 2016-05-15 10:57:36Z nevcairiel $ ]]--
+--[[ $Id: AceGUIWidget-DropDown-Items.lua 1161 2017-08-12 14:30:16Z funkydude $ ]]--

 local AceGUI = LibStub("AceGUI-3.0")

-local IsLegion = select(4, GetBuildInfo()) >= 70000
-
 -- Lua APIs
 local select, assert = select, assert

@@ -325,7 +323,7 @@ end
 -- Does not close the pullout on click.
 do
 	local widgetType = "Dropdown-Item-Toggle"
-	local widgetVersion = 3
+	local widgetVersion = 4

 	local function UpdateToggle(self)
 		if self.value then
@@ -345,9 +343,9 @@ do
 		if self.disabled then return end
 		self.value = not self.value
 		if self.value then
-			PlaySound("igMainMenuOptionCheckBoxOn")
+			PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOn" or 856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
 		else
-			PlaySound("igMainMenuOptionCheckBoxOff")
+			PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOff" or 857) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF
 		end
 		UpdateToggle(self)
 		self:Fire("OnValueChanged", self.value)
@@ -457,11 +455,7 @@ do

 		local line = self.frame:CreateTexture(nil, "OVERLAY")
 		line:SetHeight(1)
-		if IsLegion then
-			line:SetColorTexture(.5, .5, .5)
-		else
-			line:SetTexture(.5, .5, .5)
-		end
+		line:SetColorTexture(.5, .5, .5)
 		line:SetPoint("LEFT", self.frame, "LEFT", 10, 0)
 		line:SetPoint("RIGHT", self.frame, "RIGHT", -10, 0)

diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
index 0dd3bff..37a365b 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-DropDown.lua
@@ -1,4 +1,4 @@
---[[ $Id: AceGUIWidget-DropDown.lua 1116 2014-10-12 08:15:46Z nevcairiel $ ]]--
+--[[ $Id: AceGUIWidget-DropDown.lua 1161 2017-08-12 14:30:16Z funkydude $ ]]--
 local AceGUI = LibStub("AceGUI-3.0")

 -- Lua APIs
@@ -356,7 +356,7 @@ end

 do
 	local widgetType = "Dropdown"
-	local widgetVersion = 30
+	local widgetVersion = 31

 	--[[ Static data ]]--

@@ -381,7 +381,7 @@ do

 	local function Dropdown_TogglePullout(this)
 		local self = this.obj
-		PlaySound("igMainMenuOptionCheckBoxOn") -- missleading name, but the Blizzard code uses this sound
+		PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOn" or 856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
 		if self.open then
 			self.open = nil
 			self.pullout:Close()
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
index d039026..6594684 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-EditBox.lua
@@ -1,7 +1,7 @@
 --[[-----------------------------------------------------------------------------
 EditBox Widget
 -------------------------------------------------------------------------------]]
-local Type, Version = "EditBox", 26
+local Type, Version = "EditBox", 27
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -73,7 +73,7 @@ local function EditBox_OnEnterPressed(frame)
 	local value = frame:GetText()
 	local cancel = self:Fire("OnEnterPressed", value)
 	if not cancel then
-		PlaySound("igMainMenuOptionCheckBoxOn")
+		PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOn" or 856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
 		HideButton(self)
 	end
 end
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
index 9e06049..036efee 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-InteractiveLabel.lua
@@ -1,7 +1,7 @@
 --[[-----------------------------------------------------------------------------
 InteractiveLabel Widget
 -------------------------------------------------------------------------------]]
-local Type, Version = "InteractiveLabel", 20
+local Type, Version = "InteractiveLabel", 21
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
index 23897d5..75817a0 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Label.lua
@@ -2,7 +2,7 @@
 Label Widget
 Displays text and optionally an icon.
 -------------------------------------------------------------------------------]]
-local Type, Version = "Label", 23
+local Type, Version = "Label", 24
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -78,6 +78,8 @@ local methods = {
 		self:SetImageSize(16, 16)
 		self:SetColor()
 		self:SetFontObject()
+		self:SetJustifyH("LEFT")
+		self:SetJustifyV("TOP")

 		-- reset the flag
 		self.resizing = nil
@@ -134,6 +136,14 @@ local methods = {
 		self.image:SetHeight(height)
 		UpdateImageAnchor(self)
 	end,
+
+	["SetJustifyH"] = function(self, justifyH)
+		self.label:SetJustifyH(justifyH)
+	end,
+
+	["SetJustifyV"] = function(self, justifyV)
+		self.label:SetJustifyV(justifyV)
+	end,
 }

 --[[-----------------------------------------------------------------------------
@@ -144,9 +154,6 @@ local function Constructor()
 	frame:Hide()

 	local label = frame:CreateFontString(nil, "BACKGROUND", "GameFontHighlightSmall")
-	label:SetJustifyH("LEFT")
-	label:SetJustifyV("TOP")
-
 	local image = frame:CreateTexture(nil, "BACKGROUND")

 	-- create widget
diff --git a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
index 583f29d..5946d8d 100644
--- a/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
+++ b/Jamba/Libs/AceGUI-3.0/widgets/AceGUIWidget-Slider.lua
@@ -2,7 +2,7 @@
 Slider Widget
 Graphical Slider, like, for Range values.
 -------------------------------------------------------------------------------]]
-local Type, Version = "Slider", 21
+local Type, Version = "Slider", 22
 local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
 if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end

@@ -108,7 +108,7 @@ local function EditBox_OnEnterPressed(frame)
 	end

 	if value then
-		PlaySound("igMainMenuOptionCheckBoxOn")
+		PlaySound(PlaySoundKitID and "igMainMenuOptionCheckBoxOn" or 856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON
 		self.slider:SetValue(value)
 		self:Fire("OnMouseUp", value)
 	end
diff --git a/Jamba/Libs/LibBabble-Class-3.0/LibBabble-Class-3.0.lua b/Jamba/Libs/LibBabble-Class-3.0/LibBabble-Class-3.0.lua
index 8c406f2..db5985e 100644
--- a/Jamba/Libs/LibBabble-Class-3.0/LibBabble-Class-3.0.lua
+++ b/Jamba/Libs/LibBabble-Class-3.0/LibBabble-Class-3.0.lua
@@ -1,4 +1,4 @@
---[[
+--[[
 Name: LibBabble-Class-3.0
 Revision: $Rev: 50 $
 Author(s): ckknight (ckknight@gmail.com)
diff --git a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test.lua b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test.lua
index 338bcf4..276ddab 100644
--- a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test.lua
+++ b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test.lua
@@ -38,4 +38,4 @@ assert(newOldMinor == 3) -- previous version was 3 (even though it gave a string

 local newLib, newOldMinor = LibStub:NewLibrary("Pants", 5) -- register a new library, using a normal number instead of a string
 assert(newLib)
-assert(newOldMinor == 4) -- previous version was 4 (even though it gave a string)
+assert(newOldMinor == 4) -- previous version was 4 (even though it gave a string)
\ No newline at end of file
diff --git a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test3.lua b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test3.lua
index 21bda2b..30f7b94 100644
--- a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test3.lua
+++ b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test3.lua
@@ -11,4 +11,4 @@ assert(not success or not ret) -- either error because proxy is not a string or

 assert(not pcall(LibStub.NewLibrary, LibStub, "Something", "No number in here")) -- should error, minor has no string in it.

-assert(not LibStub:GetLibrary("Something", true)) -- shouldn't've created it from the above statement
+assert(not LibStub:GetLibrary("Something", true)) -- shouldn't've created it from the above statement
\ No newline at end of file
diff --git a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test4.lua b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test4.lua
index 4735246..43eb338 100644
--- a/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test4.lua
+++ b/Jamba/Libs/LibBabble-Inventory-3.0/LibStub/tests/test4.lua
@@ -38,4 +38,4 @@ loadfile("../LibStub.lua")()
 assert(LibStub.IterateLibraries == 123)


-print("OK")
+print("OK")
\ No newline at end of file
diff --git a/Jamba/Libs/LibBabble-Inventory-3.0/lib.xml b/Jamba/Libs/LibBabble-Inventory-3.0/lib.xml
index 8b7a32c..b9f9904 100644
--- a/Jamba/Libs/LibBabble-Inventory-3.0/lib.xml
+++ b/Jamba/Libs/LibBabble-Inventory-3.0/lib.xml
@@ -2,4 +2,4 @@
 ..\FrameXML\UI.xsd">
 	<Script file="LibBabble-3.0.lua" />
 	<Script file="LibBabble-Inventory-3.0.lua" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/LibBagUtils-1.0/LibBagUtils-1.0.xml b/Jamba/Libs/LibBagUtils-1.0/LibBagUtils-1.0.xml
index 67b3140..493de1c 100644
--- a/Jamba/Libs/LibBagUtils-1.0/LibBagUtils-1.0.xml
+++ b/Jamba/Libs/LibBagUtils-1.0/LibBagUtils-1.0.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\FrameXML\UI.xsd">
 	<Script file="LibBagUtils-1.0.lua"/>
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua b/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua
index b587030..2d7dcef 100644
--- a/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua
+++ b/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.lua
@@ -1,5 +1,5 @@
 --[[
-Copyright (c) 2015, Hendrik "nevcairiel" Leppkes <h.leppkes@gmail.com>
+Copyright (c) 2015-2017, Hendrik "nevcairiel" Leppkes <h.leppkes@gmail.com>

 All rights reserved.

@@ -28,7 +28,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ]]
 local MAJOR_VERSION = "LibButtonGlow-1.0"
-local MINOR_VERSION = 4
+local MINOR_VERSION = 6

 if not LibStub then error(MAJOR_VERSION .. " requires LibStub.") end
 local lib, oldversion = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION)
@@ -68,12 +68,13 @@ local function CreateScaleAnim(group, target, order, duration, x, y, delay)
 	end
 end

-local function CreateAlphaAnim(group, target, order, duration, change, delay)
+local function CreateAlphaAnim(group, target, order, duration, fromAlpha, toAlpha, delay)
 	local alpha = group:CreateAnimation("Alpha")
 	alpha:SetTarget(target:GetName())
 	alpha:SetOrder(order)
 	alpha:SetDuration(duration)
-	alpha:SetChange(change)
+	alpha:SetFromAlpha(fromAlpha)
+	alpha:SetToAlpha(toAlpha)

 	if delay then
 		alpha:SetStartDelay(delay)
@@ -162,25 +163,25 @@ local function CreateOverlayGlow()
 	-- setup antimations
 	overlay.animIn = overlay:CreateAnimationGroup()
 	CreateScaleAnim(overlay.animIn, overlay.spark,          1, 0.2, 1.5, 1.5)
-	CreateAlphaAnim(overlay.animIn, overlay.spark,          1, 0.2, 1)
+	CreateAlphaAnim(overlay.animIn, overlay.spark,          1, 0.2, 0, 1)
 	CreateScaleAnim(overlay.animIn, overlay.innerGlow,      1, 0.3, 2, 2)
 	CreateScaleAnim(overlay.animIn, overlay.innerGlowOver,  1, 0.3, 2, 2)
-	CreateAlphaAnim(overlay.animIn, overlay.innerGlowOver,  1, 0.3, -1)
+	CreateAlphaAnim(overlay.animIn, overlay.innerGlowOver,  1, 0.3, 1, 0)
 	CreateScaleAnim(overlay.animIn, overlay.outerGlow,      1, 0.3, 0.5, 0.5)
 	CreateScaleAnim(overlay.animIn, overlay.outerGlowOver,  1, 0.3, 0.5, 0.5)
-	CreateAlphaAnim(overlay.animIn, overlay.outerGlowOver,  1, 0.3, -1)
+	CreateAlphaAnim(overlay.animIn, overlay.outerGlowOver,  1, 0.3, 1, 0)
 	CreateScaleAnim(overlay.animIn, overlay.spark,          1, 0.2, 2/3, 2/3, 0.2)
-	CreateAlphaAnim(overlay.animIn, overlay.spark,          1, 0.2, -1, 0.2)
-	CreateAlphaAnim(overlay.animIn, overlay.innerGlow,      1, 0.2, -1, 0.3)
-	CreateAlphaAnim(overlay.animIn, overlay.ants,           1, 0.2, 1, 0.3)
+	CreateAlphaAnim(overlay.animIn, overlay.spark,          1, 0.2, 1, 0, 0.2)
+	CreateAlphaAnim(overlay.animIn, overlay.innerGlow,      1, 0.2, 1, 0, 0.3)
+	CreateAlphaAnim(overlay.animIn, overlay.ants,           1, 0.2, 0, 1, 0.3)
 	overlay.animIn:SetScript("OnPlay", AnimIn_OnPlay)
 	overlay.animIn:SetScript("OnFinished", AnimIn_OnFinished)

 	overlay.animOut = overlay:CreateAnimationGroup()
-	CreateAlphaAnim(overlay.animOut, overlay.outerGlowOver, 1, 0.2, 1)
-	CreateAlphaAnim(overlay.animOut, overlay.ants,          1, 0.2, -1)
-	CreateAlphaAnim(overlay.animOut, overlay.outerGlowOver, 2, 0.2, -1)
-	CreateAlphaAnim(overlay.animOut, overlay.outerGlow,     2, 0.2, -1)
+	CreateAlphaAnim(overlay.animOut, overlay.outerGlowOver, 1, 0.2, 0, 1)
+	CreateAlphaAnim(overlay.animOut, overlay.ants,          1, 0.2, 1, 0)
+	CreateAlphaAnim(overlay.animOut, overlay.outerGlowOver, 2, 0.2, 1, 0)
+	CreateAlphaAnim(overlay.animOut, overlay.outerGlow,     2, 0.2, 1, 0)
 	overlay.animOut:SetScript("OnFinished", OverlayGlowAnimOutFinished)

 	-- scripts
@@ -210,6 +211,7 @@ function lib.ShowOverlayGlow(frame)
 		local overlay = GetOverlayGlow()
 		local frameWidth, frameHeight = frame:GetSize()
 		overlay:SetParent(frame)
+		overlay:SetFrameLevel(frame:GetFrameLevel() + 5)
 		overlay:ClearAllPoints()
 		--Make the height/width available before the next frame:
 		overlay:SetSize(frameWidth * 1.4, frameHeight * 1.4)
diff --git a/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.toc b/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.toc
index b72ed09..1dbd3ab 100644
--- a/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.toc
+++ b/Jamba/Libs/LibButtonGlow-1.0/LibButtonGlow-1.0.toc
@@ -1,4 +1,4 @@
-## Interface: 60100
+## Interface: 70100
 ## Title: Lib: ButtonGlow-1.0
 ## Notes: Replacement for ActionButton_Show/HideOverlayGlow APIs
 ## Author: Nevcairiel
@@ -6,16 +6,8 @@
 ## X-Category: Library
 ## X-License: BSD
 ## X-Website: http://www.wowace.com/addons/libbuttonglow-1-0/
-## Version: 1.2.1
+## Version: 1.2.6
 ## OptionalDeps: Masque
-## X-Curse-Packaged-Version: 1.2.1
-## X-Curse-Project-Name: LibButtonGlow-1.0
-## X-Curse-Project-ID: libbuttonglow-1-0
-## X-Curse-Repository-ID: wow/libbuttonglow-1-0/mainline
-## X-Curse-Packaged-Version: Beta-4.3i-1-g3e0e1d6
-## X-Curse-Project-Name: Jamba
-## X-Curse-Project-ID: jamba
-## X-Curse-Repository-ID: wow/jamba/mainline

 LibStub\LibStub.lua

diff --git a/Jamba/Libs/LibButtonGlow-1.0/LibStub/LibStub.toc b/Jamba/Libs/LibButtonGlow-1.0/LibStub/LibStub.toc
index 1708840..4d9130c 100644
--- a/Jamba/Libs/LibButtonGlow-1.0/LibStub/LibStub.toc
+++ b/Jamba/Libs/LibButtonGlow-1.0/LibStub/LibStub.toc
@@ -5,13 +5,5 @@
 ## X-Website: http://jira.wowace.com/browse/LS
 ## X-Category: Library
 ## X-License: Public Domain
-## X-Curse-Packaged-Version: 1.0
-## X-Curse-Project-Name: LibStub
-## X-Curse-Project-ID: libstub
-## X-Curse-Repository-ID: wow/libstub/mainline
-## X-Curse-Packaged-Version: Beta-4.3i-1-g3e0e1d6
-## X-Curse-Project-Name: Jamba
-## X-Curse-Project-ID: jamba
-## X-Curse-Repository-ID: wow/jamba/mainline

 LibStub.lua
diff --git a/Jamba/Libs/LibDeformat-3.0/LibDeformat-3.0.lua b/Jamba/Libs/LibDeformat-3.0/LibDeformat-3.0.lua
index 29f28e2..6580517 100644
--- a/Jamba/Libs/LibDeformat-3.0/LibDeformat-3.0.lua
+++ b/Jamba/Libs/LibDeformat-3.0/LibDeformat-3.0.lua
@@ -269,4 +269,4 @@ function LibDeformat.Test()
 end
 --@end-debug@]===]

-setmetatable(LibDeformat, { __call = function(self, ...) return self.Deformat(...) end })
+setmetatable(LibDeformat, { __call = function(self, ...) return self.Deformat(...) end })
\ No newline at end of file
diff --git a/Jamba/Libs/LibDeformat-3.0/lib.xml b/Jamba/Libs/LibDeformat-3.0/lib.xml
index 0f66a4d..cf6abae 100644
--- a/Jamba/Libs/LibDeformat-3.0/lib.xml
+++ b/Jamba/Libs/LibDeformat-3.0/lib.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\FrameXML\UI.xsd">
 	<Script file="LibDeformat-3.0.lua" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/LibGratuity-3.0/LibGratuity-3.0.toc b/Jamba/Libs/LibGratuity-3.0/LibGratuity-3.0.toc
index abd9c15..8219037 100644
--- a/Jamba/Libs/LibGratuity-3.0/LibGratuity-3.0.toc
+++ b/Jamba/Libs/LibGratuity-3.0/LibGratuity-3.0.toc
@@ -1,4 +1,4 @@
-## Interface: 50400
+## Interface: 50400
 ## LoadOnDemand: 1
 ## Title: Lib: Gratuity-3.0
 ## Notes: Tooltip scanning library.
diff --git a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test.lua b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test.lua
index 338bcf4..276ddab 100644
--- a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test.lua
+++ b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test.lua
@@ -38,4 +38,4 @@ assert(newOldMinor == 3) -- previous version was 3 (even though it gave a string

 local newLib, newOldMinor = LibStub:NewLibrary("Pants", 5) -- register a new library, using a normal number instead of a string
 assert(newLib)
-assert(newOldMinor == 4) -- previous version was 4 (even though it gave a string)
+assert(newOldMinor == 4) -- previous version was 4 (even though it gave a string)
\ No newline at end of file
diff --git a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test3.lua b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test3.lua
index 21bda2b..30f7b94 100644
--- a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test3.lua
+++ b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test3.lua
@@ -11,4 +11,4 @@ assert(not success or not ret) -- either error because proxy is not a string or

 assert(not pcall(LibStub.NewLibrary, LibStub, "Something", "No number in here")) -- should error, minor has no string in it.

-assert(not LibStub:GetLibrary("Something", true)) -- shouldn't've created it from the above statement
+assert(not LibStub:GetLibrary("Something", true)) -- shouldn't've created it from the above statement
\ No newline at end of file
diff --git a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test4.lua b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test4.lua
index 4735246..43eb338 100644
--- a/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test4.lua
+++ b/Jamba/Libs/LibGratuity-3.0/LibStub/tests/test4.lua
@@ -38,4 +38,4 @@ loadfile("../LibStub.lua")()
 assert(LibStub.IterateLibraries == 123)


-print("OK")
+print("OK")
\ No newline at end of file
diff --git a/Jamba/Libs/LibGratuity-3.0/lib.xml b/Jamba/Libs/LibGratuity-3.0/lib.xml
index 2934f6f..9b361c4 100644
--- a/Jamba/Libs/LibGratuity-3.0/lib.xml
+++ b/Jamba/Libs/LibGratuity-3.0/lib.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\FrameXML\UI.xsd">
 	<Script file="LibGratuity-3.0.lua" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/LibSharedMedia-3.0/lib.xml b/Jamba/Libs/LibSharedMedia-3.0/lib.xml
index 7f2fd53..34aa874 100644
--- a/Jamba/Libs/LibSharedMedia-3.0/lib.xml
+++ b/Jamba/Libs/LibSharedMedia-3.0/lib.xml
@@ -1,4 +1,4 @@
 <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
 ..\FrameXML\UI.xsd">
 	<Script file="LibSharedMedia-3.0.lua" />
-</Ui>
+</Ui>
\ No newline at end of file
diff --git a/Jamba/Libs/UTF8/UTF8.toc b/Jamba/Libs/UTF8/UTF8.toc
index 86efe27..e971b12 100644
--- a/Jamba/Libs/UTF8/UTF8.toc
+++ b/Jamba/Libs/UTF8/UTF8.toc
@@ -12,4 +12,4 @@
 ## X-Website: http://www.wowace.com/addons/utf8/

 utf8data.lua
-utf8.lua
+utf8.lua
\ No newline at end of file
diff --git a/Jamba/Libs/UTF8/utf8.lua b/Jamba/Libs/UTF8/utf8.lua
index 159f7ae..485582c 100644
--- a/Jamba/Libs/UTF8/utf8.lua
+++ b/Jamba/Libs/UTF8/utf8.lua
@@ -314,4 +314,4 @@ end
 -- install in the string library
 if not string.utf8reverse then
 	string.utf8reverse = utf8reverse
-end
+end
\ No newline at end of file
diff --git a/Jamba/Libs/UTF8/utf8data.lua b/Jamba/Libs/UTF8/utf8data.lua
index 8bcc38f..655f719 100644
--- a/Jamba/Libs/UTF8/utf8data.lua
+++ b/Jamba/Libs/UTF8/utf8data.lua
@@ -1,4 +1,4 @@
-utf8_lc_uc = {
+utf8_lc_uc = {
 	["a"] = "A",
 	["b"] = "B",
 	["c"] = "C",
diff --git a/Jamba/Locales/JambaCore-Locale-enUS.lua b/Jamba/Locales/JambaCore-Locale-enUS.lua
index cab5d03..991572e 100644
--- a/Jamba/Locales/JambaCore-Locale-enUS.lua
+++ b/Jamba/Locales/JambaCore-Locale-enUS.lua
@@ -6,7 +6,7 @@ License: The MIT License

 local L = LibStub("AceLocale-3.0"):NewLocale( "Jamba-Core", "enUS", true )
 --Change ME when update version
-L["Version"] = "5.1"
+L["Version"] = "5.3"
 --End of Changeme
 L["Slash Commands"] = true
 L["Team"] = true
@@ -44,8 +44,10 @@ L["Change Channel"] = true
 L["Change the communications channel."] = true
 L["Jamba4"] = true
 L["Jamba"] = true
-
 L["The Awesome Multi-Boxer Assistant"] = true
+L["Use Guild Communications***"] = true
+L["*** EveryToon will be classed as online and needs to be in same guild!"] = true
+


 L["Jafula's Awesome Multi-Boxer Assistant"] = true
@@ -55,8 +57,8 @@ L["Copyright 2008-2016 Michael 'Jafula' Miller, Now managed By Ebony"] = true
 L["Copyright 2008-2016 Michael 'Jafula' Miller, Released Under The MIT License"] = true
 L["Current Project Manager - Jennifer 'Ebony'"] = true
 L["Special thanks:"] = true
-L["To Schilm (Max Schilling) for building Advanced Loot and The changes to Jamba-Quest for 4.3"] = true
-L["To Schilm (Max Schilling) for Advanced Loot and Jamba-Quest for 4.3"] = true
+L["To Schilm (Max Schilling) for building Advanced Loot"] = true
+L["To Schilm (Max Schilling) for Advanced Loot"] = true
 L["To Olipcs on dual-boxing.com for writing the FTL Helper module."] = true
 L["To Michael 'Jafula' Miller who made Jamba"] = true
 L["Made For MultiBoxing"] = true
@@ -67,7 +69,7 @@ L["www.dual-boxing.com"] = true
 L["www.isboxer.com"] = true
 L["www.twitter.com/jenn_ebony"] = true
 L["Special thanks to olipcs on dual-boxing.com for writing the FTL Helper module."] = true
-L["Advanced Loot by schilm (Max Schilling) - modified by Tehtsuo and Jafula."] = true
+L["Advanced Loot by schilm (Max Schilling) - modified by Tehtsuo and Jafula and Ebony."] = true
 L["Attempting to reset the Jamba Settings Frame."] = true
 L["Reset Settings Frame"] = true
 L["Settings"] = true
@@ -78,6 +80,9 @@ L["Assume All Team Members Always Online*"] = true
 L["Boost Jamba to Jamba Communications**"] = true
 L["**reload UI to take effect, may cause disconnections"] = true
 L["*reload UI to take effect"] = true
+L["Use BatteTag Communications***"] = true
+L["*** Can not work if the team are on the same Blizzard Account"] = true
+
 L["Release Notes / News: "] = true
 L["Close and Do Not Show Again"] = true
 L["Close"] = true
@@ -93,15 +98,15 @@ L["Full Change Log"] = true
 L["Full ChangeLog"] = true
 L["ChangeLog"] = true
 L["Shows the Full changelog\nOpens a new Frame."] = true
-L["Text1"] = "Welcome to Legion 7.1.0!"
-L["Text2"] = ""
-L["Text3"] = "Jamba Has Had a few changes for 7.1 to check out"
-L["Text4"] = ""
-L["Text5"] = "Jamba-Mount one button to mount all the team."
-L["Text6"] = ""
-L["Text7"] = "Artifact Power is now Auto added to to the item Use bar!"
-L["Text8"] = ""
-L["Text9"] = "You can not use jamba to invite groups with tags."
+L["Text1"] = "Welcome to Legion Patch7.2.0!"
+L["Text2"] = "Jamba-Trade 2.0 Now is a list to trade items with Master"
+L["Text3"] = ""
+L["Text4"] = "Jamba-Quest 3.0 No more Taint menu"
+L["Text5"] = ""
+L["Text6"] = "Tons of bug fix's"
+L["Text7"] = ""
+L["Text8"] = "See ChangeLog"
+L["Text9"] = ""
 L["Text10"] = ""


diff --git a/Jamba/Locales/JambaMessage-Locale-enUS.lua b/Jamba/Locales/JambaMessage-Locale-enUS.lua
index cb55c55..ed282d2 100644
--- a/Jamba/Locales/JambaMessage-Locale-enUS.lua
+++ b/Jamba/Locales/JambaMessage-Locale-enUS.lua
@@ -60,4 +60,4 @@ L["Help1"] = "Core: Message Display Help"
 L["Help2"] = [[Help Here]]
 L["Help3"] = ""
 L["Help4"] = [[More Help Here]]
-L["Sound To Play"] = true
+L["Sound To Play"] = true
\ No newline at end of file
diff --git a/Jamba/Locales/JambaTeam-Locale-enUS.lua b/Jamba/Locales/JambaTeam-Locale-enUS.lua
index 39131ae..1f8843d 100644
--- a/Jamba/Locales/JambaTeam-Locale-enUS.lua
+++ b/Jamba/Locales/JambaTeam-Locale-enUS.lua
@@ -25,7 +25,7 @@ L["I Am Master"] = true
 L["Set this character to be the master character."] = true
 L["Invite"] = true
 L["Invites"] = true
-L["Invite team members to a party."] = true
+L["Invite team members to a party with or without a <tag>."] = true
 L["Invite team members to a <tag> party."] = true
 L["Disband"] = true
 L["Disband all team members from their parties."] = true
@@ -41,6 +41,7 @@ L["When Master changes, promote Master to party leader."] = true
 L["Party Invitations Control"] = true
 L["Accept from team."] = true
 L["Auto Convert Team Over Five To Raid"] = true
+L["Auto Set All Assistant"] = true
 L["Accept from friends."] = true
 L["Accept from BattleNet/RealD friends."] = true
 L["Accept from guild."] = true
@@ -83,15 +84,15 @@ L["Set All Team Members OnLine"] = true
 L["Set Team OnLine"] = true
 L["Set Offline"] = true
 L["Sets a member offline"] = true
-
+L["Unknown Tag "] = true

 -- ebony tooltip work and Gui Changes.

 L["Move the character up a place in the team list"] = true
 L["Move the character down a place in the team list"] = true
 L["Adds a member to the team list\nYou can Use:\nCharacterName\nCharacterName-realm\n@Target\n@Mouseover"] = true
-L["Adds all Party members to the team list"] = true
-L["Removes Party members from the team list"] = true
+L["Adds all Party/Raid members to the team list"] = true
+L["Removes Members from the team list"] = true
 L["Set the selected member to be the master of the group"] = true
 L["Invites all Team members online to a party or raid.\nThis can be set as a keyBinding"] = true
 L["Asks all Team members to leave a party or raid.\nThis can be set as a keyBinding"] = true
@@ -110,10 +111,13 @@ L["Minions Don't need loot."] = true
 L["Set to Group Loot "] = true
 L["Override: Set loot to Group Loot if stranger is in group."] = true
 L["Set the Loot Method to..."] = true
-L["Accept from BattleNet friends."] = true
-L["Auto Accept invites from your Battlenet or RealID Friends list."] = true
+
+L["Accept From BattleTag Friends."] = true
+
+L["Auto Accept invites from your BatteTag or RealID Friends list."] = true
 L["Auto Convert To Raid if team is over five character's"] = true
 L["Auto Convert To Raid"] = true
+L["Auto Set all raid Member's to Assistant"] = true
 L["Promote Master to party leader."] = true
 L["Set the Master to the Focus."] = true
 L["Focus will set master toon."] = true
diff --git a/Jamba/Locales/Locales.xml b/Jamba/Locales/Locales.xml
index e645a09..95b38f9 100644
--- a/Jamba/Locales/Locales.xml
+++ b/Jamba/Locales/Locales.xml
@@ -9,4 +9,4 @@ License: The MIT License
 	<Script file="JambaTeam-Locale-enUS.lua" />
 	<Script file="JambaTag-Locale-enUS.lua" />
 	<Script file="JambaMessage-Locale-enUS.lua" />
-</Ui>
+</Ui>
\ No newline at end of file