Files
Questie-X/Modules/Options/AutoTab/QuestieOptionsAuto.lua
T
Xurkon 0aaffce1e9 compat(lua50): fix Options tab tables {...} typo to {}
QuestieOptions.tabs.{auto,dbm,icons,nameplate} were initialized with {...}
instead of {}. At file scope in Lua 5.1 this silently captures the addon
varargs into the table; in Lua 5.0 it is a parse error. All sibling tabs use
{}. No behavioral change (Initialize repopulates the table).
2026-06-12 18:36:59 -05:00

352 lines
18 KiB
Lua

---@type QuestieOptions
local QuestieOptions = QuestieLoader:ImportModule("QuestieOptions");
---@type QuestieOptionsUtils
local QuestieOptionsUtils = QuestieLoader:ImportModule("QuestieOptionsUtils");
---@type QuestieTracker
local QuestieTracker = QuestieLoader:ImportModule("QuestieTracker");
---@type l10n
local l10n = QuestieLoader:ImportModule("l10n")
QuestieOptions.tabs.auto = {}
local _GetShortcuts
function QuestieOptions.tabs.auto:Initialize()
return {
name = function() return l10n('Auto'); end,
type = "group",
order = 4,
childGroups = "tab",
args = {
autoModifier = {
type = "select",
order = 0,
values = _GetShortcuts(),
style = 'dropdown',
name = function() return l10n('Auto Modifier') end,
desc = function() return l10n('The modifier to NOT auto-accept/-complete quests when either option is enabled and you interact with a quest NPC.'); end,
width = 0.65,
--disabled = function() return (not Questie.db.profile.autocomplete) and (not Questie.db.profile.autoaccept) end,
get = function() return Questie.db.profile.autoModifier; end,
set = function(input, key)
Questie.db.profile.autoModifier = key
end,
},
autocomplete_options = {
type = "header",
order = 1,
name = function() return l10n('Auto Complete'); end,
},
autocomplete = {
type = "toggle",
order = 1.1,
name = function() return l10n('Auto Complete Quests'); end,
desc = function() return l10n('When enabled, Questie will automatically hand in finished quests when talking to NPCs.'); end,
get = function () return Questie.db.profile.autocomplete; end,
set = function (info, value)
Questie.db.profile.autocomplete = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Complete toggled to:", value)
end,
},
autocomplete_spacer = QuestieOptionsUtils:Spacer(1.2),
autoaccept_options = {
type = "header",
order = 2,
name = function() return l10n('Auto Accept'); end,
},
autoaccept = {
type = "toggle",
order = 2.1,
name = function() return l10n('Auto Accept Quests'); end,
desc = function() return l10n('When enabled, Questie will automatically accept quest dialogs when they appear, depending on the rules below.'); end,
get = function () return Questie.db.profile.autoaccept; end,
set = function (info, value)
Questie.db.profile.autoaccept = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept toggled to:", value)
end,
},
npcrules_group = {
type = "group",
order = 2.2,
inline = true,
width = 0.5,
name = function() return l10n('Rules for NPCs'); end,
disabled = function() return not Questie.db.profile.autoaccept end,
args = {
npc_normalquests = {
type = "toggle",
order = 1,
name = function() return l10n('Normal Quests'); end,
desc = function() return l10n('Automatically accept normal quests from NPCs.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_normal; end,
-- END
set = function (info, value)
Questie.db.profile.autoaccept_npc_normal = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC Normal toggled to:", value)
end,
},
npc_repeatablequests = {
type = "toggle",
order = 2,
name = function() return l10n('Repeatable Quests'); end,
desc = function() return l10n('Automatically accept repeatable quests (including dailies) from NPCs.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_repeatable; end,
set = function (info, value)
Questie.db.profile.autoaccept_npc_repeatable = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC Repeatable toggled to:", value)
end,
},
npc_dungeonquests = {
type = "toggle",
order = 3,
name = function() return l10n('Dungeon/Raid Quests'); end,
desc = function() return l10n('Automatically accept dungeon and raid quests from NPCs.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_dungeon; end,
set = function (info, value)
Questie.db.profile.autoaccept_npc_dungeon = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC Dungeon toggled to:", value)
end,
},
npc_pvpquests = {
type = "toggle",
order = 4,
name = function() return l10n('PvP Quests'); end,
desc = function() return l10n('Automatically accept PvP quests from NPCs.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_pvp; end,
set = function (info, value)
Questie.db.profile.autoaccept_npc_pvp = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC PvP toggled to:", value)
end,
},
npc_eventquests = {
type = "toggle",
order = 5,
name = function() return l10n('Event Quests'); end,
desc = function() return l10n('Automatically accept event quests (including event dailies) from NPCs.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_event; end,
set = function (info, value)
Questie.db.profile.autoaccept_npc_event = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC Event toggled to:", value)
end,
},
npc_trivialquests = {
type = "toggle",
order = 6,
name = function() return l10n('Trivial Quests'); end,
desc = function() return l10n('Automatically accept trivial (low-level) quests from NPCs.'); end,
width = 1,
-- AUTO 1.0
get = function() return Questie.db.profile.acceptTrivial; end,
set = function(_, value)
Questie.db.profile.acceptTrivial = value
end,
-- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_npc_trivial; end,
-- set = function (info, value)
-- Questie.db.profile.autoaccept_npc_trivial = value
-- Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept NPC Trivial toggled to:", value)
-- end,
},
},
},
playerrules_group = {
type = "group",
order = 2.3,
inline = true,
width = 0.5,
disabled = function() return not Questie.db.profile.autoaccept end,
name = function() return l10n('Rules for players'); end,
args = {
player_normalquests = {
type = "toggle",
order = 1,
name = function() return l10n('Normal Quests'); end,
desc = function() return l10n('Automatically accept normal quests from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_normal; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_normal = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player Normal toggled to:", value)
end,
},
player_repeatablequests = {
type = "toggle",
order = 2,
name = function() return l10n('Repeatable Quests'); end,
desc = function() return l10n('Automatically accept repeatable quests (including dailies) from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_repeatable; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_repeatable = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player Repeatable toggled to:", value)
end,
},
player_dungeonquests = {
type = "toggle",
order = 3,
name = function() return l10n('Dungeon/Raid Quests'); end,
desc = function() return l10n('Automatically accept dungeon and raid quests from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_dungeon; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_dungeon = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player Dungeon toggled to:", value)
end,
},
player_pvpquests = {
type = "toggle",
order = 4,
name = function() return l10n('PvP Quests'); end,
desc = function() return l10n('Automatically accept PvP quests from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_pvp; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_pvp = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player PvP toggled to:", value)
end,
},
player_eventquests = {
type = "toggle",
order = 5,
name = function() return l10n('Event Quests'); end,
desc = function() return l10n('Automatically accept event quests (including event dailies) from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_event; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_event = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player Event toggled to:", value)
end,
},
player_trivialquests = {
type = "toggle",
order = 6,
name = function() return l10n('Trivial Quests'); end,
desc = function() return l10n('Automatically accept trivial (low-level) quests from players.'); end,
width = 1,
-- AUTO 1.0
disabled = true,
get = function () return true; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoaccept_player_trivial; end,
set = function (info, value)
Questie.db.profile.autoaccept_player_trivial = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Accept Player Trivial toggled to:", value)
end,
},
},
},
autoaccept_spacer = QuestieOptionsUtils:Spacer(2.4),
--Spacer_H = QuestieOptionsUtils:HorizontalSpacer(7, 1),
--acceptTrivial = {
-- type = "toggle",
-- order = 8,
-- name = function() return l10n('Accept trivial (low level) quests'); end,
-- desc = function() return l10n('When this is enabled trivial (gray) quests will be auto accepted as well.'); end,
-- disabled = function() return (not Questie.db.profile.autoaccept) end,
-- width = 1.5,
-- get = function () return Questie.db.profile.acceptTrivial; end,
-- set = function (info, value)
-- Questie.db.profile.acceptTrivial = value
-- end,
--},
autoreject_options = {
type = "header",
order = 3,
name = function() return l10n('Auto Reject'); end,
},
autoreject_battlegrounds = {
type = "toggle",
order = 3.1,
name = function() return l10n('Reject quests shared in battlegrounds'); end,
desc = function() return l10n('Automatically reject quests shared by players while in a battleground instance. This feature overrides autoaccept behavior.'); end,
width = 1.6,
-- AUTO 1.0
disabled = true,
get = function () return false; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoreject_battleground; end,
set = function (info, value)
Questie.db.profile.autoreject_battleground = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Reject Battleground toggled to:", value)
end,
},
autoreject_randoms = {
type = "toggle",
order = 3.2,
name = function() return l10n('Reject quests shared by non-friends'); end,
desc = function() return l10n('Automatically reject quests shared by players that aren\'t on your friends list. This feature overrides autoaccept behavior.'); end,
width = 1.6,
-- AUTO 1.0
disabled = true,
get = function () return false; end,
-- -- AUTO 2.0
-- get = function () return Questie.db.profile.autoreject_nonfriend; end,
set = function (info, value)
Questie.db.profile.autoreject_nonfriend = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Auto Reject Nonfriend toggled to:", value)
end,
},
wip_spacer = QuestieOptionsUtils:Spacer(4),
wip_text = {
type = "description",
order = 5,
name = function() return l10n('Further Auto customization is coming in a future Questie update.'); end,
fontSize = "medium",
},
}
}
end
_GetShortcuts = function()
return {
['shift'] = l10n('Shift'),
['ctrl'] = l10n('Control'),
['alt'] = l10n('Alt'),
['disabled'] = l10n('Disabled'),
}
end