⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beancounter.lua

📁 时间太紧了
💻 LUA
字号:
--[[	BeanCounter Addon for World of Warcraft(tm).	Version: 3.5.0.0914 (Platypus)	Revision: $Id: BeanCounter.lua 844 2006-04-29 23:33:49Z aradan $	BeanCounter - trackes AH purchases and sales	License:		This program is free software; you can redistribute it and/or		modify it under the terms of the GNU General Public License		as published by the Free Software Foundation; either version 2		of the License, or (at your option) any later version.		This program is distributed in the hope that it will be useful,		but WITHOUT ANY WARRANTY; without even the implied warranty of		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the		GNU General Public License for more details.		You should have received a copy of the GNU General Public License		along with this program(see GPL.txt); if not, write to the Free Software		Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.--]]--------------------------------------------------------------------------------- Function Imports-------------------------------------------------------------------------------local debugPrint = EnhTooltip.DebugPrint;--------------------------------------------------------------------------------- Function Prototypes-------------------------------------------------------------------------------local relevel;local chatPrint;local nilSafe;--------------------------------------------------------------------------------- Version-------------------------------------------------------------------------------BeanCounter = {};BeanCounter.Version="3.5.0.0914";if (BeanCounter.Version == "<".."%version%>") then	BeanCounter.Version = "3.5.DEV";end--------------------------------------------------------------------------------- OnLoad handler for BeanCounterFrame.-------------------------------------------------------------------------------function BeanCounter_OnLoad()	debugPrint("BeanCounter_OnLoad() called");	-- Unhook some boot triggers if necessary.	-- These might not exist on initial loading or if an addon depends on BeanCounter	if (BeanCounter_CheckLoad) then		Stubby.UnregisterFunctionHook("AuctionFrame_LoadUI", BeanCounter_CheckLoad);		Stubby.UnregisterFunctionHook("CheckInbox", BeanCounter_CheckLoad);	end	if (BeanCounter_ShowNotLoaded) then		Stubby.UnregisterFunctionHook("AuctionFrame_Show", BeanCounter_ShowNotLoaded);	end	-- Register our temporary command hook with stubby	Stubby.RegisterBootCode("BeanCounter", "CommandHandler", [[		local function cmdHandler(msg)			local i,j, cmd, param = string.find(string.lower(msg), "^([^ ]+) (.+)$")			if (not cmd) then cmd = string.lower(msg) end			if (not cmd) then cmd = "" end			if (not param) then param = "" end			if (cmd == "load") then				if (param == "") then					Stubby.Print("Manually loading BeanCounter...")					LoadAddOn("BeanCounter")				elseif (param == "auctionhouse") then					Stubby.Print("Setting BeanCounter to load when this character visits the auction house or mailbox")					Stubby.SetConfig("BeanCounter", "LoadType", param)				elseif (param == "always") then					Stubby.Print("Setting BeanCounter to always load for this character")					Stubby.SetConfig("BeanCounter", "LoadType", param)					LoadAddOn("BeanCounter")				elseif (param == "never") then					Stubby.Print("Setting BeanCounter to never load automatically for this character (you may still load manually)")					Stubby.SetConfig("BeanCounter", "LoadType", param)				else					Stubby.Print("Your command was not understood")				end			else				Stubby.Print("BeanCounter is currently not loaded.")				Stubby.Print("  You may load it now by typing |cffffffff/BeanCounter load|r")				Stubby.Print("  You may also set your loading preferences for this character by using the following commands:")				Stubby.Print("  |cffffffff/BeanCounter load auctionhouse|r - BeanCounter will load when you visit the auction house or mailbox")				Stubby.Print("  |cffffffff/BeanCounter load always|r - BeanCounter will always load for this character")				Stubby.Print("  |cffffffff/BeanCounter load never|r - BeanCounter will never load automatically for this character (you may still load it manually)")			end		end		SLASH_BEANCOUNTER1 = "/beancounter"		SLASH_BEANCOUNTER2 = "/bean"		SLASH_BEANCOUNTER3 = "/bc"		SlashCmdList["BEANCOUNTER"] = cmdHandler	]]);	Stubby.RegisterBootCode("BeanCounter", "Triggers", [[		function BeanCounter_CheckLoad()			local loadType = Stubby.GetConfig("BeanCounter", "LoadType")			if (loadType == "auctionhouse" or not loadType) then				LoadAddOn("BeanCounter")			end		end		function BeanCounter_ShowNotLoaded()		end		local function onLoaded()			Stubby.UnregisterAddOnHook("Blizzard_AuctionUI", "BeanCounter")			if (not IsAddOnLoaded("BeanCounter")) then				Stubby.RegisterFunctionHook("AuctionFrame_Show", 100, BeanCounter_ShowNotLoaded)			end		end		Stubby.RegisterFunctionHook("AuctionFrame_LoadUI", 100, BeanCounter_CheckLoad)		Stubby.RegisterFunctionHook("CheckInbox", 100, BeanCounter_CheckLoad);		Stubby.RegisterAddOnHook("Blizzard_AuctionUI", "BeanCounter", onLoaded)		local loadType = Stubby.GetConfig("BeanCounter", "LoadType")		if (loadType == "always") then			LoadAddOn("BeanCounter")		else			Stubby.Print("BeanCounter is not loaded. Type /beancounter for more info.");		end	]]);		-- Register for notification of us being loaded.	this:RegisterEvent("ADDON_LOADED");end--------------------------------------------------------------------------------- Called when the BeanCounter AddOn has completed loading.-------------------------------------------------------------------------------function BeanCounter_AddOnLoaded()	debugPrint("BeanCounter_AddOnLoaded() called");	-- Blizzard's auction UI may or may not have been loaded yet.	if (IsAddOnLoaded("Blizzard_AuctionUI")) then		BeanCounter_AuctionHouseLoaded();	end	-- Initialize our various modules.	MailMonitor_OnLoad();	BidMonitor_OnLoad();	PostMonitor_OnLoad();		-- Load the realm's database.	BeanCounter.Database.Load(GetRealmName());	-- Hello world!	chatPrint(string.format("BeanCounter v%s loaded", BeanCounter.Version));end--------------------------------------------------------------------------------- Called when the Blizzard_AuctionUI has completed loading.-------------------------------------------------------------------------------function BeanCounter_AuctionHouseLoaded()	debugPrint("BeanCounter_AuctionHouseLoaded() called");	-- Find the index of the first unused AuctionHouse tab	local tabIndex = 1;	while (getglobal("AuctionFrameTab"..tabIndex) ~= nil) do		tabIndex = tabIndex + 1;	end	-- Add the Transactions tab	AuctionFrameTransactions:SetParent("AuctionFrame")	AuctionFrameTransactions:SetPoint("TOPLEFT", "AuctionFrame", "TOPLEFT", 0, 0)	relevel(AuctionFrameTransactions);	setglobal("AuctionFrameTab"..tabIndex, AuctionFrameTabTransactions);	AuctionFrameTabTransactions:SetParent("AuctionFrame")	debugPrint("AuctionFrameTab"..(tabIndex - 1));	debugPrint(getglobal("AuctionFrameTab"..(tabIndex - 1)):GetName());	AuctionFrameTabTransactions:SetPoint("TOPLEFT", getglobal("AuctionFrameTab"..(tabIndex - 1)):GetName(), "TOPRIGHT", -8, 0)	AuctionFrameTabTransactions:SetID(tabIndex);	AuctionFrameTabTransactions:Show();	-- Tell the AuctionFrame that we've added tabs	PanelTemplates_SetNumTabs(AuctionFrame, tabIndex)	-- Hook the tab click method so we know when to show our tab.	Stubby.RegisterFunctionHook("AuctionFrameTab_OnClick", 200, BeanCounter_AuctionFrameTab_OnClickHook)end--------------------------------------------------------------------------------- OnEvent handler for BeanCounterFrame.-------------------------------------------------------------------------------function BeanCounter_OnEvent(event, arg1)	debugPrint(event);		if (event == "ADDON_LOADED") then		debugPrint(arg1);		if (string.lower(arg1) == "beancounter") then			BeanCounter_AddOnLoaded();		elseif (string.lower(arg1) == "blizzard_auctionui") then			BeanCounter_AuctionHouseLoaded();		end	endend--------------------------------------------------------------------------------- OnUpdate handler for BeanCounterFrame.-------------------------------------------------------------------------------function BeanCounter_OnUpdate()	MailMonitor_OnUpdate();end--------------------------------------------------------------------------------- Hooks Blizzard's AuctionFrameTab_OnClick() method.-------------------------------------------------------------------------------function BeanCounter_AuctionFrameTab_OnClickHook(_, _, index)	if (not index) then		index = this:GetID();	end	-- Hide our tabs	AuctionFrameTransactions:Hide();		-- Show an Auctioneer tab if its the one clicked	local tab = getglobal("AuctionFrameTab"..index);	if (tab) then		if (tab:GetName() == "AuctionFrameTabTransactions") then			AuctionFrameTopLeft:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-TopLeft");			AuctionFrameTop:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-Top");			AuctionFrameTopRight:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-TopRight");			AuctionFrameBotLeft:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-BotLeft");			AuctionFrameBot:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-Bot");			AuctionFrameBotRight:SetTexture("Interface\\AuctionFrame\\UI-AuctionFrame-Browse-BotRight");			AuctionFrameTransactions:Show();		end	endend--------------------------------------------------------------------------------------------------------------------------------------------------------------function relevel(frame)	local myLevel = frame:GetFrameLevel() + 1	local children = { frame:GetChildren() }	for _,child in pairs(children) do		child:SetFrameLevel(myLevel)		relevel(child)	endend--------------------------------------------------------------------------------------------------------------------------------------------------------------function nilSafe(string)	if (string) then		return string;	end	return "<nil>";end--------------------------------------------------------------------------------------------------------------------------------------------------------------function chatPrint(...)	if (DEFAULT_CHAT_FRAME) then 		local msg = ""		for i=1, table.getn(arg) do			if i==1 then msg = arg[i]			else msg = msg.." "..arg[i]			end		end		DEFAULT_CHAT_FRAME:AddMessage(msg, 1.0, 0.35, 0.15)	endend--------------------------------------------------------------------------------- Public API-------------------------------------------------------------------------------BeanCounter.DebugPrint = debugPrint;BeanCounter.ChatPrint = chatPrint;BeanCounter.NilSafe = nilSafe;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -