Favorite Contacts
Favorite Contacts adds more buttons to your mailbox to easily access your favorite contacts. If you click a contact button, the recipient of the new mail is directly set to the contact name.
You can add a new contact to your favorite list just by double-clicking on a free slot or by using the context menu. The favorite contact contains the contact name and a user specified icon. To delete an existing favorite contact, drag it to a free space. You can delete or change existing contacts also via the context menu. It's possible to change the position of a favorite contact with drag and drop.
All addon settings and contacts are shared between all characters of the current realm.
Have you found any bug or do you have some suggestions? Please let me know on GitHub or curseforge. You can also help me to localize the addon into your language.
... Please do NOT post errors/bugs in the comments. The nice people of curseforge made a whole Issue Tracker for that. Please use it :)
In reply to eXochron:
I'm sorry. Thanks a lot for the fix :).
Hello! Thank you for continuing to update this lovely addon!
I came to report getting the following error in TBC classic, both with 2.4-bcc and the previous version:
802x FavoriteContacts\ThirdPartySupport.lua:17: attempt to perform arithmetic on a nil value
FavoriteContacts\ThirdPartySupport.lua:17: in function <FavoriteContacts\ThirdPartySupport.lua:8>
[C]: in function `AdjustSizeAndPosition'
BulkMail2Inbox\BulkMailInbox.lua:924: in function <BulkMail2Inbox\BulkMailInbox.lua:903>
BulkMail2Inbox\BulkMailInbox.lua:1046: in function `ShowInboxGUI'
BulkMail2Inbox\BulkMailInbox.lua:329: in function `?'
...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0-7.lua:119: in function <...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:119>
[C]: ?
...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0-7.lua:29: in function <...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:25>
...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0-7.lua:64: in function `Fire'
...ceBagSync\libs\AceEvent-3.0\AceEvent-3.0-4.lua:120: in function <...ceBagSync\libs\AceEvent-3.0\AceEvent-3.0.lua:119>
[C]: in function `CameraOrSelectOrMoveStop'
[string "CAMERAORSELECTORMOVE"]:4: in function <[string "CAMERAORSELECTORMOVE"]:1>
Locals:
sender = <table> {
SetDefaultModuleLibraries = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:367
MAIL_INBOX_UPDATE = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:369
EnableModule = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
CancelTimer = <function> defined @BagSync\libs\AceTimer-3.0\AceTimer-3.0.lua:147
IterateEmbeds = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:442
SecureHookScript = <function> defined @BulkMail2Inbox\Libs\AceHook-3.0\AceHook-3.0.lua:410
RawHookScript = <function> defined @BulkMail2Inbox\Libs\AceHook-3.0\AceHook-3.0.lua:395
inboxGUI = <unnamed> {
}
Printf = <function> defined @AdiBags\libs\AceConsole-3.0\AceConsole-3.0.lua:69
SetDefaultModulePrototype = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:409
font = BulkMailInboxFont {
}
defaultModuleState = true
IsEnabled = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:451
SmartCancelTimer = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:350
ScheduleTimer = <function> defined @BagSync\libs\AceTimer-3.0\AceTimer-3.0.lua:94
DisableModule = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:350
configPanes = <table> {
}
OptReg = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:1063
RegisterMessage = <function> defined @AdiBags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
UnregisterMessage = <function> defined @AdiBags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
_toolbar = <unnamed> {
}
hooks = <table> {
}
UI_ERROR_MESSAGE = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:341
MAIL_SHOW = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:318
SetEnabledState = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:424
Hook = <function> defined @BulkMail2Inbox\Libs\AceHook-3.0\AceHook-3.0.lua:274
enabledState = true
RegisterEvent = <function> defined @AdiBags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
IterateModules = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:437
RawHook = <function> defined @BulkMail2Inbox\Libs\AceHook-3.0\AceHook-3.0.lua:313
opts = <table> {
}
SmartScheduleTimer = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:358
TakeNextItemFromMailbox = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:393
OnInitialize = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:166
UnregisterAllEvents = <function> defined @AdiBags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
GetModule = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:210
defaultModuleLibraries = <table> {
}
TimeLeft = <function> defined @BagSync\libs\AceTimer-3.0\AceTimer-3.0.lua:172
UnregisterChatCommand = <function> defined @AdiBags\libs\AceConsole-3.0\AceConsole-3.0.lua:111
ScheduleRepeatingTimer = <function> defined @BagSync\libs\AceTimer-3.0\AceTimer-3.0.lua:129
CancelAllTimers = <function> defined @BagSync\libs\AceTimer-3.0\AceTimer-3.0.lua:160
GetName = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:279
cells = <table> {
}
_toolbarEditBox = BulkMailInboxSearchFilterEditBox {
}
name = "BulkMailInbox"
AdjustSizeAndPosition = <function> defined =[C]:-1
ldb = <table> {
}
orderedModules = <table> {
}
SetInboxItem = <function> defined @BulkMail2Inbox\BulkMailInbox.lua:482
Disable = <function> defined @BagSync\libs\AceAddon-3.0\AceAddon-3.0.lua:314
timers = <table> {
}
_mainConfig = <unnamed> {
}
Hello, with the latest update (2.4, just playing on Retail), I'm getting this error when I open the mailbox:
9x ...faceFavoriteContacts\UI\ContactContainer.lua:43: attempt to perform arithmetic on global 'CONTACT_BUTTON_MARGIN' (a nil value)
[string "@FavoriteContacts\UI\ContactContainer.lua"]:43: in function `UpdateContactContainer'
[string "@FavoriteContacts\UI\ContactContainer.lua"]:88: in function `callback'
[string "@FavoriteContacts\FavoriteContacts-2.4.lua"]:22: in function <FavoriteContacts\FavoriteContacts.lua:20>
[string "@FavoriteContacts\FavoriteContacts-2.4.lua"]:147: in function <FavoriteContacts\FavoriteContacts.lua:145>
[string "=[C]"]: ?
[string "=[C]"]: in function `Show'
[string "@FrameXML\UIParent.lua"]:2915: in function `SetUIPanel'
[string "@FrameXML\UIParent.lua"]:2760: in function `ShowUIPanel'
[string "@FrameXML\UIParent.lua"]:2628: in function <FrameXML\UIParent.lua:2624>
[string "=[C]"]: in function `SetAttribute'
[string "@FrameXML\UIParent.lua"]:3473: in function <FrameXML\UIParent.lua:3452>
[string "=[C]"]: ?
[string "=[C]"]: in function `ShowUIPanel'
[string "@FrameXML\MailFrame.lua"]:54: in function <FrameXML\MailFrame.lua:52>
[string "=[C]"]: ?
[string "=[C]"]: in function `CameraOrSelectOrMoveStop'
[string "CAMERAORSELECTORMOVE"]:4: in function <[string "CAMERAORSELECTORMOVE"]:1>
Locals:
self = <table> {
UpdateContactButton = <function> defined @FavoriteContacts\UI\ContactButton.lua:140
CONTACT_BUTTON_SIZE = 36
ResetUISettings = <function> defined @FavoriteContacts\Settings.lua:16
UpdateContactButtons = <function> defined @FavoriteContacts\UI\ContactButton.lua:162
SetPosition = <function> defined @FavoriteContacts\FavoriteContacts.lua:121
SetContact = <function> defined @FavoriteContacts\FavoriteContacts.lua:33
contactContainer = <table> {
}
SetSize = <function> defined @FavoriteContacts\FavoriteContacts.lua:105
L = <table> {
}
StopDrag = <function> defined @FavoriteContacts\UI\DragCursor.lua:52
SetScale = <function> defined @FavoriteContacts\FavoriteContacts.lua:130
RegisterLoadUICallback = <function> defined @FavoriteContacts\FavoriteContacts.lua:16
SetEnableContacts = <function> defined @FavoriteContacts\FavoriteContacts.lua:27
settings = <table> {
}
StartDrag = <function> defined @FavoriteContacts\UI\DragCursor.lua:40
contactButtons = <table> {
}
SwapContacts = <function> defined @FavoriteContacts\FavoriteContacts.lua:84
CONTACT_BUTTON_MARGIN = 3
ShowEditContactPopup = <function> defined @FavoriteContacts\UI\EditPopup.lua:162
UpdateContactContainer = <function> defined @FavoriteContacts\UI\ContactContainer.lua:18
DeleteContact = <function> defined @FavoriteContacts\FavoriteContacts.lua:56
SetTexture = <function> defined @FavoriteContacts\UI\Functions.lua:3
RegisterLoginCallback = <function> defined @FavoriteContacts\FavoriteContacts.lua:12
iconFiles = <table> {
}
}
scale = 1.200000
position = "LEFT"
width = 79
height = 352
(*temporary) = <function> defined @Ailo\Libs\AceGUI-3.0\AceGUI-3.0.lua:361
(*temporary) = <table> {
OnHeightSet = <function> defined @Ailo\Libs\AceGUI-3.0\widgets\AceGUIContainer-SimpleGroup.lua:38
type = "SimpleGroup"
AceGUIWidgetVersion = 20
OnWidthSet = <function> defined @Ailo\Libs\AceGUI-3.0\widgets\AceGUIContainer-SimpleGroup.lua:32
LayoutFinished = <function> defined @Ailo\Libs\AceGUI-3.0\widgets\AceGUIContainer-SimpleGroup.lua:27
events = <table> {
}
OnAcquire = <function> defined @Ailo\Libs\AceGUI-3.0\widgets\AceGUIContainer-SimpleGroup.lua:20
LayoutFunc = <function> defined @Ailo\Libs\AceGUI-3.0\AceGUI-3.0.lua:681
userdata = <table> {
}
base = <table> {
}
noAutoHeight = true
frame = <unnamed> {
}
content = <unnamed> {
}
children = <table> {
}
}
(*temporary) = "TOPRIGHT"
(*temporary) = MailFrame {
0 = <userdata>
TitleText = MailFrameTitleText {
}
portrait = MailFramePortrait {
}
SetBorder = <function> defined @SharedXML\PortraitFrame.lua:27
layoutType = "PortraitFrameTemplate"
SetPortraitShown = <function> defined @SharedXML\PortraitFrame.lua:52
SetPortraitAtlasRaw = <function> defined @SharedXML\PortraitFrame.lua:44
SetPortraitToUnit = <function> defined @SharedXML\PortraitFrame.lua:36
SetPortraitTexCoord = <function> defined @SharedXML\PortraitFrame.lua:48
SetPortraitTextureRaw = <function> defined @SharedXML\PortraitFrame.lua:40
SetTitleFormatted = <function> defined @SharedXML\PortraitFrame.lua:64
NineSlice = <unnamed> {
}
TopTileStreaks = <unnamed> {
}
TitleBg = <unnamed> {
}
selectedTab = 1
SetPortraitToAsset = <function> defined @SharedXML\PortraitFrame.lua:32
SetTitleMaxLinesAndHeight = <function> defined @SharedXML\PortraitFrame.lua:68
SetTitleColor = <function> defined @SharedXML\PortraitFrame.lua:56
CloseButton = MailFrameCloseButton {
}
numTabs = 2
maxTabWidth = 112.666667
trialError = MailFrameTrialError {
}
Inset = MailFrameInset {
}
SetTitle = <function> defined @SharedXML\PortraitFrame
First click only throws this error, a second try shows empty space where the contacts should be displayed and the error happens a second time.
I downgraded back to version 2.3.3 and everything is fine again.
Hello friends,
I've just added support for Burning Crusade Classic (BCC). Please be aware that you might have to reset your icons, if you have played Classic on that realm before. Some icon paths from Classic are not valid in BCC anymore.
I miss your addon dearly since the bc pre-patch. Will you be updating your project?
hello, can u update it for tbc pls?
Will this be upgraded to 9.0.1?
nvm
Is there a way to have multiple pages of contacts beyond the first one?
Thank you soooo much for this addon. I love how lightweight and easy to use it is. <3
Be careful using this update in retail -- it somehow reverted my preferences back to a much older version, including alts that I deleted some time, ago, forcing me to redo about 50% of my list from scratch. Restoring prefs from a recent backup didn't help.
Hello!
This was one of my favorite addons since I found it, and I am really missing it in classic.
Might there be any possibility of making it compatible with classic?
In reply to aisenfaire:
Aaand here it is. :)
But to be honest, I'm not playing classic actively. So if there are bugs or issues with the classic version than please open a ticket here for me. Thank you.
In reply to eXochron:
Yay, thanks so much!
I've been using Tradeskillmaster for mailing but it's very bloated and adds a lot of features I don't need or want, so I was really happy to discover this wonderful little addon!
Do you still have plans to add specific items to characters for auto mailing? I saw that in your issues, and that would be really nice to have.
If not (or even if so!) would it be possible to add another column for mailing, now that you can have up to 50 characters on a single server?
Thanks for your work on this, it was what I was looking for. <3
In reply to katarina026:
Thank you for your comment. I know I got a little sidetracked in the past months. So this project was a bit left by itself. Maybe I can continue here soon.
In the meantime please check out the /fc command. There are some more customisation options available. (I was actually planning for some proper Interface settings.)
will you be adding the new races to this ?
i know there just icons but it'd be nice =)
In reply to TheMadDoctor:
I could add those race emblems, if you like. I just didn't found them particularly usefull.
In reply to TheMadDoctor: