Version 0.8.0-beta
- handle replacement via slash command - emote and ooc detection - de-/activate single mappings - move buttons and mappings are disabled when already at top/bottom or deactivated - minimap button is darkened when addon is disabled - help tab with examples - right-click on minimap button quickly de-/activates replacements - fixed mapping to raid warning, instance and battleground chats - localized raid target markers - capital % substitutions - incorrect consolidation - Umlaut and accent replacements
This commit is contained in:
@@ -8,10 +8,16 @@ Grichelde.LOG_LEVEL.DEBUG = 1
|
||||
Grichelde.LOG_LEVEL.TRACE = 2
|
||||
|
||||
Grichelde.MAPPING_OFFSET = 10
|
||||
Grichelde.MINIMAP_ENABLED = 1.0
|
||||
Grichelde.MINIMAP_DARKENDED = 0.5
|
||||
|
||||
Grichelde.ICONS = {}
|
||||
Grichelde.ICONS.MOVE_UP = "Interface\\MainMenuBar\\UI-MainMenu-ScrollUpButton-Up"
|
||||
Grichelde.ICONS.MOVE_UP_DISABLED = "Interface\\MainMenuBar\\UI-MainMenu-ScrollUpButton-Disabled"
|
||||
Grichelde.ICONS.MOVE_DOWN = "Interface\\MainMenuBar\\UI-MainMenu-ScrollDownButton-Up"
|
||||
Grichelde.ICONS.MOVE_DOWN_DISABLED = "Interface\\MainMenuBar\\UI-MainMenu-ScrollDownButton-Disabled"
|
||||
Grichelde.ICONS.DELETE = "Interface\\Buttons\\UI-Panel-MinimizeButton-Up"
|
||||
Grichelde.ICONS.DELETE_DISABLED = "Interface\\Buttons\\UI-Panel-MinimizeButton-Disabled"
|
||||
|
||||
-- colors:
|
||||
Grichelde.COLORS = {}
|
||||
@@ -35,7 +41,109 @@ Grichelde.COLOR_CODES.LIGHTYELLOW = _G.LIGHTYELLOW_FONT_COLOR_CODE or "|cffffff9
|
||||
Grichelde.COLOR_CODES.ORANGE = _G.ORANGE_FONT_COLOR_CODE or "|cffff7f3f"
|
||||
Grichelde.COLOR_CODES.CLOSE = _G.FONT_COLOR_CODE_CLOSE or "|r"
|
||||
|
||||
Grichelde.slashCommands = { "/s", "/say", "/e", "/em", "/me", "/emote", "/y", "/yell", "/sh", "/shout", "/p", "/party", "/pl", "/partyleader", "/g", "/gc", "/guild", "/o", "/osay", "/officer", "/raid", "/rsay", "/rl", "/raidleader", "/rw", "/raidwarning", "/i", "/instance", "/bg", "/battleground", "/w", "/whisper", "/t", "/tell", "/send", "/r", "/reply" }
|
||||
Grichelde.SLASH_COMMANDS = { "gri", "grichelde" }
|
||||
|
||||
Grichelde.SUPPORTED_CHAT_COMMANDS = {
|
||||
["/s"] = "SAY",
|
||||
["/say"] = "SAY",
|
||||
["/sprechen"] = "SAY",
|
||||
["/c"] = "CHANNEL",
|
||||
["/csay"] = "CHANNEL",
|
||||
["/e"] = "EMOTE",
|
||||
["/em"] = "EMOTE",
|
||||
["/me"] = "EMOTE",
|
||||
["/emote"] = "EMOTE",
|
||||
["/y"] = "YELL",
|
||||
["/yell"] = "YELL",
|
||||
["/sh"] = "YELL",
|
||||
["/shout"] = "YELL",
|
||||
["/schreien"] = "YELL",
|
||||
["/sch"] = "YELL",
|
||||
["/p"] = "PARTY",
|
||||
["/party"] = "PARTY",
|
||||
["/gruppe"] = "PARTY",
|
||||
["/pl"] = "PARTY",
|
||||
["/partyleader"] = "PARTY",
|
||||
["/g"] = "GUILD",
|
||||
["/gc"] = "GUILD",
|
||||
["/guild"] = "GUILD",
|
||||
["/gilde"] = "GUILD",
|
||||
["/o"] = "OFFICER",
|
||||
["/osay"] = "OFFICER",
|
||||
["/officer"] = "OFFICER",
|
||||
["/offizier"] = "OFFICER",
|
||||
["/raid"] = "RAID",
|
||||
["/rsay"] = "RAID",
|
||||
["/rl"] = "RAID",
|
||||
["/rsay"] = "RAID",
|
||||
["/raidleader"] = "RAID",
|
||||
["/schlachtzug"] = "RAID",
|
||||
["/rw"] = "RAID_WARNING",
|
||||
["/raidwarning"] = "RAID_WARNING",
|
||||
["/i"] = "INSTANCE_CHAT",
|
||||
["/instance"] = "INSTANCE_CHAT",
|
||||
["/instanz"] = "INSTANCE_CHAT",
|
||||
["/bg"] = "BATTLEGROUND",
|
||||
["/battleground"] = "BATTLEGROUND",
|
||||
["/schlachfeld"] = "BATTLEGROUND",
|
||||
["/w"] = "WHISPER",
|
||||
["/whisper"] = "WHISPER",
|
||||
["/t"] = "WHISPER",
|
||||
["/tell"] = "WHISPER",
|
||||
["/send"] = "WHISPER",
|
||||
["/tt"] = "WHISPER",
|
||||
["/r"] = "WHISPER",
|
||||
["/reply"] = "WHISPER",
|
||||
["/fl\195\188stern"] = "WHISPER",
|
||||
["/antworten"] = "WHISPER",
|
||||
}
|
||||
|
||||
Grichelde.BLIZZ_TYPE_TO_OPTIONS = {
|
||||
["SAY"] = "say",
|
||||
["EMOTE"] = "emote",
|
||||
["YELL"] = "yell",
|
||||
["PARTY"] = "party",
|
||||
["GUILD"] = "guild",
|
||||
["OFFICER"] = "officer",
|
||||
["RAID"] = "raid",
|
||||
["RAID_WARNING"] = "raidWarning",
|
||||
["INSTANCE"] = "instance",
|
||||
["BATTLEGROUND"] = "battleground",
|
||||
["WHISPER"] = "whisper",
|
||||
}
|
||||
|
||||
-- do not replace these patterns
|
||||
Grichelde.IGNORE_PATTERNS_CASE_SENSITIVE = {
|
||||
"|[Cc]%x%x%x%x%x%x%x%x.-|r", -- colored items (or links)
|
||||
"|H.-|h", -- item links (http://www.wowwiki.com/ItemLink)
|
||||
"|T.-|t", -- textures
|
||||
"|K.-|k", -- Battle.net
|
||||
"|n", -- newline
|
||||
|
||||
"%(%(.-%)%)", -- (( ooc ))
|
||||
}
|
||||
|
||||
-- for separate emote detection
|
||||
Grichelde.EMOTE_PATTERNS = {
|
||||
"%*.-%*", -- emotes *
|
||||
"%*%*.-%*%*", -- emotes **
|
||||
"%<.-%>" -- emotes < >
|
||||
}
|
||||
|
||||
Grichelde.IGNORE_PATTERNS_CASE_INSENSITIVE = {
|
||||
"{rt[1-8]}", -- rumbered raid target icons, localized raid targets are handled differently
|
||||
"%%n", -- player's name
|
||||
"%%z", -- player's currnt zone
|
||||
"%%sz", -- player's current sub-zone
|
||||
"%%loc", -- player's map coordinates
|
||||
"%%t", -- name of target
|
||||
"%%f", -- name of focus target
|
||||
"%%m", -- name of mouseover unit
|
||||
"%%p", -- name of player pet
|
||||
"%%tt" -- name of player's target's target
|
||||
}
|
||||
|
||||
Grichelde.LOCALIZED_RAID_TARGETS = { "Star", "Circle", "Diamond", "Triangle", "Moon", "Square", "Cross", "Skull" }
|
||||
|
||||
local function nilOrEmpty(s)
|
||||
return s == nil or s:trim() == ""
|
||||
@@ -68,12 +176,25 @@ local function spairs(t, orderFunc)
|
||||
end
|
||||
end
|
||||
|
||||
local function tFilter(t, cond, extr)
|
||||
local function tFilter(t, condition, extract)
|
||||
local filtered = {}
|
||||
for key, value in Grichelde.functions.pairs(t) do
|
||||
if cond(key, value) then
|
||||
local val = extr(key, value)
|
||||
Grichelde.functions.tInsert(filtered, #filtered + 1, val)
|
||||
local cond = false
|
||||
if condition then
|
||||
local t = Grichelde.functions.type(condition)
|
||||
if t == "function" then
|
||||
cond = condition(t, key, value)
|
||||
elseif t == "string" or t == "number" then
|
||||
cond = (value == condition)
|
||||
end
|
||||
end
|
||||
|
||||
if cond then
|
||||
local val = value
|
||||
if extract and Grichelde.functions.type(extract) == "function" then
|
||||
val = extract(t, key, value)
|
||||
end
|
||||
Grichelde.functions.tInsert(filtered, val)
|
||||
end
|
||||
end
|
||||
return filtered
|
||||
@@ -90,6 +211,11 @@ local function tSize(t)
|
||||
return size
|
||||
end
|
||||
|
||||
local function tIsEmpty(t)
|
||||
if (not t) then return true end
|
||||
return Grichelde.functions.tNext(t) == nil
|
||||
end
|
||||
|
||||
local function tClone(orig)
|
||||
local orig_type = Grichelde.functions.type(orig)
|
||||
local copy
|
||||
@@ -107,7 +233,7 @@ local function tClone(orig)
|
||||
end
|
||||
|
||||
local function isChar(word)
|
||||
return Grichelde.functions.find(word, "%a+")
|
||||
return Grichelde.functions.find(word, "[%z\65-\90\97-\122\195-\197][\128-\191]?")
|
||||
end
|
||||
|
||||
local function isNumber(digit)
|
||||
@@ -128,9 +254,34 @@ local function isCapital(word)
|
||||
and Grichelde.functions.isLower(Grichelde.functions.sub(word,2))
|
||||
end
|
||||
|
||||
local function color(color, text)
|
||||
return color .. text .. Grichelde.COLOR_CODES.CLOSE
|
||||
end
|
||||
|
||||
local function cPrefix(text)
|
||||
return Grichelde.functions.color(Grichelde.COLOR_CODES.PREFIX, text)
|
||||
end
|
||||
|
||||
local function cYellow(text)
|
||||
return Grichelde.functions.color(Grichelde.COLOR_CODES.NORMAL, text)
|
||||
end
|
||||
|
||||
local function cGray(text)
|
||||
return Grichelde.functions.color(Grichelde.COLOR_CODES.GRAY, text)
|
||||
end
|
||||
|
||||
local function cDarkgray(text)
|
||||
return Grichelde.functions.color(Grichelde.COLOR_CODES.DARKGRAY, text)
|
||||
end
|
||||
|
||||
local function cOrange(text)
|
||||
return Grichelde.functions.color(Grichelde.COLOR_CODES.ORANGE, text)
|
||||
end
|
||||
|
||||
-- faster function lookups by mapping to local refs
|
||||
Grichelde.functions = {}
|
||||
Grichelde.functions.IsAddOnLoaded = _G.IsAddOnLoaded
|
||||
Grichelde.functions.assert = _G.assert
|
||||
Grichelde.functions.type = _G.type
|
||||
Grichelde.functions.print = _G.print
|
||||
Grichelde.functions.nilOrEmpty = nilOrEmpty
|
||||
@@ -142,9 +293,11 @@ Grichelde.functions.tFilter = tFilter
|
||||
Grichelde.functions.tInsert = _G.table.insert
|
||||
Grichelde.functions.tConcat = _G.table.concat
|
||||
Grichelde.functions.tSize = tSize
|
||||
Grichelde.functions.tIsEmpty = tIsEmpty
|
||||
Grichelde.functions.tSort = _G.table.sort
|
||||
Grichelde.functions.tClone = tClone
|
||||
Grichelde.functions.tNext = _G.next
|
||||
Grichelde.functions.tWipe = _G.wipe
|
||||
Grichelde.functions.setmetatable = _G.setmetatable
|
||||
Grichelde.functions.getmetatable = _G.getmetatable
|
||||
Grichelde.functions.select = _G.select
|
||||
@@ -162,10 +315,17 @@ Grichelde.functions.isNumber = isNumber
|
||||
Grichelde.functions.isUpper = isUpper
|
||||
Grichelde.functions.isLower = isLower
|
||||
Grichelde.functions.isCapital = isCapital
|
||||
Grichelde.functions.color = color
|
||||
Grichelde.functions.cPrefix = cPrefix
|
||||
Grichelde.functions.cYellow = cYellow
|
||||
Grichelde.functions.cGray = cGray
|
||||
Grichelde.functions.cDarkgray = cDarkgray
|
||||
Grichelde.functions.cOrange = cOrange
|
||||
Grichelde.functions.format = _G.string.format
|
||||
Grichelde.functions.rep = _G.string.rep
|
||||
Grichelde.functions.trim = _G.strtrim
|
||||
Grichelde.functions.length = _G.string.len
|
||||
Grichelde.functions.lenUtf8 = _G.strlenutf8
|
||||
Grichelde.functions.toString = _G.tostring
|
||||
Grichelde.functions.toNumber = _G.tonumber
|
||||
Grichelde.functions.max = _G.math.max
|
||||
|
||||
Reference in New Issue
Block a user