local compost = CompostLib:GetInstance("compost-1") local BagBoy2Rules = BagBoy2:NewModule("BagBoy2Rules", "AceDB-2.0", "AceConsole-2.0") BagBoy2Rules:RegisterDB("BagBoy2Rules", "BagBoy2CharRules") function BagBoy2Rules:OnInitialize() self.super.OnInitialize(self) self.RulesSource = self.db.profile.RulesSource -- RulesSource["rule name"] = { func = "function(item) return true/false end", result = action code } self.RulesOrder = self.db.char.RulesOrder -- RulesOrder[index] = name = "rule name" self.Rules = compost:GetTable() -- Rules["rule name"] = loadstring("return "..RulesSource["rule name"]) self.RulesCache = compost:GetTable() -- RulesCache["item!enchant"] = action code self.RulesCache.app = self setmetatable(self.Items, { __index = self.RulesCache }) setmetatable(self.RulesCache, { __index = self.processRules }) self.ItemData = self:GetItemCache() self:Print("%s initialized!", tostring(self)) end function BagBoy2Rules:OnEnable() self:BuildRules() self:Print("%s enabled!", tostring(self)) end