You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.9 KiB

-- ------------------------------------------------------------------------------ --
-- TradeSkillMaster_Mailing --
-- http://www.curse.com/addons/wow/tradeskillmaster_mailing --
-- --
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
-- All Rights Reserved* - Detailed license information included with addon. --
-- ------------------------------------------------------------------------------ --
-- register this file with Ace Libraries
local TSM = select(2, ...)
TSM = LibStub("AceAddon-3.0"):NewAddon(TSM, "TSM_Mailing", "AceEvent-3.0", "AceConsole-3.0")
local AceGUI = LibStub("AceGUI-3.0") -- load the AceGUI libraries
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Mailing") -- loads the localization table
TSM.SPELLING_WARNING = "|cffff0000"..L["BE SURE TO SPELL THE NAME CORRECTLY!"].."|r"
local private = {lootIndex=1, recheckTime=1, allowTimerStart=true}
local savedDBDefaults = {
global = {
defaultMailTab = true,
autoCheck = true,
displayMoneyCollected = true,
sendItemsIndividually = false,
resendDelay = 1,
sendDelay = 0.5,
optionsTreeStatus = {},
openAllLeaveGold = false,
inboxMessages = true,
sendMessages = true,
defaultPage = 1,
showReloadBtn = true,
keepMailSpace = 0,
},
realm = {
deMailTarget = "",
mailTargets = {},
mailItems = {},
},
char = {
goldMailTarget = "",
goldKeepAmount = 1000000,
},
}
function TSM:OnEnable()
-- load the savedDB into TSM.db
TSM.db = LibStub:GetLibrary("AceDB-3.0"):New("AscensionTSM_MailingDB", savedDBDefaults, true)
for moduleName, module in pairs(TSM.modules) do
TSM[moduleName] = module
end
-- register this module with TSM
TSM:RegisterModule()
-- temporary check
TSMAPI:Verify(TSMAPI.IsPlayer, "You need to update your TradeSkillMaster addon. Otherwise, you may see lua errors!")
end
-- registers this module with TSM by first setting all fields and then calling TSMAPI:NewModule().
function TSM:RegisterModule()
TSM.operations = {maxOperations=12, callbackOptions="Options:Load", callbackInfo="GetOperationInfo"}
TSM.moduleAPIs = {
{key="mailItems", callback="AutoMail:SendItems"},
}
TSMAPI:NewModule(TSM)
end
TSM.operationDefaults = {
maxQtyEnabled = nil,
maxQty = 10,
target = "",
restock = nil, -- take into account how many the target already has
restockGBank = nil,
keepQty = 0,
ignorePlayer = {},
ignorerealm = {},
relationships = {},
}
function TSM:GetOperationInfo(operationName)
local operation = TSM.operations[operationName]
if not operation then return end
if operation.target == "" then return end
if operation.maxQtyEnabled then
return format(L["Mailing up to %d to %s."], operation.maxQty, operation.target)
else
return format(L["Mailing all to %s."], operation.target)
end
end