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.
61 lines
2.5 KiB
61 lines
2.5 KiB
local Postal = LibStub("AceAddon-3.0"):GetAddon("Postal")
|
|
local Postal_Wire = Postal:NewModule("Wire", "AceHook-3.0")
|
|
local L = LibStub("AceLocale-3.0"):GetLocale("Postal")
|
|
Postal_Wire.description = L["Set subject field to value of coins sent if subject is blank."]
|
|
|
|
local g, s, c
|
|
g = "^%["..GOLD_AMOUNT.." "..SILVER_AMOUNT.." "..COPPER_AMOUNT.."%]$"
|
|
s = "^%["..SILVER_AMOUNT.." "..COPPER_AMOUNT.."%]$"
|
|
c = "^%["..COPPER_AMOUNT.."%]$"
|
|
if GetLocale() == "ruRU" then
|
|
--Because ruRU has these escaped strings which can't be in mail subjects.
|
|
--COPPER_AMOUNT = "%d |4медная монета:медные монеты:медных монет;"; -- Lowest value coin denomination
|
|
--SILVER_AMOUNT = "%d |4серебряная:серебряные:серебряных;"; -- Mid value coin denomination
|
|
--GOLD_AMOUNT = "%d |4золотая:золотые:золотых;"; -- Highest value coin denomination
|
|
g = "^%[%d+з %d+с %d+м%]$"
|
|
s = "^%[%d+с %d+м%]$"
|
|
c = "^%[%d+м%]$"
|
|
end
|
|
g = gsub(g, "%%d", "%%d+")
|
|
s = gsub(s, "%%d", "%%d+")
|
|
c = gsub(c, "%%d", "%%d+")
|
|
|
|
function Postal_Wire:OnEnable()
|
|
-- Secure hook so that it calls the original function
|
|
self:SecureHook(SendMailMoney, "onValueChangedFunc")
|
|
end
|
|
|
|
-- Disabling modules unregisters all events/hook automatically
|
|
--function Postal_Wire:OnDisable()
|
|
--end
|
|
|
|
function Postal_Wire:onValueChangedFunc()
|
|
local subject = SendMailSubjectEditBox:GetText()
|
|
if subject == "" or subject:find(g) or subject:find(s) or subject:find(c) then
|
|
local money = MoneyInputFrame_GetCopper(SendMailMoney)
|
|
if money and money > 0 then
|
|
local gold = floor(money / 10000)
|
|
local silver = floor((money - gold * 10000) / 100)
|
|
local copper = mod(money, 100)
|
|
if GetLocale() == "ruRU" then
|
|
if gold > 0 then
|
|
SendMailSubjectEditBox:SetText(format("[%d+з %d+с %d+м]", gold, silver, copper))
|
|
elseif silver > 0 then
|
|
SendMailSubjectEditBox:SetText(format("[%d+с %d+м]", silver, copper))
|
|
else
|
|
SendMailSubjectEditBox:SetText(format("[%d+м]", copper))
|
|
end
|
|
else
|
|
if gold > 0 then
|
|
SendMailSubjectEditBox:SetText(format("["..GOLD_AMOUNT.." "..SILVER_AMOUNT.." "..COPPER_AMOUNT.."]", gold, silver, copper))
|
|
elseif silver > 0 then
|
|
SendMailSubjectEditBox:SetText(format("["..SILVER_AMOUNT.." "..COPPER_AMOUNT.."]", silver, copper))
|
|
else
|
|
SendMailSubjectEditBox:SetText(format("["..COPPER_AMOUNT.."]", copper))
|
|
end
|
|
end
|
|
else
|
|
SendMailSubjectEditBox:SetText("")
|
|
end
|
|
end
|
|
end
|
|
|