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.

83 lines
2.4 KiB

local _, Internal = ...;
local current = select(4, GetBuildInfo());
local function IsBuild(build)
return build == current
end
local function IsAtleastBuild(build)
return build <= current
end
local function IsExpansion(expansion)
return expansion == GetExpansionLevel()
end
local seasons = {
[1] = {
[9] = 1670943600,
[10] = 1683644400,
},
[2] = {
[9] = 1671058800,
[10] = 1683759600,
},
[3] = {
[9] = 1670990400,
[10] = 1683691200,
},
[4] = {
[9] = 1671058800,
[10] = 1683759600,
},
[5] = {
[9] = 1671058800,
[10] = 1683759600,
},
[72] = {
[9] = 1671058800,
[10] = 1683759600,
},
};
local function IsSeason(season)
-- C_MythicPlus.GetCurrentSeason isnt always available during first login sp we fallback to date checking.
-- In the future it might be worth using something else or delaying season checks
local current = C_MythicPlus.GetCurrentSeason()
if current > 0 then
return season == current
end
local time = GetServerTime()
local region = seasons[GetCurrentRegion()]
local prev = region[season]
if not prev or time < prev then
return false
end
if region[season+1] then
local next = region[season+1]
if time > next then
return false
end
end
return true
end
Internal.IsShadowlandsPatch = IsAtleastBuild(90000)
Internal.IsChainsOfDominationPatch = IsAtleastBuild(90100)
Internal.IsEternitysEndPatch = IsAtleastBuild(90200)
Internal.IsEternitysEndPatch = IsAtleastBuild(90200)
Internal.IsDragonflightPatch = IsAtleastBuild(100000)
Internal.Is100000 = IsBuild(100000)
Internal.Is100002 = IsBuild(100002)
Internal.Is100005 = IsBuild(100005)
Internal.Is100007 = IsBuild(100007)
Internal.Is100100 = IsAtleastBuild(100100)
Internal.Is100105 = IsAtleastBuild(100105)
Internal.IsBattleForAzeroth = IsExpansion(LE_EXPANSION_BATTLEFORAZEROTH or 7)
Internal.IsShadowlands = IsExpansion(LE_EXPANSION_SHADOWLANDS or 8)
Internal.IsDragonflight = IsExpansion(LE_EXPANSION_DRAGONFLIGHT or 9)
Internal.IsShadowlandsSeason1 = IsSeason(5)
Internal.IsShadowlandsSeason2 = IsSeason(6)
Internal.IsShadowlandsSeason3 = IsSeason(7)
Internal.IsShadowlandsSeason4 = IsSeason(8)
Internal.IsDragonflightSeason1 = IsSeason(9)
Internal.IsDragonflightSeason2 = IsSeason(10)