09-05-23, 12:21 PM | #1 |
![]() Hello, I started coding an addon.
First for my guild then + (we never know) but I encounter a problem, when saving the options in the DB, all the options work, but not those of "enableChatFunctionality". I can't find solution... the print returns "nil". I share my code file here Code:
-- Opt.lua -- Initialisation de la base de données SweetCornerDB = SweetCornerDB or {} local ADDON_NAME = "SweetCorner" local LibStub = LibStub local AceConfig = LibStub("AceConfig-3.0") local AceGUI = LibStub("AceGUI-3.0") local AceConfigDialog = LibStub("AceConfigDialog-3.0") local addonVersion = "version " .. GetAddOnMetadata(ADDON_NAME, "Version") -- Initialise l'état des DB SweetCornerDB.enableAddon = SweetCornerDB.enableAddon or true SweetCornerDB.enableBasicMessages = SweetCornerDB.enableBasicMessages or true SweetCornerDB.enableCustomMessages = SweetCornerDB.enableCustomMessages or false SweetCornerDB.customMessageText = SweetCornerDB.customMessageText or {} SweetCornerDB.enableMinimapButton = SweetCornerDB.enableMinimapButton or true SweetCornerDB.enableChatFunctionality = SweetCornerDB.enableChatFunctionality or true -- Tableau des messages de base _G.messages = {"Salut", "Salutations", "yop", "hello", "bonjour", "slt"} local nextOrder = 0 local function GetNextOrder() nextOrder = nextOrder + 1 return nextOrder end local function RefreshOptions() AceConfig:RegisterOptionsTable(ADDON_NAME, options) AceConfigDialog:SetDefaultSize(ADDON_NAME, 700, 500) end local generalOptions = { type = "group", name = "Général", order = GetNextOrder(), args = { enableMinimapButtonOption = { type = "toggle", name = "Activer le bouton de la Minimap", desc = "Active ou désactive l'affichage du bouton de la Minimap", get = function() return SweetCornerDB.enableMinimapButton end, set = function(_, value) SweetCornerDB.enableMinimapButton = value UpdateVisibility() -- Mettre à jour la visibilité du bouton end, order = GetNextOrder(), width = "full", }, }, } local salutOptions = { type = "group", name = "Salut Guilde", order = GetNextOrder(), args = { enableAddon = { type = "toggle", name = "Activer le salut Guilde", desc = "Active ou désactive le salut automatique en guilde lors de la connexion", get = function() return SweetCornerDB.enableAddon end, set = function(_, value) SweetCornerDB.enableAddon = value end, order = GetNextOrder(), width = "full", }, enableBasicMessages = { type = "toggle", name = "Messages de base", desc = "Active ou désactive les messages de base", get = function() return SweetCornerDB.enableBasicMessages end, set = function(_, value) SweetCornerDB.enableBasicMessages = value end, order = GetNextOrder(), width = "full", }, BasicMessagesConfig = { type = "group", name = "", order = GetNextOrder(), inline = true, args = { BasicMessagesTitre = { type = "description", name = "|cFF999999 Pré-Config :|r", fontSize = "small", order = GetNextOrder(), }, BasicMessagesDescription = { type = "description", name = function() local color = SweetCornerDB.enableBasicMessages and "|cFFFFFFFF" or "|cFF888888" return color .. " " .. table.concat(_G.messages, ", ") .. "|r" end, fontSize = "medium", order = GetNextOrder(), }, EmptyLine = { type = "description", name = " ", fontSize = "medium", order = GetNextOrder(), }, }, }, enableCustomMessages = { type = "toggle", name = "Messages personnalisés", desc = "Active ou désactive les messages personnalisés", get = function() return SweetCornerDB.enableCustomMessages end, set = function(_, value) SweetCornerDB.enableCustomMessages = value RefreshOptions() end, order = GetNextOrder(), width = "full", }, CustomMessagesConfig = { type = "group", name = "", order = GetNextOrder(), inline = true, args = { CustomMessagesText = { type = "input", name = "Personnalisez votre message :", desc = "Entrez votre message personnalisé ici.", get = function() return SweetCornerDB.customMessageText[1] end, set = function(_, value) if value and value ~= "" then -- Vérifie si la valeur n'est pas vide if string.len(value) <= 15 then -- Vérifie si la valeur a 15 caractères ou moins SweetCornerDB.customMessageText[1] = value else print("|cff00fff7" .. ADDON_NAME .. "|r: " .. "|cffff0000On t'a demandé un message de salutation, pas un roman !|r") RefreshOptions() end else print("|cff00fff7" .. ADDON_NAME .. "|r: Le message personnalisé ne peut pas être vide.") SweetCornerDB.customMessageText[1] = nil -- Met la valeur à vide SweetCornerDB.enableCustomMessages = false -- Désactive la case "Messages personnalisés" RefreshOptions() end end, disabled = function() return not SweetCornerDB.enableCustomMessages end, order = GetNextOrder(), width = "full", } }, }, }, } local chatOptions = { type = "group", name = "Chat Options", order = GetNextOrder(), args = { enableChatFunctionality = { type = "toggle", name = "Activer le bouton du chat", desc = "Active ou désactive le bouton du chat", get = function() return SweetCornerDB.enableChatFunctionality end, set = function(_, value) SweetCornerDB.enableChatFunctionality = value UpdateChatButtonsVisibility() -- Mettre à jour la visibilité du bouton print(type(options)) end, order = GetNextOrder(), width = "full", }, }, } local options = { type = "group", childGroups = "tab", args = { sweetcorner = { type = "group", name = addonVersion, args = { general = generalOptions, salut = salutOptions, chat = chatOptions, reloadButton = { type = "execute", name = "ReloadUI", desc = "/reload", func = function() ReloadUI() end, order = GetNextOrder(), }, resetToDefaultButton = { type = "execute", name = "Reset Config", desc = "Réinitialise la configuration", func = function() ResetToDefaults() -- Assurez-vous que cette fonction est accessible UpdateButtonVisibility() RefreshOptions() end, order = GetNextOrder(), }, EmptyLine03 = { type = "description", name = " ", order = GetNextOrder(), }, }, }, }, name = "|cff00fff7" .. ADDON_NAME .. "|r|cff797979 Options", } AceConfig:RegisterOptionsTable(ADDON_NAME, options) AceConfigDialog:SetDefaultSize(ADDON_NAME, 700, 500) AceConfigDialog:AddToBlizOptions(ADDON_NAME, ADDON_NAME) thanks for your advices |
|
![]() |
WoWInterface » Developer Discussions » Lua/XML Help » lua problem |
«
Previous Thread
|
Next Thread
»
|
Thread Tools | |
Display Modes | |
|
|