Postal/Modules/Wire.lua

62 lignes
2.4 KiB
Lua
Brut Lien permanent Annotations Historique

Ce fichier contient des caractères Unicode ambigus.

Ce fichier contient des caractères Unicode qui peuvent être confondus avec d'autres caractères. Si vous pensez que c'est intentionnel, vous pouvez ignorer cet avertissement. Utilisez le bouton Échappe pour les dévoiler.

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