SyncFriends
About
SyncFriends synchronises friend list between your alts, including friend notes.
Features
What it does...
- monitoring friend addition & removal: add/remove a friend on an alt, he will be added/removed from other alts next time you use them
- monitoring friend note changes: modify a friend note on an alt, that note will be updated on other alts' friend lists next time you use them
- guild-aware: save friend list space by removing friends which are also guildmates (if you of they leave the guild, they will be added back to your friend list)
- visible...: when SyncFriends alters your friend list, it tells you
- ...when it should: no popups or floating text, notifications are a line in your default chat window
- fine-grained configuration: global, per-alt and per-alt's-friend configuration levels (see the list below)
- integrated: no custom window, SyncFriends is configured through the standard "Interface" -> "Add-on" menu entry
Future
What it could do someday...
- synchronise "ignore" list
- more accessible configuration (use a table to present more options at a time)
Quick start
- Install just as any other addon. Make sure Ace3 addon (library) is installed.
- Connect with one of your alts, you should see the list of your friends (including your alt itself) being added to SyncFriends
- If it does not happen, make sure "Auto-export" is enabled. See "Configuration" section below.
- If you don't want some friends to be synchronized with your other alts, mark it for "skipping". See "Configuration" section below.
- Add, remove friends at you convenience
- Connect with another alt at your convenience, rinse, repeat
Downloading
There are 2 ways to download SyncFriends:
- Download release files from your favourite site. If unsure, that's probably what you want to do.
- Fetch from repository. If, like me, you use your favourite VCS client to keep your addons up-to-date - and as such are not afraid of the occasional bug and complete lack of translation, here you go: http://www.wowace.com/addons/syncfriends/repositories/mainline/ .
Known limitations
- If your alts have more than 100[1] unique friends, SyncFriends will not be able to synchronize them all (and will tell it when trying to add the 101[1]st). This limitation comes from Blizzard.
[1] This limitation is believed to be accurate (thanks, LaoTseu), but please PM me if you know a LUA global or getter from Blizzard scripts giving the value of this limit.
Bugs & feature requests
Please use the WowAce ticket system for bug reports & feature requests: http://www.wowace.com/addons/syncfriends/tickets/ .
Configuration
There is a GUI configuration available for this addon, accessible in the Interface WoW menu.
Note: Configuration makes use of tri-state check-boxes. This allows to express 3 different intentions:
- On mode (plain yellow tick): Option is enabled
- Off mode (no tick): Option is disabled
- Third-state mode (gray tick): Delegate decision to another check-box
It is composed in the following way:
Sync data
tab: Pool content is shared among all your alts, and contains the aggregated list of your friends.Sync
button: Manually trigger a synchronization. Use this after you changed something in pool values below.Clear
button: Empty the synchronisation pool. Makes SyncFriends forget all your friends and their notes. Of course, does not remove any friend in your friend list. It will ask for confirmation before doing anything.- Pool content
- Friend list: Select one of the entries to be able to configure it in the panel on the right. Your current alt is in green, your other alts are in yellow, and friends are in white.
- Friend properties
Action
list selection: Change scheduled action for this friend:addition
: Friend will be added to alt's friend list upon synchronization.removal
: Friend will be removed from alt's friend list upon synchronizationskipping
: Friend will be ignored in synchronization (it won't be added to alt's friend list, nor will he be scheduled for removal upon deletion).
Forget
button: Forget this friend. Just likeClear
button above, but specific to a single friend.Use global note
check-box: Enable, disable or delegate the use of pool's note for this friend for current alt.Note
: Pool's note for this friend. When the use of global note is enabled, you can edit this description.Known by
list: Non-editable list of which alt have this friend in its friend list.
Options
tab: Each check-box groups in this tab is composed of 2 checkboxes. One (Character override
) controls the option for the current alt you're connected with, and the other (Global setting
) controls the default value for all your alts.Auto-import
check-box group: Controls automated import, which happens when your alts enters the game: friends scheduled for addition will be added to your friend list, friends scheduled for removal will be removed from your friend list, and friend notes whose update is allowed will be updated in your friend list.Auto-export
check-box group: Controls automated export: friends you know when entering the game will be added to synchronization pool. Also, friends you add or remove and notes you change (if allowed) will update friend status in the synchronization pool.Sync notes
check-box group: Controls automated note import separately from friend import. This allows you to synchronize your friend lists without risking overwriting notes you set.Auto-forget
check-box group: Controls if, when a friend in synchronization pool is not known by any of you alts, he should be removed from the synchronization pool. This removal happens when your last alt knowing this friend removes him from his list.Auto-remove guildmates
check-box group: Controls if, when in the same guild as a friend, that friend should be remove from your friend list. When this becomes false (either you or him leave the guild), he will be added back.
I was just about to add a note to the author when I noticed that I was also using a plug-in he created called BadBoy_Levels. Its simple and doesn't have in-game options or anything so I forgot all about it. Also it was changed in version 2. Check this out:
"The core lookup system has changed. Instead of using Who on players that whisper you, they are momentarily added to your friends list, so that their level can be retreived, then removed...."
So there you have it. So I'm pretty sure it's that plug-in or perhaps something interfering with it and causing it to malfunction.
Reading BadBoys_Levels I found that it passes an extra boolean parameter to (Add|Remove)Friend to be nice with another friendlist plugin (FriendsWithBenefits from tekkub). So I used that parameter too.
I just committed the fix (r106, see wowace site), so now SyncFriends shouldn't trigger on such automated calls.
It would be very nice if you could try with updated code and report the results (feel free to PM me or open a ticket on wowace).
I'm not sure how easy it would be to test it as it didn't suppress everyone.
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\syncfriends\SyncFriends.lua line 798:
table index is nil
Debug:
(tail call): ?
syncfriends\SyncFriends.lua:798: guild_roster_update_callback()
syncfriends\SyncFriends.lua:544: ?()
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147:
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147
[string "safecall Dispatcher[1]"]:4:
[string "safecall Dispatcher[1]"]:4
[C]: ?
[string "safecall Dispatcher[1]"]:13: ?()
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: Fire()
Ace3\AceEvent-3.0\AceEvent-3.0.lua:120:
Ace3\AceEvent-3.0\AceEvent-3.0.lua:119
Also, I took the liberty of removing the first traceback you posted, as it is identical to this one, and opened a ticket on the bug tracker (ticket 5).