-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfig.lua
More file actions
156 lines (142 loc) · 5.84 KB
/
Config.lua
File metadata and controls
156 lines (142 loc) · 5.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
do
local db, altRanks, waitlistedPlayers
-- Default saved variables
local defaults = {
char = {
offlineTimeout = 300,
waitlistedPlayers = {},
altRanks = {},
}
}
-- Description: Private function to check if an alt rank already exists
-- Parameters: Rank number counting up from 0
-- Created: 01/05/2011
local function HasAltRank(self, rankNum)
for idx,rank in ipairs(altRanks) do
if rank == rankNum then
return true
end
end
return false
end
-- Description: Add an alt rank to the list
-- Parameters: addRank - can be string or number
-- Modified: 01/05/2011
local function AddAltRank(self, addRank)
-- Check if the rank is a number
if tonumber(addRank) ~= nil then
-- Ensure that rank isn't already in there
addRank = tonumber(addRank)
local rankName = GuildControlGetRankName(addRank+1)
if self.HasAltRank(self, addRank) then
EPGPWaitlist:Print('Rank ' .. rankName ..'(' .. addRank .. ') already exists in the list of alt ranks.')
return
end
tinsert(altRanks, addRank)
EPGPWaitlist:Print('Rank ' .. rankName ..'(' .. addRank .. ') has been added to list of alt ranks.')
return
else
-- Assume addRank is a string and look up the rank name
local numRanks = GuildControlGetNumRanks()
local rankName
addRank = addRank:lower()
for rankNum = 1, numRanks do
rankName = GuildControlGetRankName(rankNum)
if rankName:lower() == addRank then
-- Insert rankNum-1 because GetGuildRosterInfo() will return rank ID
-- counting up from 0, where as GuildControlGetRankName returns
-- counting up from 1.
if self.HasAltRank(self, rankNum-1) then
EPGPWaitlist:Print('Rank ' .. rankName .. '(' .. rankNum-1 .. ') already exists in the list of alt ranks.')
return
end
tinsert(altRanks, rankNum-1)
EPGPWaitlist:Print('Rank ' .. rankName .. '(' .. rankNum-1 .. ') has been added to list of alt ranks.')
return -- No need to proceed looping
end
end
end
-- At this point, that rank does not exist
EPGPWaitlist:Print('Rank ' .. addRank .. ' does not exist.')
end
-- Description: Remove an alt rank from the list
-- Parameters: removeRank - can be string or number
-- Modified: 01/05/2011
local function RemoveAltRank(self, removeRank)
local rankNum, rankName
-- Check if the rank is a string
if tonumber(removeRank) == nil then
removeRank = removeRank:lower()
-- Get the correspondong rank number
local numRanks = GuildControlGetNumRanks()
for i = 1, numRanks do
rankName = GuildControlGetRankName(i)
if rankName:lower() == removeRank then
rankNum = i-1
break
end
end
else
rankNum = tonumber(removeRank)
rankName = GuildControlGetRankName(rankNum+1)
end
-- Check if we have a rank number
if rankNum == nil then
EPGPWaitlist:Print('Rank ' .. removeRank .. ' does not exist.')
return
end
-- Remove the corresponding rank
for idx,rank in ipairs(altRanks) do
if rank == rankNum then
EPGPWaitlist:Print('Rank ' .. rankName .. '(' .. rankNum .. ') has been removed from the list of alt ranks.')
tremove(altRanks, idx)
return
end
end
EPGPWaitlist:Print('Rank ' .. rankName .. '(' .. rankNum .. ') is not in the list of alt ranks.')
end
-- Description: Checks if a rank is in the list of alt ranks
-- Parameters: searchRank - rank number counting up from 0
local function IsAltRank(self, searchRank)
for idx,rank in ipairs(altRanks) do
if rank == searchRank then
return true
end
end
return false
end
-- Description: Configure the offline timeout
-- Parameters: timeout - number in seconds
local function SetOfflineTimeout(self, timeout)
if(type(timeout) ~= "number") then
EPGPWaitlist:Print('Offline timeout value must be numeric! Defaulting to 300 second.')
return
end
db.char.offlineTimeout = timeout
end
function EPGPWaitlist:Config()
-- Get the database variables
-- TODO: Do this on a guild basis instead of character
-- Modified: 09/21/2012
db = LibStub("AceDB-3.0"):New("EPGPWaitlistDB", defaults)
altRanks = db.char.altRanks
waitlistedPlayers = db.char.waitlistedPlayers
if(#altRanks == 0) then
EPGPWaitlist:Print("You have not configured an alt rank yet, please do so with /ewl addaltrank <rank>")
end
-- Check that the stored offlineTimeout variable is numeric
if(type(db.char.offlineTimeout) ~= "number") then
db.char.offlineTimeout = 300
end
local obj = {
HasAltRank = HasAltRank,
AddAltRank = AddAltRank,
RemoveAltRank = RemoveAltRank,
IsAltRank = IsAltRank,
SetOfflineTimeout = SetOfflineTimeout,
offlineTimeout = db.char.offlineTimeout,
waitlistedPlayers = waitlistedPlayers
}
return obj
end
end