Kyle@3
|
1 --[[
|
Kyle@3
|
2 Title: Suicide Kings
|
Kyle@3
|
3 Author: Brom
|
Kyle@3
|
4 Version: 0.1
|
Kyle@3
|
5 ]]
|
Kyle@3
|
6
|
Kyle@3
|
7 local ADDON_NAME = ...
|
Kyle@3
|
8 local ADDON_VERSION = "0.1"
|
Kyle@3
|
9
|
Kyle@3
|
10 -- create addon
|
Kyle@3
|
11 SuicideKings = LibStub("AceAddon-3.0") : NewAddon("SuicideKings", "AceConsole-3.0")
|
Kyle@3
|
12
|
Kyle@3
|
13 -- library objects
|
Kyle@3
|
14 local libS = LibStub:GetLibrary("AceSerializer-3.0")
|
Kyle@3
|
15 local libC = LibStub:GetLibrary("LibCompress")
|
Kyle@3
|
16 local libCE = libC:GetAddonEncodeTable()
|
Kyle@3
|
17
|
Kyle@3
|
18 -- creating a database object
|
Kyle@3
|
19 local db;
|
Kyle@3
|
20
|
Kyle@3
|
21 --[[
|
Kyle@3
|
22 Ace3 Addon Object
|
Kyle@3
|
23 ]]
|
Kyle@3
|
24
|
Kyle@3
|
25 function SuicideKings:OnInitialize()
|
Kyle@3
|
26
|
Kyle@3
|
27 -- Greetings
|
Kyle@3
|
28 local loadingMessage = "version " .. ADDON_VERSION .. " loaded"
|
Kyle@3
|
29 local optionsMessage = "type /sk for options"
|
Kyle@3
|
30 SuicideKings:Print( loadingMessage )
|
Kyle@3
|
31 SuicideKings:Print( optionsMessage )
|
Kyle@3
|
32
|
Kyle@3
|
33 -- Slash commands
|
Kyle@3
|
34 SuicideKings:RegisterChatCommand( "sk", "SlashProcessor" )
|
Kyle@3
|
35
|
Kyle@3
|
36 -- Database defaults
|
Kyle@3
|
37 self.db = LibStub("AceDB-3.0"):New("SuicideKingsDB", { profile = {} }, 'Default')
|
Kyle@3
|
38
|
Kyle@3
|
39 -- Options
|
Kyle@3
|
40 LibStub("AceConfig-3.0"): RegisterOptionsTable("SuicideKingsOptions", {
|
Kyle@3
|
41 name = "Brohm's Suicide Kings Configuration",
|
Kyle@3
|
42 type = "group",
|
Kyle@3
|
43 args = {
|
Kyle@3
|
44 roster = {
|
Kyle@3
|
45 name = "View Roster",
|
Kyle@3
|
46 desc = "Prints the SK Roster",
|
Kyle@3
|
47 type = "execute",
|
Kyle@3
|
48 func = function() SuicideKings:PrintRoster() end,
|
Kyle@3
|
49 },
|
Kyle@3
|
50 list = {
|
Kyle@3
|
51 name = "View Lists",
|
Kyle@3
|
52 desc = "Prints the SK Lists",
|
Kyle@3
|
53 type = "execute",
|
Kyle@3
|
54 func = function() SuicideKings:PrintLists() end,
|
Kyle@3
|
55 },
|
Kyle@3
|
56
|
Kyle@3
|
57 utilities = {
|
Kyle@3
|
58 name = "utilities",
|
Kyle@3
|
59 desc = "Utility functions",
|
Kyle@3
|
60 type = "group",
|
Kyle@3
|
61 args = {
|
Kyle@3
|
62 import = {
|
Kyle@3
|
63 name = "Import from KSK",
|
Kyle@3
|
64 desc = "Import data from Konfer Suicide Kings",
|
Kyle@3
|
65 type = "execute",
|
Kyle@3
|
66 func = function() SuicideKings:ImportFromKSK() end,
|
Kyle@3
|
67 },
|
Kyle@3
|
68 reset = {
|
Kyle@3
|
69 name = "Reset Everything",
|
Kyle@3
|
70 desc = "Resets the database",
|
Kyle@3
|
71 type = "execute",
|
Kyle@3
|
72 func = function() self.db:ResetProfile() end,
|
Kyle@3
|
73 },
|
Kyle@3
|
74 }
|
Kyle@3
|
75 }
|
Kyle@3
|
76 }
|
Kyle@3
|
77 })
|
Kyle@3
|
78
|
Kyle@3
|
79 end
|
Kyle@3
|
80
|
Kyle@3
|
81 function SuicideKings:OnEnable()
|
Kyle@3
|
82 -- Do more initialization here, that really enables the use of your addon.
|
Kyle@3
|
83 -- Register Events, Hook functions, Create Frames, Get information from
|
Kyle@3
|
84 -- the game that wasn't available in OnInitialize
|
Kyle@3
|
85 end
|
Kyle@3
|
86
|
Kyle@3
|
87 function SuicideKings:OnDisable()
|
Kyle@3
|
88 -- Unhook, Unregister Events, Hide frames that you created.
|
Kyle@3
|
89 -- You would probably only use an OnDisable if you want to
|
Kyle@3
|
90 -- build a "standby" mode, or be able to toggle modules on/off.
|
Kyle@3
|
91 end
|
Kyle@3
|
92
|
Kyle@3
|
93 --[[
|
Kyle@3
|
94 Slash Handler
|
Kyle@3
|
95 ]]
|
Kyle@3
|
96
|
Kyle@3
|
97 function SuicideKings:SlashProcessor(input)
|
Kyle@3
|
98
|
Kyle@3
|
99 if not input or input:trim() == "" then
|
Kyle@3
|
100 LibStub("AceConfigDialog-3.0"):Open("SuicideKingsOptions")
|
Kyle@3
|
101 else
|
Kyle@3
|
102 LibStub("AceConfigCmd-3.0").HandleCommand(MyAddon, "sk", "SuicideKingsOptions", input)
|
Kyle@3
|
103 end
|
Kyle@3
|
104
|
Kyle@3
|
105 end
|
Kyle@3
|
106
|
Kyle@3
|
107 --[[
|
Kyle@3
|
108 Roster Functions
|
Kyle@3
|
109 ]]
|
Kyle@3
|
110
|
Kyle@3
|
111 function SuicideKings:PrintHelp()
|
Kyle@3
|
112
|
Kyle@3
|
113 SuicideKings:Print("usage: /sk")
|
Kyle@3
|
114
|
Kyle@3
|
115 end
|
Kyle@3
|
116
|
Kyle@3
|
117 function SuicideKings:PrintRoster()
|
Kyle@3
|
118
|
Kyle@3
|
119 local one = libS:Serialize( self.db.profile.roster )
|
Kyle@3
|
120 local two = LibSyncC:CompressHuffman(one)
|
Kyle@3
|
121 local final = LibSyncCE:Encode(two)
|
Kyle@3
|
122
|
Kyle@3
|
123 end
|
Kyle@3
|
124
|
Kyle@3
|
125 function SuicideKings:PrintLists()
|
Kyle@3
|
126
|
Kyle@3
|
127 end
|
Kyle@3
|
128
|