if not InvenRaidFrames2CharDB.buffCheck then return end

local IRF2 = InvenRaidFrames2
local Option = IRF2.optionFrame
local LBO = LibStub("LibBlueOption-1.0")

function Option:CreateBuffCheckMenu(menu, parent)
	menu.use = LBO:CreateWidget("CheckBox", parent, "사용하기", "버프 확인 기능의 사용 여부를 설정합니다.", nil, nil, nil,
		function()
			return IRF2.db.buffCheck.use
		end,
		function(v)
			IRF2.db.buffCheck.use = v
			IRF2:UpdateAllUnits()
			LBO:Refresh(parent)
		end
	)
	menu.use:SetPoint("TOPLEFT", 5, 5)
	local disable = function() return not IRF2.db.buffCheck.use end
	local get = function(char, key, arg1) return IRF2[char and "charDB" or "db"].buffCheck[key], arg1 end
	local set = function(v, char, key)
		IRF2[char and "charDB" or "db"].buffCheck[key] = v
		IRF2:UpdateAllUnits()
	end
	menu.combat = LBO:CreateWidget("CheckBox", parent, "전투 중 버프 표시하기", "전투 중에도 버프의 유무에 따른 아이콘을 표시합니다.", nil, disable, nil, get, set, true, "showInCombat")
	menu.combat:SetPoint("TOPRIGHT", -5, 5)
	menu.display = LBO:CreateWidget("DropDown", parent, "표시 방식", "버프가 있을 때 아이콘을 표시할 지 아니면, 버프가 없을 때 아이콘을 표시할지를 설정합니다.", nil, disable, nil, get, set, true, "shownType", { "버프가 있을 때 표시", "버프가 없을 때 표시" })
	menu.display:SetPoint("TOP", menu.use, "BOTTOM", 0, 0)
	menu.pos = LBO:CreateWidget("DropDown", parent, "위치", "버프 확인 아이콘의 위치를 설정합니다.", nil, disable, nil, get,
		function(v)
			IRF2.db.buffCheck.pos = v
			local pos = IRF2:GetFramePoint(v)[1]
			for _, object in pairs(IRF2.objects) do
				if object.buffFrame then
					object.buffFrame:ClearAllPoints()
					object.buffFrame:SetPoint(pos, object, pos)
				end
			end
		end,
	nil, "pos", self.dropdownTable["위치2"])
	menu.pos:SetPoint("TOP", menu.combat, "BOTTOM", 0, 0)
	menu.size = LBO:CreateWidget("Slider", parent, "크기", "버프 아이콘의 크기를 조절합니다.", nil, disable, nil,
		function()
			return IRF2.db.buffCheck.size, 8, 20, 1, "픽셀"
		end,
		function(v)
			IRF2.db.buffCheck.size = v
			for _, object in pairs(IRF2.objects) do
				if object.buffFrame then
					object.buffFrame:SetHeight(v)
					if object.buffFrame[1] then
						for i = 1, #object.buffFrame do
							object.buffFrame[i]:SetHeight(v)
						end
					end
					IRF2:AuraUpdate(object.unit)
				end
			end
		end
	)
	menu.size:SetPoint("TOP", menu.display, "BOTTOM", 0, -10)
	if type(IRF2.charDB.buffCheck.check) == "table" then
		local getBuff = function(id)
			return IRF2.charDB.buffCheck.check[id]
		end
		local setBuff = function(v, id)
			IRF2.charDB.buffCheck.check[id] = v
			IRF2:UpdateAllUnits()
		end
		for i, buff in ipairs({ IRF2:GetBuffCheckList() }) do
			menu["buff"..i] = LBO:CreateWidget("CheckBox", parent, buff.." 버프 확인", buff.." 버프를 확인합니다.", nil, disable, nil, getBuff, setBuff, i)
			if i == 1 then
				menu["buff"..i]:SetPoint("TOPLEFT", 5, -135)
			elseif i == 2 then
				menu["buff"..i]:SetPoint("TOPRIGHT", -5, -135)
			else
				menu["buff"..i]:SetPoint("TOP", menu["buff"..(i - 2)], "BOTTOM", 0, 5)
			end
		end
	else
		menu.buff = LBO:CreateWidget("CheckBox", parent, "축복 버프 확인", "축복 버프를 확인 합니다.", nil, disable, nil, get, set, true, "check")
		menu.buff:SetPoint("TOPLEFT", 5, -135)
	end
	menu.check1 = LBO:CreateWidget("CheckBox", parent, "필드에서 사용하기", "필드에서 버프 확인 기능을 사용합니다.", nil, disable, nil, get, set, true, "useField")
	menu.check1:SetPoint("TOPLEFT", 5, -215)
	menu.check2 = LBO:CreateWidget("CheckBox", parent, "전장에서 사용하기", "전장이나 투기장에서 버프 확인 기능을 사용합니다.", nil, disable, nil, get, set, true, "usePVP")
	menu.check2:SetPoint("TOPRIGHT", -5, -215)
	menu.check3 = LBO:CreateWidget("CheckBox", parent, "인던에서 사용하기", "인스턴스 던전에서 버프 확인 기능을 사용합니다.", nil, disable, nil, get, set, true, "useInstance")
	menu.check3:SetPoint("TOP", menu.check1, "BOTTOM", 0, 5)
end