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.
68 lines
2.4 KiB
68 lines
2.4 KiB
-- Notify player when there is an available breadcomb quest for the current quest.
|
|
-- It's, in fact, the Grail addon that we need. But the notification is created by Wholly
|
|
local _, addon = ...
|
|
|
|
|
|
do
|
|
local ADDON_NAME = "Wholly";
|
|
|
|
--https://github.com/smaitch/Wholly/blob/master/Wholly.lua#L4398 --Wholly:_GetBreadcrumbMessage()
|
|
--https://github.com/smaitch/Grail/blob/master/Grail/Grail.lua#4401
|
|
|
|
local function OnAddOnLoaded()
|
|
if not (Wholly and Grail) then return end;
|
|
|
|
local requiredMethods = {
|
|
"AvailableBreadcrumbs",
|
|
};
|
|
|
|
for _, method in ipairs(requiredMethods) do
|
|
if not Grail[method] then
|
|
return
|
|
end
|
|
end
|
|
|
|
--Success
|
|
|
|
local GetQuestName = addon.API.GetQuestName;
|
|
|
|
local function HandleEvent(event)
|
|
if event == "QUEST_DETAIL" then
|
|
local questID = GetQuestID();
|
|
if questID and questID ~= 0 then
|
|
local quests = Grail:AvailableBreadcrumbs();
|
|
|
|
if quests then
|
|
local questText;
|
|
for _, id in ipairs(quests)do
|
|
local text;
|
|
local name = GetQuestName(id);
|
|
if name and name ~= "" then
|
|
text = name;
|
|
else
|
|
text = string.format("[Quest:%s]", id);
|
|
end
|
|
|
|
if text then
|
|
if not questText then
|
|
questText = text;
|
|
else
|
|
questText = questText .. ", "..text;
|
|
end
|
|
end
|
|
end
|
|
|
|
if questText then
|
|
questText = addon.L["Format Breadcrumb Quests Available"]:format(questText);
|
|
addon.Banner:DisplayAutoFadeMessage(questText, 0.5);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
addon.CallbackRegistry:Register("DialogueUI.HandleEvent", HandleEvent);
|
|
end
|
|
|
|
addon.AddSupportedAddOn(ADDON_NAME, OnAddOnLoaded);
|
|
end
|