WoWInterface SVN RepWatchWotlK

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 4 to Rev 5
    Reverse comparison

Rev 4 → Rev 5

RepWatch/Core.lua New file
0,0 → 1,796
-------------------------------------------------------
-- RepWatch by Seglberg|Dragonspew (Horde) on THRALL
-- Whisper Me or Email Me at Seglberg@live.com
--
-- Thanks to Ephemerality for Helping me with the "Default Watch" Feature
-------------------------------------------------------
-- Future Additions and Improvments:
--
-- o) Ability to Stop the Bar from Changing if you are Already Exalted with that Faction
-- o) Sub-Zone Support
-- o) Classic Instance Support
-- o) Wrath of the Lich King Support
--
-------------------------------------------------------
 
RepWatch = LibStub("AceAddon-3.0"):NewAddon("RepWatch", "AceEvent-3.0", "AceConsole-3.0")
 
--This Build's Version
--Underlay Version: 1.0.9
RepWatch.Version = "2.0.1 (WotlK BETA)"
RepWatch.VersionDesc = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n|cffFF7F24[RepWatch] Version:" .. RepWatch.Version .. "\nAuthor: Seglberg of Thrall|r"
 
 
 
--#######################--
--# Option Tables #--
--#######################--
 
local options = {
name = "RepWatch",
handler = RepWatch,
type = "group",
args = {
changeOptionsDesc = {
order = 1,
type = "description",
name = " |cffFFD700Auto-Changing Options|r",
cmdHidden = true,
},
changeWotlK = {
order = 2,
type = "toggle",
name = "|cff6495EDWotlK Instances|r",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Zone into a Wrath of the Lich King Instance (Default: On)",
get = "IsChangeWotlK",
set = "ToggleChangeWotlK",
},
changeBC = {
order = 3,
type = "toggle",
name = "|cff00CD00BC Instances|r",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Zone into a Burning Crusade Instance (Default: On)",
get = "IsChangeBC",
set = "ToggleChangeBC",
},
changeClassic = {
order = 4,
type = "toggle",
name = "|cffD2691EClassic Instances|r",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Zone into a Classic Instance (Default: On)",
get = "IsChangeClassic",
set = "ToggleChangeClassic",
},
changeCities = {
order = 5,
type = "toggle",
name = "In Cities",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Zone into Capital Cities (Default: On)",
get = "IsChangeCities",
set = "ToggleChangeCities",
},
changeBGs = {
order = 6,
type = "toggle",
name = "In Battlegrounds",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Zone into a Battleground (Default: On)",
get = "IsChangeBGs",
set = "ToggleChangeBGs",
},
changeSubZones = {
order = 6,
type = "toggle",
name = "In Sub-Zones",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you Enter a Sub-Zone (Default: On)",
get = "IsChangeSubZones",
set = "ToggleChangeSubZones",
},
otherOptionsDesc = {
order = 10,
type = "description",
name = " |cffFFD700Other Options|r",
cmdHidden = true,
},
showInChat = {
order = 11,
type = "toggle",
name = "Display Notice",
desc = "Toggle this on/off to Enable or Disable the Announcements in the Chatbox (Default: On)",
get = "IsShowInChat",
set = "ToggleShowInChat",
},
changeIfExalted = {
order = 12,
type = "toggle",
name = "Change if Exalted",
desc = "Toggle this on/off to Enable or Disable the Changing of the Reputation Bar when you are Exalted with the Zone's Faction (Default: Off)",
get = "IsChangeIfExalted",
set = "ToggleChangeIfExalted",
},
defaultFaction = {
order = 20,
type = "select",
name = " Default Faction",
desc = "Selects the Faction to Be Used if No Faction Is Available for the Area. Does NOT Apply for Sub-Zone Changes. (Default: None)",
values = "GetAllFactions",
get = "GetDefaultFaction",
set = "SetDefaultFaction",
style = "dropdown",
},
versionDesc = {
order = 100,
type = "description",
name = RepWatch.VersionDesc,
cmdHidden = true,
},
},
}
 
local defaults = {
char = {
changeWotlK = true,
changeBC = true,
changeClassic = true,
changeCities = true,
changeBGs = true,
changeSubZones = true,
showInChat = true,
changeIfExalted = false,
defaultFaction = 1, --"None"
},
}
 
--#####################--
--# Reputation Tables #--
--#####################--
 
---------|WotlK Instances|----------
---------|WotlK Instances|----------
 
----------|BC Instances|------------
if UnitFactionGroup("player") == "Horde" then
RepWatch.HellfireRep = "Thrallmar"
else
RepWatch.HellfireRep = "Honor Hold"
end
 
local BCInstances = {
["Magisters' Terrace"] = "Shattered Sun Offensive",
["Sunwell Plateau"] = "Shattered Sun Offensive",
["Old Hillsbrad Foothills"] = "Keepers of Time",
["The Black Morass"] = "Keepers of Time",
["Hyjal Summit"] = "The Scale of the Sands",
["Mana-Tombs"] = "The Consortium",
["Auchenai Crypts"] = "Lower City",
["Sethekk Halls"] = "Lower City",
["Shadow Labyrinth"] = "Lower City",
["The Slave Pens"] = "Cenarion Expedition",
["The Underbog"] = "Cenarion Expedition",
["The Streamvault"] = "Cenarion Expedition",
["Serpentshrine Cavern"] = "Cenarion Expedition",
["The Mechanar"] = "The Sha'tar",
["The Botanica"] = "The Sha'tar",
["The Arcatraz"] = "The Sha'tar",
["The Blood Furnace"] = RepWatch.HellfireRep,
["Hellfire Ramparts"] = RepWatch.HellfireRep,
["The Shattered Halls"] = RepWatch.HellfireRep,
["Karazhan"] = "The Violet Eye",
["Black Temple"] = "Ashtongue Deathsworn",
}
----------|BC Instances|------------
 
--------|Classic Instances|---------
local ClassicInstances = {
["Blackrock Depths"] = "Thorium Brotherhood",
["Blackwing Lair"] = nil,
["Dire Maul"] = "Shen'Dralar",
["Maraudon"] = "Cenarion Circle",
["Molten Core"] = "Hydraxian Waterlords",
["Naxxramas"] = "Argent Dawn",
["Ruins of Ahn'Qiraj"] = "Cenarion Circle",
["Scholomance"] = "Argent Dawn",
["Ahn'Qiraj"] = "Brood of Nozdormu",
["Zul'Gurub"] = "Zandalar Tribe",
}
--------|Classic Instances|---------
 
---------|Capital Cities|-----------
local CapitalCities = {
["Orgrimmar"] = "Orgrimmar",
["Undercity"] = "Undercity",
["Thunder Bluff"] = "Thunder Bluff",
["Silvermoon City"] = "Silvermoon City",
["Stormwind City"] = "Stormwind",
["Ironforge"] = "Ironforge",
["Darnassus"] = "Darnassus",
["The Exodar"] = "Exodar",
["Shattrath City"] = "The Sha'tar",
}
---------|Capital Cities|-----------
 
----------|Battlegrounds|-----------
local Battlegrounds = {
Horde = {
["Warsong Gulch"] ="Warsong Outriders",
["Arathi Basin"] = "The Defilers",
["Alterac Valley"] = "Frostwolf Clan",
},
Alliance = {
["Warsong Gulch"] ="Silverwing Sentinels",
["Arathi Basin"] = "The League of Arathor",
["Alterac Valley"] = "Stormpike Guard",
},
}
----------|Battlegrounds|-----------
 
------------|Sub-Zones|-------------
local SubZones = {
["Isle of Quel'Danas"] = "Shattered Sun Offensive",
["Scryer's Tier"] = "The Scryers",
["Aldor Rise"] = "The Aldor",
 
--Orgi'la Reps
["Forge Camp: Wrath"] = "Ogri'la",
["Vortex Pinnacle"] = "Ogri'la",
["Ogri'la"] = "Ogri'la",
["Forge Camp: Terror"] = "Ogri'la",
 
--Timbermaw Reps
["Timbermaw Hold"] = "Timbermaw Hold",
["Timbermaw Post"] = "Timbermaw Hold",
 
--Thrallmar
["Thrallmar"] = "Thrallmar",
 
--The Mag'har
["Mag'har Grounds"] = "The Mag'har",
["Garadar"] = "The Mag'har",
 
--Sporeggar
["Funggor Cavern"] = "Sporeggar",
["The Spawning Glen"] = "Sporeggar",
 
--Cenarion Expedition
["Cenarion Watchpost"] = "Cenarion Expedition",
}
------------|Sub-Zones|-------------
 
 
 
 
 
--#############--
--# Functions #--
--#############--
 
-------------------------------------
function RepWatch:OnInitialize()
-------------------------------------
--Called When the Addon is Loaded
 
--Register the Database
RepWatch.db = LibStub("AceDB-3.0"):New("RepWatchDB", defaults, "Char")
 
--Register Options Table and Menu
LibStub("AceConfig-3.0"):RegisterOptionsTable("RepWatch", options)
 
--Adds Menu to Blizzard's Menu
self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("RepWatch", "RepWatch")
 
--Register the /RepWatch Chat Command
self:RegisterChatCommand("RepWatch", "ChatCommand")
 
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:OnEnable()
-------------------------------------
--Called When the Addon is Enabled
 
--Register Event Triggers
RepWatch:RegisterEvent("ZONE_CHANGED_NEW_AREA") --Fires everytime Channels Switch
RepWatch:RegisterEvent("ZONE_CHANGED") --Fires everytime Subzones Switch
 
--Print off Version and Enable Message
self:Print("RepWatch Ver.|cff6495ED", RepWatch.Version, "|rLoaded")
self:Print("Type /RepWatch for Options Menu")
self:Print("No |cff6495EDWotlK|r Reputations are Working Yet,\nThis Version is Meant to Test out Compatability\nwith Client 3.0")
 
--Manually Fires Change to Check when Initially Logging In
RepWatch:ZONE_CHANGED_NEW_AREA()
 
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:OnDisable()
-------------------------------------
--called when the Addon is Disabled
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ChatCommand(input)
-------------------------------------
--Handles chat command input
if not input or input:trim() == "" then
InterfaceOptionsFrame_OpenToFrame(self.optionsFrame)
else
--LibStub("AceConfigDialog-3.0").HandleCommand(RepWatch, "RepWatch", input)
RepWatch:Print("Command Not Available, type /RepWatch for Options Menu")
end
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeWotlK(info)
-------------------------------------
return (self.db.char.changeWotlK)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeWotlK(info, value)
-------------------------------------
self.db.char.changeWotlK = value
if (self.db.char.showInChat) then
if (self.db.char.changeWotlK) then
self:Print("Entering |cff6495EDWotlK|r Instances |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering |cff6495EDWotlK|r Instances |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeBC(info)
-------------------------------------
return (self.db.char.changeBC)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeBC(info, value)
-------------------------------------
self.db.char.changeBC = value
if (self.db.char.showInChat) then
if (self.db.char.changeBC) then
self:Print("Entering |cff00CD00BC|r Instances |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering |cff00CD00BC|r Instances |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeClassic(info)
-------------------------------------
return (self.db.char.changeClassic)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeClassic(info, value)
-------------------------------------
self.db.char.changeClassic = value
if (self.db.char.showInChat) then
if (self.db.char.changeClassic) then
self:Print("Entering |cffD2691EClassic|r Instances |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering |cffD2691EClassic|r Instances |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeCities(info)
-------------------------------------
return (self.db.char.changeCities)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeCities(info, value)
-------------------------------------
self.db.char.changeCities = value
if (self.db.char.showInChat) then
if (self.db.char.changeCities) then
self:Print("Entering Capital Cities |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering capital Cities |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeBGs(info)
-------------------------------------
return (self.db.char.changeBGs)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeBGs(info, value)
-------------------------------------
self.db.char.changeBGs = value
if (self.db.char.showInChat) then
if (self.db.char.changeBGs) then
self:Print("Entering Battlegrounds |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering Battlegrounds |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeSubZones(info)
-------------------------------------
return (self.db.char.changeSubZones)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeSubZones(info, value)
-------------------------------------
self.db.char.changeSubZones = value
if (self.db.char.showInChat) then
if (self.db.char.changeSubZones) then
self:Print("Entering Sub-Zones |cff32cd32Will Now|r Switch the Rep Bar")
else
self:Print("Entering Sub-Zones |cffff0000Will Not|r Switch the Rep Bar")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsShowInChat(info)
-------------------------------------
return (self.db.char.showInChat)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleShowInChat(info, value)
-------------------------------------
self.db.char.showInChat = value
if (self.db.char.showInChat) then
self:Print("Notices |cff32cd32Will Now|r Be Shown in the Chat Window")
else
self:Print("Notices |cffff0000Will Not|r Be Shown in the Chat Window")
end
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:IsChangeIfExalted(info)
-------------------------------------
return (self.db.char.changeIfExalted)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ToggleChangeIfExalted(info, value)
-------------------------------------
self.db.char.changeIfExalted = value
if (self.db.char.showInChat) then
if (value) then
self:Print("The Rep Bar |cff32cd32Will Now|r Change When You Are Exalted with a Faction")
else
self:Print("The Rep Bar |cffff0000Will Not|r Change When You Are Exalted with a Faction")
end
end
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:GetDefaultFaction(info)
-------------------------------------
return (self.db.char.defaultFaction)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:SetDefaultFaction(info, value)
-------------------------------------
self.db.char.defaultFaction = value
if (self.db.char.showInChat) then
if (value) == 1 then --Remember: 1 is the eqiv. to "None"
self:Print("The Rep Bar |cffff0000Will Not|r Change if No Faction is Available for the Area")
elseif (value) == 2 then --Remember: 2 is the quiv. to "Auto-Off"
self:Print("The Rep Bar |cff32cd32Will Disappear|r if No Faction is Available for the Area")
else
self:Print("The Rep Bar Will Change to |cff32cd32", GetFactionInfo(value - 2), "|r if No Faction is Available for the Area")
end
end
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:GetAllFactions()
-------------------------------------
local factionList = {
"None",
"Auto-Off",
}
factionListIndex = 3
for factionIndex = 1, GetNumFactions() do
local isHeader = select(9, GetFactionInfo(factionIndex))
if isHeader ~= 1 then
factionList[factionListIndex] = GetFactionInfo(factionIndex)
end
factionListIndex = (factionListIndex + 1)
end
return (factionList)
end
-------------------------------------
-------------------------------------
 
 
-------------------------------------
function RepWatch:ZONE_CHANGED()
-------------------------------------
--RepWatch.Print("Zone Changed Fired")
RepWatch:ZONE_CHANGED_NEW_AREA()
end
-------------------------------------
function RepWatch:ZONE_CHANGED_NEW_AREA()
-------------------------------------
RepWatch.ZoneFound = 0
RepWatch.SubZoneFound = 0
self.usedDefault = 0
RepWatch.usedMini = 0
 
--self:Print("Zone Changed New Area Fired")
 
 
--if (self.db.char.changeWotlK) then
-- RepWatch.ZoneFound = RepWatch:ChangeRep("WotlKInstances")
-- self.colorCode = "|cff6495ED"
--end
 
if (self.db.char.changeBC) and (RepWatch.ZoneFound ~= 1) then
tableName = BCInstances
RepWatch.ZoneFound = RepWatch:ChangeRep(tableName)
self.colorCode = "|cff00CD00"
end
 
if (self.db.char.changeClassic) and (RepWatch.ZoneFound ~= 1) then
tableName = ClassicInstances
RepWatch.ZoneFound = RepWatch:ChangeRep(tableName)
self.colorCode = "|cffEE7621"
end
 
if (self.db.char.changeCities) and (RepWatch.ZoneFound ~= 1) then
tableName = CapitalCities
RepWatch.ZoneFound = RepWatch:ChangeRep(tableName)
self.colorCode = "|cffFFD700"
end
 
if (self.db.char.changeBGs) and (RepWatch.ZoneFound ~= 1) then
tableName = Battlegrounds
RepWatch.ZoneFound = RepWatch:ChangeBGRep(tableName)
self.colorCode = "|cffFFD700"
end
 
if (self.db.char.changeSubZones) then
tableName = SubZones
RepWatch.SubZoneFound = RepWatch:ChangeSubRep(tableName)
self.colorCode = "|cffFFD700"
end
 
--Checks the showInChat Option for Display
if (self.db.char.showInChat == false) then
RepWatch.noDisplay = 1
end
 
if (RepWatch.ZoneFound == 0) and (RepWatch.SubZoneFound == 0) then
self.usedDefault = 1
if (GetWatchedFactionInfo() == GetFactionInfo(self.db.char.defaultFaction - 2)) then
RepWatch.noDisplay = 1
end
if (self.db.char.defaultFaction == 2) then
SetWatchedFactionIndex(0)
if (RepWatch.noDisplay ~= 1) then
self:Print("Auto-Off")
end
elseif (self.db.char.defaultFaction ~= 1) then
SetWatchedFactionIndex(self.db.char.defaultFaction - 2)
if (RepWatch.noDisplay ~= 1) then
self:Print("Changing To: [|cffFFD700" .. GetFactionInfo(self.db.char.defaultFaction - 2) .. "|r]")
end
end
end
 
if (RepWatch.noDisplay ~= 1) and (RepWatch.usedMini ~= 1) then
if (RepWatch.ZoneFound == 1) or (RepWatch.SubZoneFound == 1) then
self:Print("Changing To: [" .. self.colorCode .. RepWatch.factionName .. "|r]")
end
elseif (RepWatch.noDisplay ~= 1) then
if (RepWatch.ZoneFound == 1) or (RepWatch.SubZoneFound == 1) then
self:Print("Changing To: [" .. self.colorCode .. RepWatch.factionName .. "|r]")
end
end
 
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ChangeRep(tableName)
-------------------------------------
RepWatch.noDisplay = 0
 
--RepWatch:Print("Table Name:", tableName)
if (GetWatchedFactionInfo() == tableName[GetRealZoneText()]) then
RepWatch.noDisplay = 1
end
 
--Sets the Watched Faction using Real Zone Text
for factionIndex = 1, GetNumFactions() do
RepWatch.factionName = GetFactionInfo(factionIndex)
if RepWatch.factionName == tableName[GetRealZoneText()] then
if (select(6, GetFactionInfo(factionIndex)) == 42999) then
 
if (self.db.char.changeIfExalted) then
SetWatchedFactionIndex(factionIndex)
else
return (0)
end
else
SetWatchedFactionIndex(factionIndex)
end
return (1)
end
end
 
if (GetWatchedFactionInfo() == tableName[GetMinimapZoneText()]) then
RepWatch.noDisplay = 1
end
 
--Sets the Watched Faction using Minimap Zone Text
for factionIndex = 1, GetNumFactions() do
RepWatch.factionName = GetFactionInfo(factionIndex)
if RepWatch.factionName == tableName[GetMinimapZoneText()] then
if (select(6, GetFactionInfo(factionIndex)) == 42999) then
 
if (self.db.char.changeIfExalted) then
SetWatchedFactionIndex(factionIndex)
else
return (0)
end
else
SetWatchedFactionIndex(factionIndex)
end
return (1)
end
end
 
return (0)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ChangeBGRep(tableName)
-------------------------------------
RepWatch.noDisplay = 0
--RepWatch:Print("Table Name:", tableName)
if (GetWatchedFactionInfo() == tableName[UnitFactionGroup("player")][GetRealZoneText()]) then
RepWatch.noDisplay = 1
end
--Sets the Watched Faction
for factionIndex = 1, GetNumFactions() do
RepWatch.factionName = GetFactionInfo(factionIndex)
if RepWatch.factionName == tableName[UnitFactionGroup("player")][GetRealZoneText()] then
if (select(6, GetFactionInfo(factionIndex)) == 42999) then
self.isExalted = 1
if (self.db.char.changeIfExalted) then
SetWatchedFactionIndex(factionIndex)
else
return (0)
end
else
SetWatchedFactionIndex(factionIndex)
end
return (1)
end
end
return (0)
end
-------------------------------------
-------------------------------------
 
-------------------------------------
function RepWatch:ChangeSubRep(tableName)
-------------------------------------
 
--RepWatch:Print("Table Name:", tableName)
if (GetWatchedFactionInfo() == tableName[GetRealZoneText()]) then
RepWatch.noDisplay = 1
end
 
--Sets the Watched Faction using Real Zone Text
for factionIndex = 1, GetNumFactions() do
RepWatch.factionName2 = GetFactionInfo(factionIndex)
if RepWatch.factionName2 == tableName[GetRealZoneText()] then
RepWatch.noDisplay = 0
if (GetWatchedFactionInfo() == tableName[GetRealZoneText()]) then
RepWatch.noDisplay = 1
end
RepWatch.factionName = RepWatch.factionName2
if (select(6, GetFactionInfo(factionIndex)) == 42999) then
self.isExalted = 1
if (self.db.char.changeIfExalted) then
SetWatchedFactionIndex(factionIndex)
else
return (0)
end
else
SetWatchedFactionIndex(factionIndex)
end
return (1)
end
end
 
--Sets the Watched Faction using Sub Zone Text
for factionIndex = 1, GetNumFactions() do
RepWatch.factionName2 = GetFactionInfo(factionIndex)
if RepWatch.factionName2 == tableName[GetSubZoneText()] then
RepWatch.noDisplay = 0
if (GetWatchedFactionInfo() == tableName[GetSubZoneText()]) then
RepWatch.noDisplay = 1
end
RepWatch.factionName = RepWatch.factionName2
if (select(6, GetFactionInfo(factionIndex)) == 42999) then
self.isExalted = 1
if (self.db.char.changeIfExalted) then
SetWatchedFactionIndex(factionIndex)
else
return (0)
end
else
SetWatchedFactionIndex(factionIndex)
end
return (1)
end
end
return (0)
end
-------------------------------------
-------------------------------------
\ No newline at end of file Property changes : Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date Added: svn:eol-style + native
RepWatch/Libs/Ace3.toc New file
0,0 → 1,27
## Interface: 30000
 
## Title: Lib: Ace3
## Notes: AddOn development framework
## Author: Ace3 Development Team
## X-Website: http://www.wowace.com
## X-Category: Library
## X-License: BSD-2.0
 
LibStub\LibStub.lua
CallbackHandler-1.0\CallbackHandler-1.0.xml
AceAddon-3.0\AceAddon-3.0.xml
AceEvent-3.0\AceEvent-3.0.xml
AceTimer-3.0\AceTimer-3.0.xml
AceBucket-3.0\AceBucket-3.0.xml
AceHook-3.0\AceHook-3.0.xml
AceDB-3.0\AceDB-3.0.xml
AceDBOptions-3.0\AceDBOptions-3.0.xml
AceLocale-3.0\AceLocale-3.0.xml
AceConsole-3.0\AceConsole-3.0.xml
AceGUI-3.0\AceGUI-3.0.xml
AceConfig-3.0\AceConfig-3.0.xml
AceComm-3.0\AceComm-3.0.xml
AceTab-3.0\AceTab-3.0.xml
AceSerializer-3.0\AceSerializer-3.0.xml
 
Ace3.lua
Property changes : Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date Added: svn:eol-style + native
RepWatch/Libs/LICENSE.txt New file
0,0 → 1,29
Copyright (c) 2007, Ace3 Development Team
 
All rights reserved.
 
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
 
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Redistribution of a stand alone version is strictly prohibited without
prior written authorization from the Lead of the Ace3 Development Team.
* Neither the name of the Ace3 Development Team nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file Property changes : Added: svn:eol-style + native Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date
RepWatch/Libs/split.bat New file
0,0 → 1,20
@echo off
for /D %%i in (*-?.*) do call :splitone %%i
move Ace3.toc Ace3.toc.unsplit
echo ##Interface: 20400 > Ace3.toc
echo ##Title: Lib: Ace3 >> Ace3.toc
echo ##OptionalDeps: AceAddon-3.0, AceConsole-3.0, AceConfig-3.0 >> Ace3.toc
echo LibStub\LibStub.lua >> Ace3.toc
echo Ace3.lua >> Ace3.toc
goto :eof
 
:splitone
echo Splitting off %1...
echo %1 >> split.txt
echo ##Interface: 20400 > %1\%1.toc
echo ##Title: Lib: %1 >> %1\%1.toc
if not "%1" == "CallbackHandler-1.0" echo ##OptionalDeps: LibStub, CallbackHandler-1.0, AceGUI-3.0, AceConsole-3.0 >> %1\%1.toc
echo ##LoadWith: Ace3 >> %1\%1.toc
echo %1.xml >> %1\%1.toc
move %1 ..
goto :eof
\ No newline at end of file Property changes : Added: svn:mime-type + text/plain Added: svn:eol-style + CRLF
RepWatch/Libs/unsplit.bat New file
0,0 → 1,6
@echo off
for /F %%i in (split.txt) do move ..\%%i .
del split.txt
del Ace3.toc
move Ace3.toc.unsplit Ace3.toc
 
Property changes : Added: svn:mime-type + text/plain Added: svn:eol-style + CRLF
RepWatch/Libs/changelog.txt New file
0,0 → 1,142
Ace3 Beta - Revision 76325 (June 9th, 2008)
--------------------------------------------
- AceGUI-3.0: Finish Multiselect support for the Dropdown widget (nargiddley)
- AceGUI-3.0: Re-write TabGroup layouting (nargiddley)
- AceGUI-3.0: TreeGroup: Add :EnableButtonTooltips(enable) to make the default tooltips on the tree optional, enabled by default. (nargiddley)
- AceGUI-3.0: TabGroup: Add OnTabEnter and OnTabLeave Callbacks (nargiddley)
- AceConfigDialog-3.0: Add :SelectGroup(appName, ...) - Selects the group given by the path specified then refreshes open windows. (nargiddley)
- AceConfigDialog-3.0: :Open now accepts an optional path, when given will open the window with only the given group and its children visible (nargiddley)
- AceConfigDialog-3.0: :AddToBlizOptions now accepts an optional path, this will add the config page to display the specified group and its children only. (nargiddley)
- AceConfigDialog-3.0: ACE-189: allow multiselect to be shown as a dropdown by setting dialogControl = "Dropdown" (nargiddley)
- AceConfigDialog-3.0: Add Custom tooltips to the TreeGroup and TabGroup, shows both name and desc for the group. (nargiddley)
- AceConfigCmd-3.0: ACE-195: Remove unneeded references to .confirm, will no longer error when .confirm is a boolean (nargiddley)
- AceAddon-3.0: Allow for an optional first argument to NewAddon to be a table to be used as the base for the addon. (ammo)
 
Ace3 Beta - Revision 74633 (May 19th, 2008)
--------------------------------------------
- AceTimer-3.0: ACE-173: don't error on nil handle for CancelTimer(), just bail out early. (ammo)
- AceGUI-3.0: ACE-161, ACE-180, ACE-181: New and improved DropDown widget (originally coded by Borlox) (nargiddley,nevcairiel)
- AceGUI-3.0: AceGUI will call OnWidthSet and OnHeightSet as frames resize (nargiddley)
- AceGUI-3.0: TabGroup: Use OptionsFrameTabButtonTemplate for tabs (nargiddley)
- AceGUI-3.0: TabGroup: Tabs now span multiple lines when there are too many to fit in the width of the frame (nargiddley)
- AceGUI-3.0: TreeGroup: Tree is now sizable by dragging, orig patch by yssaril (nargiddley)
- AceGUI-3.0: Flow layout will now reduce widgets width to fit rather than leaving them sticking out the side of container widgets (nargiddley)
- AceGUI-3.0: Dropdowns will no longer be left open in the background when the frame is clicked or other widgets are activated (nargiddley)
- AceGUI-3.0: ACE-159: Rename Release to OnRelease and Acquire to OnAcquire for widgets. (nargiddley)
- AceGUI-3.0: ACE-171: add IsVisible and IsShown methods to the widget metatable (nargiddley)
- AceGUI-3.0: ACE-164: add tooltips to tree to show full text of childs that got clipped (ammo)
- AceGUI-3.0: ACE-174: make buttons in AceGUI-3.0 locale independant (ammo)
- AceGUI-3.0: ACE-166: fix treegroup visual bug (ammo)
- AceGUI-3.0: ACE-184: make numeric entry for slider more intuitive (ammo)
- AceConfigCmd-3.0: ACE-172 - ignore description in cmd (ammo)
- AceConsole-3.0: nolonger check for existance of slashcommands, overwrite where needed. Last one wins, this enables AddonLoader to X-LoadOn-Slash and override the slashcommand from AddonLoader slashcommand with an Ace3 one. (Ammo)
 
Ace3 Beta - Revision 69509 (April 13th, 2008)
---------------------------------------------
- AceComm-3.0: turn off error messages when receiving invalid multi-part messages (its happening on login etc) (nevcairiel)
- AceDBOptions-3.0: shorten info text at top to prevent scrollbars. (nevcairiel)
- AceHook-3.0: ACE-162: fix unhooking of objects that were not actually hooked (nevcairiel)
- AceDB-3.0: fire the DB callbacks after the namespaces changed their profile as well (nevcairiel)
- AceDB-3.0: namespaces can now be individually reset using :ResetProfile() on the namespace directly (nevcairiel)
- AceDB-3.0: added a optional argument to :ResetProfile to not populate the reset to all namespaces (so the main profile can reset individually without reseting all namespaces too) (nevcairiel)
 
Ace3 Beta - Revision 66329 (March 27th, 2008)
---------------------------------------------
- Overall 2.4 clean ups - removing 2.4 checks and work arounds (nevcairiel)
- AceBucket-3.0: clear the timer reference when unregistering a bucket to prevent a error when unregistering a bucket that was never fired (nevcairiel)
- AceAddon-3.0: Bugfix when enabling/disabling modules from the parents OnEnable after disabling / enabling the parent addon. (ammo)
- AceGUI-3.0: Don't parent the BlizOptionsGroup widget to UIParent and Hide it by default. Fixes stray controls on the screen. (nargiddley)
- AceConfigDialog-3.0: Config windows without a default size won't incorrectly get a default size from a previously open window. (nargiddley)
- AceDBOptions-3.0: added zhCN and zhTW locale (nevcairiel)
 
Ace3 Beta - Revision 65665 (March 25th, 2008)
---------------------------------------------
- AceGUI-3.0: ACE-139: Changed all Widgets to resemble the Blizzard 2.4 Options Style (nevcairiel)
- AceGUI-3.0: Fixed "List"-Layout not reporting new width to "fill"-mode widgets (mikk)
- AceGUI-3.0: added :SetColor to the Label widget (nevcairiel)
- AceGUI-3.0: ACE-132: ColorPicker: added checkers texture for better alpha channel display, and fixed "white"-texture bug (nevcairiel,nargiddley,ammo)
- AceConfig-3.0: ACE-113: Added uiName, uiType, handler, option, type to the info table (nevcairiel,nargiddley)
- AceConfigDialog-3.0: ACE-139: Adjusted for 2.4 options panels (nevcairiel)
- AceConfigDialog-3.0: Use "width" parameter for the description widget (if present) (nevcairiel)
- AceConfigDialog-3.0: ACE-135: Add support for specifying a rowcount for multiline editboxes (nargiddley)
- AceConfigDialog-3.0: :AddToBlizOptions will return the frame registered so you can use it in InterfaceOptionsFrame_OpenToFrame (nevcairiel)
- AceConfigCmd-3.0: handle "hidden" in help-output (nevcairiel)
- AceHook-3.0: fix unhooking of secure hooks (nevcairiel)
- AceDBOptions-3.0: add optional argument to GetOptionsTable(db[, noDefaultProfiles]) - if set to true will not show the default profiles in the profile selection (nevcairiel)
- AceDBOptions-3.0: added koKR locale (nevcairiel)
- Ace3 Standalone: Removed the "Ace3" Category from the 2.4 options panel (nevcairiel)
 
Ace3 Beta - Revision 64176 (March 10th, 2008)
---------------------------------------------
- AceGUI-3.0: Improve Alpha handling for the ColorPicker widget, ColorPicker widget closes the ColorPickerFrame before opening to prevent values getting carried over (nargiddley)
- AceGUI-3.0: The Slider widget will only react to the mousewheel after it has been clicked (anywhere including the label) to prevent accidental changes to the value when trying to scroll the container it is in (nargiddley)
- AceGUI-3.0: The TreeGroup widget is scrollable with the mousewheel (nargiddley)
- AceGUI-3.0: ACE-154: Fix frame levels in more cases to prevent widgets ending up behind their containers (nargiddley)
- AceConfigDialog: Color picker obeys hasAlpha on the color type (nargiddley)
- AceConfigDialog-3.0: ACE-155: Make sure that the selected group is type='group' when checking if it exists (nargiddley)
- AceDBOptions-3.0: added frFR locale (nevcairiel)
 
Ace3 Beta - Revision 63886 (March 8th, 2008)
---------------------------------------------
- AceDBOptions-3.0: new library to provide a Ace3Options table to control the AceDB-3.0 profiles (nevcairiel)
- AceDB-3.0: add "silent" option to DeleteProfile and CopyProfile when we deal with namespaces (nevcairiel)
- AceDB-3.0: implement library upgrade path (nevcairiel)
- AceDB-3.0: ACE-146: fix problem with non-table values overruling ['*']-type defaults (nevcairiel)
- AceConsole-3.0: treat |T|t texture links similar to |H|h|h links. (ammo)
- AceGUI-3.0: Use Blizzard Templates for the EditBox and DropDown widget (nevcairiel)
- AceBucket-3.0: ACE-150: callback is now optional, if not supplied will use the eventname as method name (only possible if one event is supplied, and not a event table) (nevcairiel)
- tests: adjust tests for AceGUI and AceConsole changes (nevcairiel)
 
Ace3 Beta - Revision 63220 (Feb 29th, 2008)
---------------------------------------------
- AceTimer-3.0: CancelAllTimers() now cancels silent (elkano)
- AceConfigDialog: Add :SetDefaultSize(appName, width, height), sets the size the dialog will open to. Does not effect already open windows. (nargiddley)
- AceConfigDialog: Fix typo in type check for range values (nargiddley)
- AceGUI: ColorPicker widget will correctly fire OnValueChanged for the cancel event of the colorpicker popup. Reset ColorPicker's color on Acquire. (nargiddley)
- AceGUI: Fix Spelling of Aquire -> Acquire for widgets, all custom widgets will need to be updated. A warning will be printed for widgets not upgraded yet. (nargiddley)
- AceConfigCmd-3.0: add simple coloring to slashcommand output. (ammo)
- AceConsole-3.0: add some color to :Print (ammo)
- AceAddon-3.0: set error level on library embedding to point to the :NewAddon call (nevcairiel)
 
Ace3 Beta - Revision 62182 (Feb 20th, 2008)
---------------------------------------------
- Ace3 StandAlone: Add a page to the Blizzard 2.4 Interface Options with icons to open dialogs for configs registered when installed standalone (nargiddley)
- AceConfigDialog: type = 'description' now uses the fields image and imageCoords instead of icon and iconCoords, add imageWidth and imageHeight (nargiddley)
- AceConfigDialog: Add :AddToBlizzardOptions(appName, name), this will add the specified config to the Blizzard Options pane new in 2.4. This will only be available if running on the 2.4 PTR (nargiddley)
- AceDB: fix GetProfiles() when setting the same profile twice (nevcairiel)
- AceDB: bail out of :SetProfile early when trying to set to the same profile (nevcairiel)
- AceDB: add nil checks to metatable handling (nevcairiel)
- AceDB: clear tables that are empty after defaults removal (nevcairiel)
- AceGUI: Fix a couple of layout bugs causing the width of groups to be wrong (nargiddley)
- AceGUI: Add Icon widget (nargiddley)
- AceGUI: Allow room for the border in the BlizOptionsGroup widget (nargiddley)
- AceGUI: Button and Keybinding use UIPanelButtonTemplate2 (nargiddley)
- AceConsole-3.0: Fix bug where no table for [self] was created when registering weak commands (ammo)
- AceTimer-3.0: add missing :OnEmbedDisable (ammo)
- AceAddon-3.0: added :GetName() that will always return the "real" name of a addon or module object without any prefixes (nevcairiel)
 
Ace3 Beta - Revision 60697 (Feb 9th, 2008)
---------------------------------------------
- CallbackHandler-1.0: remove unnecessary table creation if a event is fired thats not registered (nevcairiel)
- AceAddon-3.0: fixed a bug with recursive addon loading (nevcairiel)
- AceGUI: Update TabGroup's tablist format, tabs are selected by value not index (nargiddley)
- AceGUI: Add MultiLineEditBox widget (nargiddley, originally by bam)
- AceGUI: Small fix to the flow layout preventing controls overlapping in some cases (nargiddley)
- AceConfigDialog: Implement control and dialogControl for types 'input' and 'select' (nargiddley)
- AceConfigDialog: Add support for multiline = true on type = 'input' (nargiddley)
- AceConfigDialog: Fix an error when all groups are hidden in a group with childGroups = 'select' (nargiddley)
- AceConfigDialog: type = 'description' will now show .icon as an image with its text (nargiddley)
- AceConfigDialog: multiline inputs are no longer forced to width = "full" (nargiddley)
- AceConfigDialog: bug fix when loading without AceConsole present (nevcairiel)
 
Ace3 Beta - Revision 60545 (Feb 7th, 2008)
---------------------------------------------
- AceGUI: SetToplevel(true) for the Frame widget, multiple open windows should play nice together now (nargiddley)
- AceGUI: Move Frames to the FULLSCREEN_DIALOG strata (nargiddley)
- AceGUI: Dropdown, Editbox and Keybinding labels grey out when disabled (nargiddley)
- AceGUI: Add OnClick callback to the TreeGroup widget (nargiddley)
- AceConfigDialog: Confirm popups will be above the config window (nargiddley)
 
Ace3 Beta - Revision 60163 (Feb 3rd, 2008)
---------------------------------------------
- Initial Beta release
\ No newline at end of file Property changes : Added: svn:eol-style + native Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date
RepWatch/Libs/Ace3.lua New file
0,0 → 1,101
 
-- This file is only there in standalone Ace3 and provides handy dev tool stuff I guess
-- for now only /rl to reload your UI :)
-- note the complete overkill use of AceAddon and console, ain't it cool?
 
local gui = LibStub("AceGUI-3.0")
local reg = LibStub("AceConfigRegistry-3.0")
local dialog = LibStub("AceConfigDialog-3.0")
 
Ace3 = LibStub("AceAddon-3.0"):NewAddon("Ace3", "AceConsole-3.0")
local Ace3 = Ace3
 
local selectedgroup
local frame
local select
local status = {}
local configs = {}
 
local function frameOnClose()
gui:Release(frame)
frame = nil
end
 
local function RefreshConfigs()
for name in reg:IterateOptionsTables() do
configs[name] = name
end
end
 
local function ConfigSelected(widget, event, value)
selectedgroup = value
dialog:Open(value, widget)
end
 
local old_CloseSpecialWindows
 
function Ace3:Open()
if not old_CloseSpecialWindows then
old_CloseSpecialWindows = CloseSpecialWindows
CloseSpecialWindows = function()
local found = old_CloseSpecialWindows()
if frame then
frame:Hide()
return true
end
return found
end
end
RefreshConfigs()
if next(configs) == nil then
self:Print("No Configs are Registered")
return
end
 
if not frame then
frame = gui:Create("Frame")
frame:ReleaseChildren()
frame:SetTitle("Ace3 Options")
frame:SetLayout("FILL")
frame:SetCallback("OnClose", frameOnClose)
 
select = gui:Create("DropdownGroup")
select:SetGroupList(configs)
select:SetCallback("OnGroupSelected", ConfigSelected)
frame:AddChild(select)
end
if not selectedgroup then
selectedgroup = next(configs)
end
select:SetGroup(selectedgroup)
frame:Show()
end
 
local function RefreshOnUpdate(this)
select:SetGroup(selectedgroup)
this:SetScript("OnUpdate", nil)
end
 
function Ace3:ConfigTableChanged(event, appName)
if selectedgroup == appName and frame then
frame.frame:SetScript("OnUpdate", RefreshOnUpdate)
end
end
 
reg.RegisterCallback(Ace3, "ConfigTableChange", "ConfigTableChanged")
 
function Ace3:PrintCmd(input)
input = input:trim():match("^(.-);*$")
local func, err = loadstring("LibStub(\"AceConsole-3.0\"):Print(" .. input .. ")")
if not func then
LibStub("AceConsole-3.0"):Print("Error: " .. err)
else
func()
end
end
 
function Ace3:OnInitialize()
self:RegisterChatCommand("ace3", function() self:Open() end)
self:RegisterChatCommand("rl", function() ReloadUI() end)
self:RegisterChatCommand("print", "PrintCmd")
end
Property changes : Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date Added: svn:eol-style + native
RepWatch/Read Me.txt New file
0,0 → 1,38
This Version Includes NO Additional Reputations from the Latest Beta Builds of the Stable Release.
 
This release is just meant for testing of the addon with Client 3.0, I will be adding WotlK Reputations periodicly
because more classic and TBC factions still need to be added
 
The WotlK Beta Versions use the 1.0.8+ Underlay Code and Many Bugs will be Similar
 
 
 
Until I can get more help main Priority will be to Debug the Normal RepWatch and then come back to the WotlK Version
 
 
 
 
If you find a Bug Please Post it at my Author Addon: http://seglberg.wowinterface.com
or Email me at: Seglberg@live.com wih the subject line: RepWatch WotlK Bug
 
Please Include the Exact Build Name in Your Reports
 
 
 
Reports and Greatly Appriciated as they help the development of the addon go quicker!
 
 
 
 
--Seglberg
 
 
 
 
Visit me on Thrall Under:
- Seglberg
- Dragonspew
 
or on WotlK Beta Server - Northrend Under:
- Seglberg
- Blöödoath
\ No newline at end of file Property changes : Added: svn:eol-style + native Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date
RepWatch/embeds.xml New file
0,0 → 1,12
<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="Libs\LibStub\LibStub.lua"/>
<Include file="Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml"/>
<Include file="Libs\AceAddon-3.0\AceAddon-3.0.xml"/>
<Include file="Libs\AceGUI-3.0\AceGUI-3.0.xml"/>
<Include file="Libs\AceConfig-3.0\AceConfig-3.0.xml"/>
<Include file="Libs\AceConsole-3.0\AceConsole-3.0.xml"/>
<Include file="Libs\AceDB-3.0\AceDB-3.0.xml"/>
<Include file="Libs\AceEvent-3.0\AceEvent-3.0.xml"/>
</Ui>
\ No newline at end of file Property changes : Added: svn:mime-type + text/xml Added: svn:eol-style + native
RepWatch/RepWatch.toc New file
0,0 → 1,13
## Interface: 30000
## Title: |cffFFA500RepWatch |cff6495EDWotlK|r |cff7fff7fBETA|r |cff7fff7f|r
## Notes: Changes the "Watched Reputation Bar" Automatically Depending on What Zone or Instance you Enter.
## Author: Seglberg
## Version: 2.0.0 (Alpha)
## SavedVariables: RepWatchDB
## OptionalDeps: Ace3
## X-Embeds: Ace3
## X-Category: Interface Enhancements
 
embeds.xml
 
Core.lua
Property changes : Added: svn:eol-style + native Added: svn:mime-type + text/plain Added: svn:keywords + Revision Date