v9.7.2: Ebonhold Database integration and core logic refinements
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user