WoWInterface SVN _GautrReply

Compare Revisions

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

Rev 1 → Rev 5

Desktop.ini Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
_GautrReply.lua New file
0,0 → 1,171
local loaded = CreateFrame("FRAME", "Loaded")
local messages = CreateFrame("FRAME", "Messages")
 
loaded:RegisterEvent("ADDON_LOADED")
messages:RegisterEvent("CHAT_MSG_WHISPER")
messages:RegisterEvent("CHAT_MSG_PARTY")
messages:RegisterEvent("CHAT_MSG_PARTY_LEADER")
 
local Player = UnitName("player")
 
if Defaults == nil then
Defaults =
{
Prefix = "!",
Debug = false,
}
end
 
local C =
{
Player = "player",
W = "whisper",
 
Addon = {
Author = GetAddOnMetadata("_GautrReply", "author"),
Version = GetAddOnMetadata("_GautrReply", "version"),
Notes = GetAddOnMetadata("_GautrReply", "notes"),
Title = GetAddOnMetadata("_GautrReply", "title"),
Prefix = "|cffffd700_GautrReply|r: ",
},
Command = {
Percent = {
Current = "percentcurrent",
Left = "percent",
},
Experience = {
Current = "expcurrent",
Left = "exp",
},
Bars = {
Current = "barscurrent",
Left = "bars",
},
Help = {
Text = "help",
},
Position = {
Text = "position",
},
},
}
 
local function messagesHandler(self, event, msg, sender)
local coordX, coordY = GetPlayerMapPosition(Player)
 
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)))
},
}
 
if Defaults.Debug then
print("Event: "..event)
print("Player: "..sender)
print("Message: "..msg)
else
if msg:lower():match(Defaults.Prefix .. C.Command.Percent.Current) then
if sender ~= Player then SendChatMessage(Messages.Percent.Current, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Percent.Current) end
 
elseif msg:lower():match(Defaults.Prefix .. C.Command.Percent.Left) then
if sender ~= Player then SendChatMessage(Messages.Percent.Left, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Percent.Left) end
 
elseif msg:lower():match(Defaults.Prefix .. C.Command.Experience.Current) then
if sender ~= Player then SendChatMessage(Messages.Experience.Current, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Experience.Current) end
 
elseif msg:lower():match(Defaults.Prefix .. C.Command.Experience.Left) then
if sender ~= Player then SendChatMessage(Messages.Experience.Left, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Experience.Left) end
 
elseif msg:lower():match(Defaults.Prefix .. C.Command.Bars.Current) then
if sender ~= Player then SendChatMessage(Messages.Bars.Current, C.W, nil, 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 SendChatMessage(Messages.Bars.Left, C.W, nil, 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 SendChatMessage(Messages.Help.Text, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Help.Text) end
 
elseif msg:lower():match(Defaults.Prefix .. C.Command.Position.Text) then
if sender ~= Player then SendChatMessage(Messages.Position.Text, C.W, nil, sender)
else print(C.Addon.Prefix .. Messages.Position.Text) end
end
end
end
 
SLASH_GAUTRREPLY1, SLASH_GAUTRREPLY2, SLASH_GAUTRREPLY3 = '/gautr', '/gr', '/gautrreply';
local function handler(msg, editbox)
local command, rest = msg:match("^(%S*)%s*(.-)$");
if command == "prefix" then
if rest == "" then
print("|cffffd700" .. C.Addon.Title .. "|r: Type a symbol, the default is '|cffffd700!|r'. Currently it is "..Defaults.Prefix);
elseif rest ~= nil then
Defaults.Prefix = rest
end
elseif command == "debug" then
if rest == "" then
local check = Defaults.Debug and "ON" or "OFF"
print("|cffffd700" .. C.Addon.Title .. "|r: Type '/gr debug on' to turn on, off to turn off... Its currently " .. tostring(check))
elseif rest == "on" then
Defaults.Debug = true
elseif rest == "off" then
Defaults.Debug = false
end
else
print("|cffffd700" .. C.Addon.Title .. "|r: Type '/gr', '/gautr' or '/gautrreply' and either prefix or debug for info");
end
end
SlashCmdList["GAUTRREPLY"] = handler;
 
function loaded:OnEvent(event, arg1)
local addonName = "_GautrReply"
if event == "ADDON_LOADED" and arg1 == addonName then
print("|cffffd700".. arg1 .. " ".. C.Addon.Version .."|r".. " by " .. "|cffffd700" .. C.Addon.Author .. "|r");
end
end
 
local filterStrings = {
C.Command.Help.Text,
C.Command.Experience.Left,
C.Command.Experience.Current,
C.Command.Position.Text,
C.Command.Percent.Left,
C.Command.Percent.Current,
C.Command.Bars.Left,
C.Command.Bars.Current,
}
 
local function filter(self, event, msg)
for _,str in pairs(filterStrings) do
if msg:lower():match(str) then if Defaults.Debug then print("Filtered Incoming Command: " .. "|cffffd700" ..str:upper().."|r in |cffffd700" .. event.."|r") end return true end
end
end
 
for _,event in pairs{"CHAT_MSG_WHISPER", "CHAT_MSG_PARTY", "CHAT_MSG_PARTY_LEADER"} do
ChatFrame_AddMessageEventFilter(event, filter)
end
 
loaded:SetScript("OnEvent", loaded.OnEvent);
messages:SetScript("OnEvent", messagesHandler);
\ No newline at end of file
_GautrReply.toc New file
0,0 → 1,8
## Author: Gautr
## Interface: 40300
## Notes: Reply Stuff
## Title: _GautrReply
## Version: 1.1
## SavedVariablesPerCharacter: Defaults
 
_GautrReply.lua
\ No newline at end of file