Mercurial > wow > breuesk
comparison Core.lua @ 86:22b37c800bc4
Database and comm versioning
| author | John@Yosemite-PC |
|---|---|
| date | Sun, 15 Apr 2012 14:42:14 -0400 |
| parents | f938ec08d5a6 |
| children | 5ade79caeece |
comparison
equal
deleted
inserted
replaced
| 85:f938ec08d5a6 | 86:22b37c800bc4 |
|---|---|
| 4 -- (*) lists fully functional (/script interface) | 4 -- (*) lists fully functional (/script interface) |
| 5 -- (*) lists single-user functional via command line interface | 5 -- (*) lists single-user functional via command line interface |
| 6 -- (*) all actions should reference the player list rather than player names | 6 -- (*) all actions should reference the player list rather than player names |
| 7 -- (?) player entries should persist as long as any list or change references | 7 -- (?) player entries should persist as long as any list or change references |
| 8 -- (*) lists store number slots rather than flat indexing | 8 -- (*) lists store number slots rather than flat indexing |
| 9 -- ( ) database and comm versioning | 9 -- (*) database and comm versioning |
| 10 -- (_) limited communication - everyone trusts the loot master | 10 -- (_) limited communication - everyone trusts the loot master |
| 11 -- (*) single user + admin gui (manual suicides) | 11 -- (*) single user + admin gui (manual suicides) |
| 12 -- (*) single user + admin gui (master loot) | 12 -- (*) single user + admin gui (master loot) |
| 13 -- (*) whisper UI | 13 -- (*) whisper UI |
| 14 -- (_) communication and list merging/trimming | 14 -- (_) communication and list merging/trimming |
| 36 -- 2) a.x === a["x"] | 36 -- 2) a.x === a["x"] |
| 37 -- 3) a["1"] =/= a[1] | 37 -- 3) a["1"] =/= a[1] |
| 38 -- 4) table.remove() works ok if reverse iterating, terrible at anything else | 38 -- 4) table.remove() works ok if reverse iterating, terrible at anything else |
| 39 -- 5) pairs() does not have a guaranteed iteration order | 39 -- 5) pairs() does not have a guaranteed iteration order |
| 40 | 40 |
| 41 dbversion = 1 | |
| 42 commversion = 1 | |
| 43 | |
| 41 function OnInitialize() | 44 function OnInitialize() |
| 42 | 45 |
| 43 debug = true | 46 debug = true |
| 44 | 47 |
| 45 db = _G.LibStub("AceDB-3.0"):New("BskDB", defaults, "Default") | 48 db = _G.LibStub("AceDB-3.0"):New("BskDB", defaults, "Default") |
| 47 options.args.profile = _G.LibStub("AceDBOptions-3.0"):GetOptionsTable(db) | 50 options.args.profile = _G.LibStub("AceDBOptions-3.0"):GetOptionsTable(db) |
| 48 _G.LibStub("AceConfig-3.0"):RegisterOptionsTable("bsk", options) | 51 _G.LibStub("AceConfig-3.0"):RegisterOptionsTable("bsk", options) |
| 49 --optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("bsk", "bsk") | 52 --optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("bsk", "bsk") |
| 50 | 53 |
| 51 admin = db.profile.admin | 54 admin = db.profile.admin |
| 55 if not db.profile.dbversion or db.profile.dbversion < dbversion then | |
| 56 UpgradeDB() | |
| 57 end | |
| 52 | 58 |
| 53 local HandlePassThrough = function(...) HandleCommand(...) end | 59 local HandlePassThrough = function(...) HandleCommand(...) end |
| 54 bsk:RegisterChatCommand("bsk", HandlePassThrough) | 60 bsk:RegisterChatCommand("bsk", HandlePassThrough) |
| 55 bsk:OnInitializeSetStaticData() | 61 bsk:OnInitializeSetStaticData() |
| 56 InitializeComm() | 62 InitializeComm() |
| 207 changes = {}, | 213 changes = {}, |
| 208 lists = {} | 214 lists = {} |
| 209 } | 215 } |
| 210 } | 216 } |
| 211 | 217 |
| 218 function UpgradeDB() | |
| 219 local mydbver = db.profile.dbversion or 0 | |
| 220 | |
| 221 if mydbver == 0 then -- difference between 0 and 1 is whether this field is present | |
| 222 db.profile.dbversion = 1 | |
| 223 mydbver = 1 | |
| 224 end | |
| 225 | |
| 226 | |
| 227 end |
