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.

88 lines
2.5 KiB

local ADDON_NAME, PRIVATE_TABLE = ...
local L = LibStub("AceLocale-3.0"):GetLocale("AutoLooter")
local ListHelper = PRIVATE_TABLE.ListHelper
local Util = PRIVATE_TABLE.Util
local WidgetLists = AceGUIWidgetLSMlists
local AutoLooter = LibStub("AceAddon-3.0"):GetAddon("AutoLooter")
local module = AutoLooter:NewModule("AlertList", PRIVATE_TABLE.ToggleableModulePrototype, "AceEvent-3.0")
module.priority = 1
local PlaySoundFile = PlaySoundFile
local RaidNotice_AddMessage = RaidNotice_AddMessage
function module:CanEnable()
return AutoLooter.db.profile.alert and next(AutoLooter.db.profile.alert)
end
function module:InitializeDb()
self.db = AutoLooter.db
end
function module.CanLoot(link, icon, sTitle, nQuantity, currencyID, nRarity, locked, isQuestItem, questId, isActive)
local id = Util.getId(link)
local db = AutoLooter.db.profile
if (db.alert[id] or db.alert[sTitle]) then
if db.alertSound then
local sound = db.alertSound
if (WidgetLists.sound[db.alertSound]) then
sound = WidgetLists.sound[db.alertSound]
end
pcall(PlaySoundFile, sound) -- safe
end
RaidNotice_AddMessage(RaidWarningFrame, link, ChatTypeInfo["RAID_WARNING"])
end
end
function module:GetOptions()
return {
alertlist = {
name = L["Alert List"],
type = "group",
args = {
info = {
type = "header",
name = L["You can drag & drop items here!"],
order = 0,
hidden = true,
dialogHidden = false,
},
add = {
type = "input",
name = L["Add item to alert list"],
width = "full",
set = function(info, val)
ListHelper.AddItem(val, AutoLooter.db.profile.alert)
module:UpdateState()
end,
get = false,
order = 1,
},
remove = {
type = "select",
name = L["Remove item from alert list"],
width = "full",
values = function() return ListHelper.GetValues(AutoLooter.db.profile.alert) end,
set = function(info, val)
ListHelper.RemoveItem(val, AutoLooter.db.profile.alert)
module:UpdateState()
end,
get = function(info) end,
order = 2,
},
sound = {
type = "select",
name = L["Set alert sound"],
width = "full",
dialogControl = "LSM30_Sound",
values = WidgetLists.sound,
set = function(info, val) AutoLooter.db.profile.alertSound = val end,
get = function(info) return AutoLooter.db.profile.alertSound end,
order = 3,
}
}
}
}
end