182 lines
10 KiB
Lua
182 lines
10 KiB
Lua
---@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
|