Ok I had a closer look at your code, you need to replace the _ with . in the function name.
Basically it is a table for the Addon and the OnLoad and OnEvent are part of the table.
Code: Select all
function AutoAutoUse.OnLoad(this)
function AutoAutoUse.OnEvent(this, event)
Here is my madman addon you can use as a template.
Notice the
madman = {};
and then everything else is
madman.
You also need to make sure you have a .xml file that initiates the actual event code.
Code: Select all
--=== madman by Lisa ===--
-----------Initialize Variables-----------
madman = {};
madman_Settings = {};
madman.ismadmanInitialized = false;
madman.playerName = "";
madman.TotalCount = 150;
madman.CountDown = TotalCount;
madman.EndCount = 1;
madman.DeciTime = 0;
madman.Reset = false;
madman.Time = 0
mm_once = false
-----------Constants-----------
madman.PLUGIN_NAME = "madman";
madman.PLUGIN_VERSION = 1.2;
madman.PLUGIN_CREDIT = "Lisa";
madman.PLUGIN_TITLE = madman.PLUGIN_NAME .. " " .. madman.PLUGIN_VERSION .. " (by " ..madman.PLUGIN_CREDIT .. ")";
-----------read language file-----------
madman.curLocal = string.sub(GetLanguage():upper(), 1,2);
local localeFileName = "Interface/AddOns/madman/Locales/madman."..string.upper(madman.curLocal)..".lua";
local func, err = loadfile(localeFileName);
if (err) then
dofile("Interface/AddOns/madman/Locales/madman.EN.lua");
else
dofile(localeFileName);
end
-----------Minimap Buttons-----------
function madman.MinimapButton_OnClick(this)
if ( madmanConfig:IsVisible() ) then
HideUIPanel(madmanConfig);
else
ShowUIPanel(madmanConfig);
end
end
function madman.MinimapButton_OnEnter(this)
GameTooltip:SetOwner(this, "ANCHOR_LEFT", 4, 0);
GameTooltip:SetText(PLUGIN_TITLE, 1, 1, 1);
GameTooltip:AddLine(UI_MINIMAPBUTTON_MOVE, 0, 0.75, 0.95);
GameTooltip:Show();
end
-----------Register Events-----------
function madman.OnLoad(this)
SaveVariables("madman_Settings");
this:RegisterEvent("CHAT_MSG_SAY");
this:RegisterEvent("VARIABLES_LOADED");
this:RegisterEvent("UNIT_PORTRAIT_UPDATE"); --used, if it was for some reason impossible to get the playername after variables loaded
end
--------- <OnEvent> ---------
function madman.OnEvent(event, this)
if (event == "VARIABLES_LOADED") then
madman.CheckSettingsLoaded();
if (AddonManager) then
local addon = {
name = madman.PLUGIN_NAME,
version = madman.PLUGIN_VERSION,
author = madman.PLUGIN_CREDIT,
description = madman_Locales["DESCRIPTION"],
icon = "Interface/AddOns/madman/Textures/cm_normal.tga",
category = "Information",
configFrame = madmanConfig,
slashCommands = "/mm",
miniButton = madman_AOMButton
};
if (AddonManager.RegisterAddonTable) then
AddonManager.RegisterAddonTable(addon);
else
AddonManager.RegisterAddon(addon.name, addon.description, addon.icon, addon.category, addon.configFrame, addon.slashCommands, addon.miniButton, addon.version, addon.author);
end;
HideUIPanel(madman_MinimapButton);
else
DEFAULT_CHAT_FRAME:AddMessage(string.format(madman_Locales["PLUGINLOADED"], madman.PLUGIN_TITLE), 0.5, 0.7, 1.0);
end;
elseif ( event == "UNIT_PORTRAIT_UPDATE" and arg1 == "player" ) then
if ( madman.ismadmanInitialized ~= true ) then
madman.CheckSettingsLoaded();
end
elseif event == "CHAT_MSG_SAY" then
madman.Chat(event,this);
end
end
--------- <Default Settings> ---------
function madman.CheckSettingsLoaded()
if ( madman.ismadmanInitialized == true ) then
return;
end
madman.playerName = UnitName("player");
if ( madman.playerName == nil or madman.playerName == "" ) then
return;
end
local DefaultSettings = {
["KeyWordCheck1"] = true,
["KeyWord1"] = "crush you",
};
if(madman_Settings[madman.playerName] == nil) then
madman_Settings[madman.playerName] = {};
end
for k,v in pairs(DefaultSettings) do
if (madman_Settings[madman.playerName][k] == nil) then
madman_Settings[madman.playerName][k] = v;
end
end
madman.ismadmanInitialized = true;
DEFAULT_CHAT_FRAME:AddMessage(string.format(madman_Locales["SETTINGSLOADED"], madman.PLUGIN_TITLE, madman.playerName), 0.5, 0.7, 1.0);
end
-----------Show Config Window-----------
function madman.OnShow()
--fill window with current settings.
madmanConfigTitleFrame_Title:SetText(madman.PLUGIN_TITLE);
madmanConfig_Save:SetText(madman_Locales["SAVE"]);
madmanConfigBackdropFrame_SettingsInfo:SetText(string.format(madman_Locales["SETTINGSFORCHAR"], madman.playerName));
madmanConfigBackdropFrame_TitleKeywords:SetText(madman_Locales["KEYWORDS"]);
madmanConfig_KeyWordCheck1:SetChecked(madman_Settings[madman.playerName]["KeyWordCheck1"]);
madmanConfig_KeyWord1:SetText(madman_Settings[madman.playerName]["KeyWord1"]);
end
-----------SaveSettings-----------
function madman.SaveSettings()
local NewSettings = {
["KeyWordCheck1"] = madmanConfig_KeyWordCheck1:IsChecked(),
["KeyWord1"] = madmanConfig_KeyWord1:GetText(),
};
for k,v in pairs(NewSettings) do
madman_Settings[madman.playerName][k] = v;
end
DEFAULT_CHAT_FRAME:AddMessage(string.format(madman_Locales["SETTINGSSAVED"], madman.PLUGIN_TITLE, madman.playerName), 0.5, 0.7, 1.0);
end
-----------Handle Tooltips-----------
function madman.Tooltip(this, type)
GameTooltip:SetOwner(this, "ANCHOR_RIGHT", 4, 0);
if(type=="checkbox") then
GameTooltip:SetText(madman_Locales["CHECKBOXTOOLTIP"], 0, 0.75, 0.95);
elseif(type=="keyword") then
GameTooltip:SetText(madman_Locales["KEYWORDTOOLTIP"], 0, 0.75, 0.95);
elseif(type=="save") then
GameTooltip:SetText(madman_Locales["SAVETOOLTIP"], 0, 0.75, 0.95);
end
GameTooltip:Show();
end
-----------Check Chat ------------------
function madman.Chat(event,this)
if(madman.ismadmanInitialized) then
local docheck = false;
if(event == "CHAT_MSG_SAY")then
docheck = true;
end
if (docheck) then
local var = string.lower(arg1);
if(madman_Settings[madman.playerName]["KeyWordCheck1"] and (madman_Settings[madman.playerName]["KeyWord1"] ~= nil or madman_Settings[madman.playerName]["KeyWord1"] ~= "")) then
if(string.find(var,string.lower(madman_Settings[madman.playerName]["KeyWord1"])) ~= nil) then
if arg4 ~= madman.playerName then
madman.Time = 1
SendSystemChat("moving forward")
MoveForwardStart();
madman.WarningText(madman_Settings[madman.playerName]["KeyWord1"]);
end
end
end
end
end
end
-----------show WarningText-----------
function madman.WarningText(warningtext)
if(madman_Settings[madman.playerName]["ShowTextCheck"]) then
madman_WarningText:SetText("|cffff9900"..warningtext);
madman.FadeFired = true;
madman.Reset = true;
madman_WarningFrame:SetAlpha(1);
end
end
-----------fade WarningText-----------
function madman.Warning_Tick()
if madman.CountDown >= madman.EndCount then
madman.DeciTime = madman.CountDown/madman.TotalCount;
if madman.DeciTime <= 0.5 then
madman.DeciTime = madman.DeciTime*2;
madman_WarningFrame:SetAlpha(madman.DeciTime);
end
else
madman.FadeFired = false;
madman.CountDown = madman.TotalCount;
madman_WarningFrame:SetAlpha(0);
end
if madman.Reset then
madman.CountDown = madman.TotalCount;
madman_WarningFrame:SetAlpha(1);
madman.Reset = false;
else
madman.CountDown = madman.CountDown - 1;
end
end
function mm_OnUpdate(frame, elapsedTime)
if madman.Time >= 1 then
madman.Time = madman.Time + elapsedTime
end
if madman.Time >= 5 and mm_once == false then
MoveForwardStop();
mm_once = true
end
if madman.Time >= 7 and mm_once == true then
madman.Time = 0
mm_once = false
end
end