Validate user added instances before actually adding them.
This commit is contained in:
parent
7d360afb1c
commit
99b095a519
1 changed files with 47 additions and 1 deletions
|
@ -15,6 +15,7 @@ local defaults = {
|
||||||
},
|
},
|
||||||
sortType = 1,
|
sortType = 1,
|
||||||
sortDirection = 1,
|
sortDirection = 1,
|
||||||
|
-- Change table? ['Baradin Hold'] = { abbreviation = 'BH', enable = true }
|
||||||
instances = {
|
instances = {
|
||||||
[Z['Baradin Hold']] = 'BH',
|
[Z['Baradin Hold']] = 'BH',
|
||||||
[Z['Firelands']] = 'FL',
|
[Z['Firelands']] = 'FL',
|
||||||
|
@ -77,7 +78,13 @@ local options = {
|
||||||
desc = 'Enter an instance on a seven day lockout that you would like ChoreTracker to track.',
|
desc = 'Enter an instance on a seven day lockout that you would like ChoreTracker to track.',
|
||||||
type = 'input',
|
type = 'input',
|
||||||
order = 1,
|
order = 1,
|
||||||
set = function(info, value) db.profile.instances[value] = '' end,
|
set = function(info, value)
|
||||||
|
if core:VerifyInstance(value) then
|
||||||
|
db.profile.instances[value] = ''
|
||||||
|
else
|
||||||
|
print('invalid instance')
|
||||||
|
end
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
barHeader = {
|
barHeader = {
|
||||||
name = 'Instances',
|
name = 'Instances',
|
||||||
|
@ -366,6 +373,45 @@ function core:GetNextVPReset()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function core:VerifyInstance(instance)
|
||||||
|
-- User a method similar to GetNextVPReset() to make sure the instance
|
||||||
|
-- has a lockout on the calendar
|
||||||
|
local currentCalendarSetting = GetCVar('calendarShowResets')
|
||||||
|
SetCVar('calendarShowResets', 1)
|
||||||
|
|
||||||
|
local _, month, day, year = CalendarGetDate()
|
||||||
|
|
||||||
|
local monthOffset = 0
|
||||||
|
local resetDate = nil
|
||||||
|
while resetDate == nil do
|
||||||
|
local todaysEvents = CalendarGetNumDayEvents(monthOffset, day)
|
||||||
|
|
||||||
|
for i = 1,todaysEvents do
|
||||||
|
if todaysEvents == 0 then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
local title,hour,minute = CalendarGetDayEvent(monthOffset, day, i)
|
||||||
|
|
||||||
|
if title == instance then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
day = day + 1
|
||||||
|
if day > 31 then
|
||||||
|
if monthOffset == 1 then break end
|
||||||
|
day = 1
|
||||||
|
monthOffset = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Reset the calendar to the original settings
|
||||||
|
SetCVar('calendarShowResets', currentCalendarSetting)
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
function core:DrawTooltip()
|
function core:DrawTooltip()
|
||||||
-- UpdateChores before we show the tooltip to make sure we have the most recent data
|
-- UpdateChores before we show the tooltip to make sure we have the most recent data
|
||||||
core:UpdateChores()
|
core:UpdateChores()
|
||||||
|
|
Loading…
Reference in a new issue