Find a bug? Do not post it in the comments section! See the "Reporting Problems" section below for information on how to correctly report bugs. I will no longer be responding to bugs posted in the comments section.
Description
Diplomancer automatically changes your watched faction based on your location. It contains a comprehensive database of locations and factions, including those for Wrath of the Lich King, the Burning Crusade, and the original World of Warcraft. For example...
Enter Dalaran, and your watched faction will be set to the Kirin Tor.
Fly down to Dragonblight, and your watched faction will change to the Wyrmrest Accord.
Stop by Venomspite, and you'll watch The Hand of Vengeance faction, or head over to Orgrim's Hammer and watch the Warsong Offensive... but only if you're a member of the Horde.
Alliance characters will watch the Valiance Expedition while in Stars' Rest or Wintergarde Keep.
Head back to the Black Temple to finish up your Outland Raider achievement, and you'll watch the Ashtongue Deathsworn.
Visit the auction house in Orgrimmar, and your watched faction will be set to Orgrimmar.
Diplomancer also has basic support for the level 80 "champion" system, and will watch the appropriate faction if you are level 80, are in an instance, and are wearing a tabard that gives you a "champion" buff.
Usage
Diplomancer "just works" and does not require any setup, but there are a few options available in the Interface Options panel or by typing /dm.
Localization
Diplomancer currently works in English, German (deDE), and Simplified Chinese (zhCN) locales. If you play in another locale and would like to know how you can help localize Diplomancer, please see my portal for more information!
Reporting Bugs
If you find a zone or subzone that you think should be associated with a particular faction, but isn't, or that you think is associated with the wrong faction, please post a bug report to let me know. Also note that I don't play any Alliance characters, so I'll only know if the data for Alliance factions and zones is wrong if you tell me about it!
Credits
Diplomancer was inspired by an old addon called SmartFactionWatch, by Charnow. I liked the idea, but not the implementation. I wrote my own small addon to watch factions, and used it for about a year and a half before releasing it here.
License
Please do not redistribute Diplomancer in compilations without asking me first! See my portal or the README file included in the download for the full license terms under which Diplomancer is released. Thanks!
Change Log - Diplomancer
3.2.0.47
Add Trial of the Crusader zone
Fix issues with updating while in flight
3.1.3.46
Add Argent Tournament Grounds and related subzones
3.0.9.43
Add Eversong Woods zone
Remove Naxxramas zone (the level 80 version doesn't give rep with a specific faction)
3.0.8.42
Add deDE and zhCN translations
Add The Filthy Animal subzone for Dalaran
Add Crusaders' Pinnacle, Scourgehome, and Valley of Echoes subzones for Icecrown
3.0.3.34
Debugging, QQ!
3.0.3.33
Fixed "champion" tabard support for The Wyrmrest Accord
3.0.3.32
Added basic support for level 80 "champion" tabards
Added more Wrath data (still need Alliance help!)
Moved options to Blizzard interface options panel
3.0.3.26
Added lots of data for Wrath of the Lich King
2.4.3.20
Fixed racial faction for Blood Elves
Added option to skip factions you're already Exalted with
I have no plans to add "watch the faction you last gained rep with" to Diplomancer, as there are already tons of addons out there that can do that. That's actually why I wrote Diplomancer -- I didn't like that way of doing it.
As for tooltips, that would require me to compile and maintain a database of which items gave rep with which faction. I don't know of any addons that only do this, but Engravings does add that information to the tooltip, among other things.
I'll go ahead and add the "don't watch exalted" option.
Originally posted by Phanx I'm also considering a few new things, and am wondering how useful they'd be. Since I seem to have your attention at least, I'll ask you.
1. Option to not set auto-watch on factions you're already exalted with.
2. Integration in the Blizz options UI.
Discuss!
Fair enough.
I think that having an option to not auto-watch exalted factions is quite a good idea. Personally speaking I see no need to watch a faction once exalted, but Im pretty sure that others will feel differently. Those that don't want to watch exalted can simply toggle this off.
As for the integration into the Blizz options UI, that is a tougher one. I think it would depend on whether or not there was enough benefit to be gained from adding this whilst not "bloating" the addon as I don't know how much, if any, overhead such integration would produce. From a personal level I see no need to add such integration in since the use of the slash commands is easy enough and once set you wouldn't need to keep on changing settings.
This actually brings to mind a couple of ideas that you feel might be worth considering. One is a toggle option to change the watched faction behaviour to watch whichever faction you just gained rep with. The other is to add info to the tooltip to flag items that can can be used for rep turnin. Although this may be better as a plugin or separate addon. I know that other rep addons (Fizzwidget FactionFriend springs to mind) do this, but they also do much more besides which I find excessive.
Yeah, that'd be the problem... there's no space in the second return value for UnitRace. I wonder if that's the case for Night Elves too. I'll go check on that, and then upload a new version that should fix the issue once and for all.
I'm also considering a few new things, and am wondering how useful they'd be. Since I seem to have your attention at least, I'll ask you.
1. Option to not set auto-watch on factions you're already exalted with.
/run local LR, ER = UnitRace("player"); ChatFrame1:AddMessage('"'..LR..'", "'..ER..'"")
[/b]
I tried by pasting in the above and got an error pop up about an unfinished string near <eof>. Took a closer look and assumed that ('"'..LR..'", "'..ER..'"") should have been (""..LR..", "..ER.."") which gave an output in the chat frame of:
Quote:
Blood Elf, BloodElf
Hopefully my assumption was correct and this will help identify the issue.
The error happens every time I log a Blood Elf in. I have tested today in the following areas Silvermoon City, Eversong Woods, Ghostlands, Shattrath, Thunder Bluff, Everlook, Area 52 and Shadowmoon Valley. I haven't been able to test other races in Silvermoon, but have never encountered an issue with any race apart from Blood Elf.
Of course it wouldn't be that simple! I'll post the version with the additional check anyway; if you still get the error after that, I'll walk you through enabling some extra debug messages that may shed some light on the problem.
Does it only happen when logging a Blood Elf character in while in Silvermoon City?
Hmm. Well, I think I know what the problem is after reading your bug report, but I'm not sure how it's happening. The problem (I believe) is caused by Diplomancer attempting to watch a faction you don't have listed in your Reputation window, or a faction that you've marked Inactive. Did you mark Silvermoon City as Inactive in the Blizzard repuation panel? I'm guessing so, which means the check I'll add for the next version should fix the issue.
I had previously placed a bug report here for the same reason as zedbg. I've tested again today and got the same issue so set verbose mode and logged out and back in, no errors at all. Restared WoW and still no errors (this is with PhanxChat switch off by the way) so I deleted my saved variables and tried again. With verbose mode not switched on the same error pops up at every logon.
Code:
["message"] = "Interface\\AddOns\\Diplomancer\\Core.lua:127: attempt to concatenate global 'faction' (a nil value)",
["count"] = 1,
["addons"] = <snip>
["timestamp"] = "2008-08-31 15:53:24",
["context"] = "Global",
["stack"] = "[C]: ?\nInterface\\AddOns\\Diplomancer\\Core.lua:127: in function `Update'\nInterface\\AddOns\\Diplomancer\\Core.lua:56: in function <Interface\\AddOns\\Diplomancer\\Core.lua:30>\n(tail call): ?\n",
}, -- [1]
My initial bug report was for a Blood Elf in Silvermoon City whilst this latest one is still a Blood Elf, but in Ghostlands. I also tested with a Blood Elf in Shattrath and got the same error, so it looks like Diplomancer doesn't like Blood Elfs as no other race gave me any errors.
Where were you when you logged in? What race is your character? What locale (language) do you play in? Also, please type "/dm verbose" to enable chat frame output, and relog; tell me what, if anything, is printed in the chat frame. (If you have any general chat mods, you may need to disable them to avoid overwriting messages printed early in the loading process.)
The variable "faction" shouldn't be a global there (that is my mistake) but it shouldn't be able to be nil either.
Interface\AddOns\Diplomancer\Core.lua:127: attempt to concatenate global 'faction' (a nil value)
[C]: ?
Interface\AddOns\Diplomancer\Core.lua:127: in function `Update'
Interface\AddOns\Diplomancer\Core.lua:56: in function <Interface\AddOns\Diplomancer\Core.lua:30>
(tail call): ?
Nobody "makes" Babble do anything. Additionally, there's another, rather huge, problem with creating a Babble library for subzones -- my addon only needs translations for a relatively small subset of existing subzones, while a Babble library would need to contain names for every single subzone in the game. Do you think people would be more willing to contribute translations to a list that contained probably in the neighborhood of 1000 subzone names, or to a list that contains only 64 subzone names?
Originally posted by Phanx The problem with creating a Babble library for subzones is that I've never seen another addon that needed subzone names, making such a list a poor choice for a shared library. It would also still require volunteers from each locale to provide the translated names of each subzone.
Yes I see the problem and I understand that you need a complete list of subzonennames. Maybe the need of *your* addon for such a list would be enough to make babble do such a list... which might lead other addons to make use of what is collected there... babble is widely uses by many addons.
The problem with using the very few subzone names in Babble is that I would have to maintain some kind of list about which subzones to translate with Babble and which to translate with a standalone list, which would be way more work than just maintaining a standalone list, and still wouldn't make the addon work for subzones, since I need ALL subzone names, not just a few instance-related ones.
The problem with creating a Babble library for subzones is that I've never seen another addon that needed subzone names, making such a list a poor choice for a shared library. It would also still require volunteers from each locale to provide the translated names of each subzone.