A Kobold Labourer
Join Date: Sep 2023
Posts: 1
|
lua problem
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)
download link, if you want
thanks for your advices
|