v9.7.2: Ebonhold Database integration and core logic refinements

This commit is contained in:
Xurkon
2026-02-14 21:13:44 -06:00
parent 0a2cc15641
commit 6ef85d4e2d
573 changed files with 1751730 additions and 2 deletions
@@ -0,0 +1,181 @@
---@type QuestieOptions
local QuestieOptions = QuestieLoader:ImportModule("QuestieOptions")
---@type QuestieOptionsDefaults
local QuestieOptionsDefaults = QuestieLoader:ImportModule("QuestieOptionsDefaults")
---@type QuestieOptionsUtils
local QuestieOptionsUtils = QuestieLoader:ImportModule("QuestieOptionsUtils");
---@type QuestieShutUp
local QuestieShutUp = QuestieLoader:ImportModule("QuestieShutUp")
---@type l10n
local l10n = QuestieLoader:ImportModule("l10n")
QuestieOptions.tabs.social = {...}
local optionsDefaults = QuestieOptionsDefaults:Load()
local _GetAnnounceChannels
local _IsAnnounceDisabled
function QuestieOptions.tabs.social:Initialize()
return {
name = function() return l10n("Social"); end,
type = "group",
order = 10,
args = {
social_header = {
type = "header",
order = 1,
name = function() return l10n("Social Options"); end,
},
questAnnounceEvents = {
type = "group",
order = 2,
inline = true,
name = function() return l10n('Announce quest updates via chat') end,
args = {
filterQuestieAnnounce = {
type = "toggle",
order = 1,
name = function() return l10n('Questie ShutUp!'); end,
desc = function() return l10n('Remove all Questie chat messages coming from other players and disable sending your own.'); end,
disabled = function() return false end,
width = 1.7,
get = function () return Questie.db.profile.questieShutUp end,
set = function (_, value)
Questie.db.profile.questieShutUp = value
QuestieShutUp:ToggleFilters(value)
end,
},
questAnnounceChannel = {
type = "select",
order = 2,
values = _GetAnnounceChannels(),
style = 'dropdown',
disabled = function() return Questie.db.profile.questieShutUp end,
name = function() return l10n('Channels to announce in') end,
desc = function() return l10n('Announce quest updates to other players in your group'); end,
get = function() return Questie.db.profile.questAnnounceChannel; end,
set = function(_, key)
Questie.db.profile.questAnnounceChannel = key
Questie:Debug(Questie.DEBUG_DEVELOP, "Channels to announce changed to:", key)
end,
},
questAnnounceTypes = {
type = "group",
order = 3,
inline = true,
name = function() return l10n('Types of updates to announce in chat'); end,
args = {
questAnnounceItems = {
type = "toggle",
order = 1,
name = function() return l10n('Items starting a quest'); end,
desc = function() return l10n('Announce looted items that start a quest to other players'); end,
width = 1.5,
disabled = function() return _IsAnnounceDisabled(); end,
get = function () return Questie.db.profile.questAnnounceItems; end,
set = function (_, value)
Questie.db.profile.questAnnounceItems = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Items starting a quest changed to:", value)
end,
},
questAnnounceAccepted = {
type = "toggle",
order = 2,
name = function() return l10n('Quest accepted'); end,
desc = function() return l10n('Announce quest acceptance to other players'); end,
width = 1.5,
disabled = function() return _IsAnnounceDisabled() or Questie.db.profile.questieShutUp; end,
get = function () return Questie.db.profile.questAnnounceAccepted; end,
set = function (_, value)
Questie.db.profile.questAnnounceAccepted = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Quest accepted announce changed to:", value)
end,
},
questAnnounceAbandoned = {
type = "toggle",
order = 3,
name = function() return l10n('Quest abandoned'); end,
desc = function() return l10n('Announce quest abortion to other players'); end,
width = 1.5,
disabled = function() return _IsAnnounceDisabled() or Questie.db.profile.questieShutUp; end,
get = function () return Questie.db.profile.questAnnounceAbandoned; end,
set = function (_, value)
Questie.db.profile.questAnnounceAbandoned = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Quest abandoned announce changed to:", value)
end,
},
questAnnounceObjectives = {
type = "toggle",
order = 4,
name = function() return l10n('Objective completed'); end,
desc = function() return l10n('Announce completed objectives to other players'); end,
width = 1.5,
disabled = function() return _IsAnnounceDisabled() or Questie.db.profile.questieShutUp; end,
get = function () return Questie.db.profile.questAnnounceObjectives; end,
set = function (_, value)
Questie.db.profile.questAnnounceObjectives = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Objective completed announce changed to:", value)
end,
},
questAnnounceCompleted = {
type = "toggle",
order = 5,
name = function() return l10n('Quest completed'); end,
desc = function() return l10n('Announce quest completion to other players'); end,
width = 1.5,
disabled = function() return _IsAnnounceDisabled() or Questie.db.profile.questieShutUp; end,
get = function () return Questie.db.profile.questAnnounceCompleted; end,
set = function (_, value)
Questie.db.profile.questAnnounceCompleted = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Quest completed announce changed to:", value)
end,
},
},
},
shareQuestsNearby = {
type = "toggle",
order = 4,
name = function() return l10n('Share quest progress with nearby players'); end,
desc = function() return l10n("Your quest progress will be periodically sent to nearby players. Disabling this doesn't affect sharing progress with party members."); end,
disabled = function() return false end,
width = 1.7,
get = function () return not Questie.db.profile.disableYellComms end,
set = function (info, value)
Questie.db.profile.disableYellComms = not value
if not value then
QuestieLoader:ImportModule("QuestieComms"):RemoveAllRemotePlayers()
end
end,
},
printLocalMessages = {
type = "toggle",
order = 5,
name = function() return l10n('Display announcements locally when outside of a group'); end,
desc = function() return l10n("Questie will print your progress messages to chat when not in a group. Other players will NOT be able to see this."); end,
disabled = function() return Questie.db.profile.questieShutUp end,
width = 2.5,
get = function () return Questie.db.profile.questAnnounceLocally end,
set = function (_, value)
Questie.db.profile.questAnnounceLocally = value
Questie:Debug(Questie.DEBUG_DEVELOP, "Quest announce locally changed to:", value)
end,
},
},
},
}
}
end
_GetAnnounceChannels = function()
return {
['disabled'] = l10n('Disabled'),
['party'] = l10n('Party'),
['raid'] = l10n('Raid'),
['both'] = l10n('Both'),
}
end
---@return boolean
_IsAnnounceDisabled = function()
return (not Questie.db.profile.questAnnounceChannel) or (Questie.db.profile.questAnnounceChannel == "disabled")
end