You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.2 KiB
80 lines
2.2 KiB
-- Auto-select "Reporting for duty"
|
|
|
|
local _, addon = ...
|
|
local API = addon.API;
|
|
|
|
local EL = CreateFrame("Frame");
|
|
local UnitName = UnitName;
|
|
local SORIDORMI;
|
|
local ENABLE_AUTO_REPORT = true;
|
|
|
|
|
|
local function EL_OnGossipShow(self, event, ...)
|
|
if ENABLE_AUTO_REPORT and UnitName("npc") == SORIDORMI then
|
|
if GossipFrame and GossipFrame:IsShown() then
|
|
--Auto Report-in
|
|
local options = C_GossipInfo.GetOptions();
|
|
if options and options[1] and options[1].gossipOptionID == 109275 then
|
|
C_GossipInfo.SelectOption(109275);
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
EL:RegisterEvent("PLAYER_ENTERING_WORLD");
|
|
|
|
EL:SetScript("OnEvent", function(self, event, ...)
|
|
self:UnregisterEvent(event);
|
|
API.GetCreatureName(204450);
|
|
EL:SetScript("OnEvent", EL_OnGossipShow);
|
|
end);
|
|
|
|
|
|
local ZoneTriggerModule;
|
|
|
|
local function EnableModule(state)
|
|
if state then
|
|
if not ZoneTriggerModule then
|
|
local module = API.CreateZoneTriggeredModule();
|
|
ZoneTriggerModule = module;
|
|
|
|
module:SetValidZones(2025, 2199);
|
|
|
|
local function OnEnterZoneCallback()
|
|
if not SORIDORMI then
|
|
SORIDORMI = API.GetCreatureName(204450) or "Soridormi";
|
|
end
|
|
EL:RegisterEvent("GOSSIP_SHOW");
|
|
end
|
|
|
|
local function OnLeaveZoneCallback()
|
|
EL:UnregisterEvent("GOSSIP_SHOW");
|
|
end
|
|
|
|
module:SetEnterZoneCallback(OnEnterZoneCallback);
|
|
module:SetLeaveZoneCallback(OnLeaveZoneCallback);
|
|
end
|
|
ZoneTriggerModule:SetEnabled(true);
|
|
ZoneTriggerModule:Update();
|
|
else
|
|
if ZoneTriggerModule then
|
|
ZoneTriggerModule:SetEnabled(false);
|
|
end
|
|
EL:UnregisterEvent("GOSSIP_SHOW");
|
|
end
|
|
end
|
|
|
|
do
|
|
|
|
local moduleData = {
|
|
name = addon.L["ModuleName AutoJoinEvents"],
|
|
dbKey = "AutoJoinEvents",
|
|
description = addon.L["ModuleDescription AutoJoinEvents"],
|
|
toggleFunc = EnableModule,
|
|
categoryID = 2,
|
|
uiOrder = 2,
|
|
};
|
|
|
|
addon.ControlCenter:AddModule(moduleData);
|
|
end
|