LeoGuildManagerSettings = ZO_Object:Subclass() local LAM = LibStub("LibAddonMenu-2.0") function LeoGuildManagerSettings:New(...) local object = ZO_Object.New(self) object:Initialize(...) return object end function LeoGuildManagerSettings:Initialize() end function LeoGuildManagerSettings:CreatePanel() local OptionsName = "LeoGuildManagerOptions" local panelData = { type = "panel", name = LeoGuildManager.name, slashCommand = "/leogmoptions", displayName = "|c39B027"..LeoGuildManager.displayName.."|r", author = "@LeandroSilva", version = LeoGuildManager.version, registerForRefresh = true, registerForDefaults = false, website = "http://www.esoui.com/downloads/info2140-LeosGuildManager.html" } LAM:RegisterAddonPanel(OptionsName, panelData) local optionsData = { { type = "header", name = "|c3f7fffConfiguration|r" },{ type = "dropdown", name = "Addon to integrate with", choices = LeoGuildManager.integrations, getFunc = function() return LeoGuildManager.globalData.settings.integration end, setFunc = function(value) LeoGuildManager.globalData.settings.integration = value end, requiresReload = true },{ type = "checkbox", name = "Scan guilds automatically", default = false, getFunc = function() return LeoGuildManager.globalData.settings.scanAutomatically end, setFunc = function(value) LeoGuildManager.globalData.settings.scanAutomatically = value end, },{ type = "checkbox", name = "Add guild roster tooltip", default = false, getFunc = function() return LeoGuildManager.globalData.settings.tooltipRoster end, setFunc = function(value) LeoGuildManager.globalData.settings.tooltipRoster = value end, },{ type = "header", name = "|c3f7fffGuilds|r" } } for guildId, guild in pairs(LeoGuildManager.guilds) do table.insert(optionsData, { type = "checkbox", name = guild, default = false, getFunc = function() return LeoGuildManager.globalData.settings.guilds[guild].enabled end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].enabled = value end, requiresReload = true }) end table.insert(optionsData, { type = "button", name = "Reload UI", width = "full", func = function() ReloadUI() end, }) for guildId, guild in pairs(LeoGuildManager.guilds) do if LeoGuildManager.globalData.settings.guilds[guild].enabled == true then local ranks = LeoGuildManager.GetGuildRanks(guildId) ranks[0] = "disabled" table.insert(optionsData, { type = "submenu", name = guild, disabled = true, controls = { { type = "header", name = "|c3f7fffPurge|r" },{ type = "description", text = "|c"..LeoGuildManager.color.hex.red.."This module requires Master Merchant or Arkadiu's Trade Tools|r", },{ type = "description", text = "", reference = "LeoGuildManagerSettingsRequirementsDescription" .. guildId },{ type = "dropdown", name = "Cycle duration", tooltip = "When running a purge, the search for sales and deposits will use this range of time. The values are taken from the Addon selected above.", choices = LeoGuildManager.GetCycles(), getFunc = function() return LeoGuildManager.GetCycleName(LeoGuildManager.globalData.settings.guilds[guild].cycle) end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].cycle = LeoGuildManager.GetCycleIdByName(value) end },{ type = "dropdown", name = "Ignore members with rank equal or above", choices = ranks, getFunc = function() local name = LeoGuildManager.GetGuildRankName(guildId, LeoGuildManager.globalData.settings.guilds[guild].ignoreRank) if name == nil then name = "disabled" end return name end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].ignoreRank = LeoGuildManager.GetGuildRankId(guildId, value) end },{ type = "dropdown", name = "Ignore new members", tooltip = "Recently added members need some time to start, right? :)", choices = { "1 week", "2 weeks", "3 weeks", "1 month", }, getFunc = function() local value = LeoGuildManager.globalData.settings.guilds[guild].ignoreNew return LeoGuildManager.GetNewRangeName(value) end, setFunc = function(value) if value == "1 week" then value = 7 elseif value == "2 weeks" then value = 14 elseif value == "3 weeks" then value = 21 else value = 30 end LeoGuildManager.globalData.settings.guilds[guild].ignoreNew = value end },{ type = "slider", name = "Deposits / Tickets bought (in k)", tooltip = "Required value (deposits or tickets value) to be deposited", width = "half", getFunc = function() return LeoGuildManager.globalData.settings.guilds[guild].tickets end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].tickets = value end, min = 0, max = 100, default = 10, },{ type = "slider", name = "Sales (in k)", tooltip = "Required value of sales", width = "half", getFunc = function() return LeoGuildManager.globalData.settings.guilds[guild].sales end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].sales = value end, min = 0, max = 1000, default = 150, }, { type = "slider", name = "Inactivity (in days)", width = "half", getFunc = function() return LeoGuildManager.globalData.settings.guilds[guild].inactivity end, setFunc = function(value) LeoGuildManager.globalData.settings.guilds[guild].inactivity = value end, min = 0, max = 120, default = 30, },{ type = "header", name = "|c3f7fffBlacklist|r" },{ type = "description", text = "You can add members to a blacklist and be warned when they are online and even automatically kick them from the guild." },{ type = "checkbox", name = "Warning in chat when member is online", default = true, getFunc = function() return true end, setFunc = function(value) end, },{ type = "checkbox", name = "|c"..LeoGuildManager.color.hex.red.."Automatically|r kick members", default = true, getFunc = function() return true end, setFunc = function(value) end, },{ type = "button", name = "Edit List", width = "half", func = function() ZO_Dialogs_ShowDialog("EDIT_NOTE", { displayName = "One UserID per line", note = table.concat(LeoGuildManager.globalData.settings.guilds[guild].blacklist, "\n"), changedCallback = function(displayName, text) LeoGuildManagerWindow.OnBlacklistChanged(guildId, guild, text) end }) end, },{ type = "description", text = "Members: " .. table.concat(LeoGuildManager.globalData.settings.guilds[guild].blacklist, ", "), reference = "LeoGuildManagerSettingsBlacklistLabel" .. guildId } } }) end end LAM:RegisterOptionControls(OptionsName, optionsData) end function LeoGuildManagerSettings_OnMouseEnter(control, tooltip) InitializeTooltip(InformationTooltip, control, BOTTOMLEFT, 0, -2, TOPLEFT) SetTooltipText(InformationTooltip, tooltip) end function LeoGuildManagerSettings:OnSettingsControlsCreated(panel) --Each time an options panel is created, once for each addon viewed if panel:GetName() == "LeoGuildManagerOptions" then for guildId, guild in pairs(LeoGuildManager.guilds) do if LeoGuildManager.globalData.settings.guilds[guild].enabled == true then end end end end