Title = GetAddOnMetadata("_GautrReply", "title"), |
Prefix = "|cffffd700_GautrReply|r: ", |
}, |
Command = { |
Percent = { |
Current = "percentcurrent", |
Left = "percent", |
CurrentTwo = "%current", |
LeftTwo = "%%", |
}, |
Experience = { |
Current = "expcurrent", |
Left = "exp", |
}, |
Bars = { |
Current = "barscurrent", |
Left = "bars", |
}, |
Help = { |
Text = "help", |
}, |
Position = { |
Text = "position", |
TextShort = "pos", |
}, |
} |
local Commands = { |
Tnl = |
{ |
Per = "tnl%%", |
XpPer = "xptnl%%", |
Xp = "xptnl", |
Bars = "barstnl", |
}, |
|
Cur = |
{ |
Per = "%%", |
XpPer = "xp%%", |
Xp = "xp", |
Bars = "bars", |
}, |
|
Info = |
{ |
Help1 = "gautrhelp", |
Help2 = "grhelp", |
Help3 = "help", |
Help4 = "info", |
|
Pos1 = "location", |
Pos2 = "position", |
Pos3 = "pos", |
Pos4 = "coord", |
}, |
} |
|
|
|
local function messagesHandler(self, event, msg, sender) |
local coordX, coordY = GetPlayerMapPosition(Player) |
|
local Math = { |
ExpCurrent = UnitXP(Player), |
ExpMax = UnitXPMax(Player), |
|
Percent = (floor(UnitXP(Player) / UnitXPMax(Player) * 100)), |
Bars = (floor(20*UnitXP(Player)/UnitXPMax(Player)+0.5)), |
|
NextLevel = (UnitLevel(Player) + 1), |
} |
|
|
local Messages = |
{ |
Percent = { |
Current = (format("Currently at: %d%s", (floor(UnitXP(Player) / UnitXPMax(Player) * 100)), "%")), |
Left = (format("%d%s Left to Level", (100 - floor(UnitXP(Player) / UnitXPMax(Player) * 100)), "%")), |
}, |
Experience = { |
Current = (format("Current Experience: %d / %d", (UnitXP(Player)), (UnitXPMax(Player)))), |
Left = (format("Experience Left to Level: %d / %d ", (UnitXPMax(Player) - UnitXP(Player)), UnitXPMax(Player))), |
}, |
Bars = { |
Current = (format("%s %d/20", "Bars ", (math.floor(20*UnitXP(Player)/UnitXPMax(Player)+0.5)))), |
Left = (format("%s %d", "Bars Left", (20 - math.floor(20*UnitXP(Player)/UnitXPMax(Player)+0.5)))), |
}, |
Help = { |
Text = (format("%s%s%s", "Type ", Defaults.Prefix, " followed by any of the following commands 'bars, barscurrent, exp, expcurrent, position, percent, percentcurrent")), |
}, |
Position = { |
Text = (format("I'm in %s @ %d,%d", GetRealZoneText(), (coordX*100 ), (coordY*100))) |
}, |
PercCur = (format("Currently at: %d%s", Math.Percent, "%")), |
PercLeft= (format("%d%s left", (100 - Math.Percent), "%")), |
PercTnl = (format("%d%s left to level %d", (100 - Math.Percent), "%", Math.NextLevel)), |
|
ExpCur = (format("Current Experience: %d / %d", Math.ExpCurrent, Math.ExpMax)), |
ExpLeft = (format("Experience left : %d / %d", (Math.ExpMax - Math.ExpCurrent), Math.ExpMax)), |
ExpTnl = (format("Experience left to level %d : %d / %d ", Math.NextLevel, (Math.ExpMax - Math.ExpCurrent), Math.ExpMax)), |
|
BarsCur = (format("%s %d/20", "Bars ", Math.Bars)), |
BarsTnl = (format("%d Bars left to %d", (20 - Math.Bars), Math.NextLevel)), |
|
Help = (format("%s%s%s", "Type ", Defaults.Prefix, " followed by any of the following commands 'bars, barscurrent, exp, expcurrent, position, percent, percentcurrent")), |
|
Position = (format("I'm in %s @ %d,%d", GetRealZoneText(), (coordX*100 ), (coordY*100))) |
} |
|
if Defaults.Debug then |
print("Event: "..event) |
print("Player: "..sender) |
print("Message: "..msg) |
else |
if msg:lower():match(Defaults.Prefix .. C.Command.Percent.Current) or |
msg:lower():match(Defaults.Prefix .. C.Command.Percent.CurrentTwo) then |
if sender ~= Player then wSend(Messages.Percent.Current, sender) |
else print(C.Addon.Prefix .. Messages.Percent.Current) end |
else |
if msg:lower():match(Defaults.Prefix .. Commands.Tnl.XpPer) then |
if sender ~= Player then |
wSend(Messages.PercTnl, sender) |
wSend(Messages.ExpLeft, sender) |
else |
print(C.Addon.Prefix .. Messages.PercTnl) |
print(C.Addon.Prefix .. Messages.ExpLeft) |
end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Percent.Left) or |
msg:lower():match(Defaults.Prefix .. C.Command.Percent.LeftTwo) then |
if sender ~= Player then wSend(Messages.Percent.Left, sender) |
else print(C.Addon.Prefix .. Messages.Percent.Left) end |
elseif msg:lower():match(Defaults.Prefix .. Commands.Tnl.Per) then |
if sender ~= Player then wSend(Messages.PercTnl, sender) else print(C.Addon.Prefix .. Messages.PercTnl) end |
|
elseif msg:lower():match(Defaults.Prefix .. Commands.Tnl.Xp) then |
if sender ~= Player then wSend(Messages.ExpTnl, sender) else print(C.Addon.Prefix .. Messages.ExpTnl) end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Experience.Current) then |
if sender ~= Player then wSend(Messages.Experience.Current, sender) |
else print(C.Addon.Prefix .. Messages.Experience.Current) end |
elseif msg:lower():match(Defaults.Prefix .. Commands.Tnl.Bars) then |
if sender ~= Player then wSend(Messages.BarsTnl, sender) else print(C.Addon.Prefix .. Messages.BarsTnl) end |
|
elseif msg:lower():match(Defaults.Prefix .. Commands.Cur.XpPer) then |
if sender ~= Player then |
wSend(Messages.PercCur, sender) |
wSend(Messages.ExpCur, sender) |
else |
print(C.Addon.Prefix .. Messages.PercCur) |
print(C.Addon.Prefix .. Messages.ExpCur) |
end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Experience.Left) then |
if sender ~= Player then wSend(Messages.Experience.Left, sender) |
else print(C.Addon.Prefix .. Messages.Experience.Left) end |
elseif msg:lower():match(Defaults.Prefix .. Commands.Cur.Per) then |
if sender ~= Player then wSend(Messages.PercCur, sender) else print(C.Addon.Prefix .. Messages.PercCur) end |
|
elseif msg:lower():match(Defaults.Prefix .. Commands.Cur.Xp) then |
if sender ~= Player then wSend(Messages.ExpCur, sender) else print(C.Addon.Prefix .. Messages.ExpCur) end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Bars.Current) then |
if sender ~= Player then wSend(Messages.Bars.Current, sender) |
else print(C.Addon.Prefix .. Messages.Bars.Current) end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Bars.Left) then |
if sender ~= Player then wSend(Messages.Bars.Left, sender) |
else print(C.Addon.Prefix .. Messages.Bars.Left) end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Help.Text) then |
if sender ~= Player then wSend(Messages.Help.Text, sender) |
else print(C.Addon.Prefix .. Messages.Help.Text) end |
|
elseif msg:lower():match(Defaults.Prefix .. C.Command.Position.Text) or |
msg:lower():match(Defaults.Prefix .. C.Command.Position.TextShort) then |
if sender ~= Player then wSend(Messages.Position.Text, sender) |
else print(C.Addon.Prefix .. Messages.Position.Text) end |
elseif msg:lower():match(Defaults.Prefix .. Commands.Cur.Bars) then |
if sender ~= Player then wSend(Messages.BarsCur, sender) else print(C.Addon.Prefix .. Messages.BarsCur) end |
end |
end |
end |