add a sanity check for raid level characters to avoid inadvertently assigning EP to low levels (eg. summoning locks etc)

fix a logic error for fractional PR on standings / bid tablets where it was doing an alphabetic instead of numeric sort
fix minimap icon position not saving for people without Fubar or with icon attached to minimap
use the minimum raid level to avoid set main popups appearing in low level guilded characters
This commit is contained in:
Road-block
2018-10-31 00:09:10 +02:00
parent bc91839370
commit bac4ac5fba
3 changed files with 52 additions and 21 deletions
+6 -5
View File
@@ -6,14 +6,15 @@ shootyepgp requires some modifications to guild permissions for officer notes by
### Version 3.x (current)
- officer notes must be set to visible by all and editable **only** by the EPGP admins (eg. officer rank+)
- public notes are free to be used for anything
- public notes are not in use by the addon
### _Version 2.x (deprecated)_
#### _Version 2.x (deprecated)_
- _public and officer notes must be set to visible by all._
- _both public and officer notes **must** be editable **only** by the EPGP admins (eg. officer rank+)_
## tips
Creating a new chatframe (right-click > create new window on chat tab) and naming it `debug` (capitalization doesn't matter) will move the bulk of information messages there and out of your default chatframe.
Create a new chatframe (right-click > create new window on chat tab) and name it `debug` (capitalization doesn't matter)
Most of the information messages will now print on that frame and not clutter your default chatframe.
## usage
Right-click on minimap or FuBar shootyepgp icon will show all available settings.
@@ -27,8 +28,8 @@ The standings window can also be toggled with **/shooty show** chat command.
- Item GP prices on item tooltips (all)
- Export standings to csv (all)
- Configurable EPGP Decay (admin)
- Configurable Offspec discount (all)
- Guild Progression multiplier (all)
- Configurable Offspec discount (admin)
- Guild Progression multiplier (admin)
- Reserves - *standby list EP* - with alts support (admin and all)
Addon has been designed so that basic member functionality is usable even without the addon.
+43 -13
View File
@@ -15,6 +15,7 @@ sepgp.VARS = {
decay = 0.9,
max = 1000,
timeout = 60,
minlevel = 55,
maxloglines = 500,
prefix = "SEPGP_PREFIX",
reservechan = "Reserves",
@@ -451,11 +452,14 @@ function sepgp:OnInitialize() -- ADDON_LOADED (1) unless LoD
if sepgp_log == nil then sepgp_log = {} end
if sepgp_looted == nil then sepgp_looted = {} end
if sepgp_debug == nil then sepgp_debug = {} end
self:RegisterDB("sepgp_fubar")
self:RegisterDefaults("char",{})
--table.insert(sepgp_debug,{[date("%b/%d %H:%M:%S")]="OnInitialize"})
end
function sepgp:OnEnable() -- PLAYER_LOGIN (2)
--table.insert(sepgp_debug,{[date("%b/%d %H:%M:%S")]="OnEnable"})
sepgp._playerLevel = UnitLevel("player")
sepgp.extratip = (sepgp.extratip) or CreateFrame("GameTooltip","shootyepgp_tooltip",UIParent,"GameTooltipTemplate")
sepgp._versionString = GetAddOnMetadata("shootyepgp","Version")
sepgp._websiteString = GetAddOnMetadata("shootyepgp","X-Website")
@@ -483,6 +487,19 @@ function sepgp:OnEnable() -- PLAYER_LOGIN (2)
sepgp:SetRefresh(true)
sepgp:testLootPrompt()
end)
if sepgp._playerLevel and sepgp._playerLevel < MAX_PLAYER_LEVEL then
self:RegisterEvent("PLAYER_LEVEL_UP", function()
if (arg1) then
sepgp._playerLevel = tonumber(arg1)
if sepgp._playerLevel == MAX_PLAYER_LEVEL then
sepgp:UnregisterEvent("PLAYER_LEVEL_UP")
end
if sepgp._playerLevel and sepgp._playerLevel >= sepgp.VARS.minlevel then
sepgp:testMain()
end
end
end)
end
self:RegisterEvent("CHAT_MSG_RAID","captureLootCall")
self:RegisterEvent("CHAT_MSG_RAID_LEADER","captureLootCall")
self:RegisterEvent("CHAT_MSG_RAID_WARNING","captureLootCall")
@@ -518,12 +535,8 @@ function sepgp:AceEvent_FullyInitialized() -- SYNTHETIC EVENT, later than PLAYER
break
end
end
if (sepgp_main == nil) or (sepgp_main == "") then
if (IsInGuild()) then
StaticPopup_Show("SHOOTY_EPGP_SET_MAIN")
end
end
self:testMain()
local delay = 2
if self:IsEventRegistered("AceEvent_FullyInitialized") then
@@ -1250,7 +1263,9 @@ function sepgp:award_raid_ep(ep) -- awards ep to raid members in zone
if GetNumRaidMembers()>0 then
for i = 1, GetNumRaidMembers(true) do
local name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(i)
self:givename_ep(name,ep)
if level >= sepgp.VARS.minlevel then
self:givename_ep(name,ep)
end
end
self:simpleSay(string.format(L["Giving %d ep to all raidmembers"],ep))
self:addToLog(string.format(L["Giving %d ep to all raidmembers"],ep))
@@ -1440,10 +1455,13 @@ end
---------
-- Menu
---------
sepgp.hasIcon = "Interface\\PetitionFrame\\GuildCharter-Icon"
sepgp.title = "shootyepgp"
sepgp.defaultMinimapPosition = 180
sepgp.defaultPosition = "RIGHT"
sepgp.cannotDetachTooltip = true
sepgp.tooltipHiddenWhenEmpty = false
sepgp.hasIcon = "Interface\\PetitionFrame\\GuildCharter-Icon"
sepgp.independentProfile = true
function sepgp:OnTooltipUpdate()
local hint = L["|cffffff00Click|r to toggle Standings.%s \n|cffffff00Right-Click|r for Options."]
@@ -1492,8 +1510,9 @@ function sepgp:buildRosterTable()
end
sepgp.alts = {}
for i = 1, numGuildMembers do
local member_name,_,_,_,class,_,note,officernote,_,_ = GetGuildRosterInfo(i)
local member_name,_,_,level,class,_,note,officernote,_,_ = GetGuildRosterInfo(i)
local main, main_class, main_rank = self:parseAlt(member_name,officernote)
local is_raid_level = tonumber(level) and level >= sepgp.VARS.minlevel
if (main) then
if ((self._playerName) and (name == self._playerName)) then
if (not sepgp_main) or (sepgp_main and sepgp_main ~= main) then
@@ -1506,11 +1525,13 @@ function sepgp:buildRosterTable()
sepgp.alts[main][member_name] = class
end
if (sepgp_raidonly) and next(r) then
if r[member_name] then
if r[member_name] and is_raid_level then
table.insert(g,{["name"]=member_name,["class"]=class})
end
else
table.insert(g,{["name"]=member_name,["class"]=class})
if is_raid_level then
table.insert(g,{["name"]=member_name,["class"]=class})
end
end
end
return g
@@ -2074,7 +2095,8 @@ end
function sepgp:verifyGuildMember(name,silent)
for i=1,GetNumGuildMembers(1) do
local g_name, g_rank, g_rankIndex, g_level, g_class, g_zone, g_note, g_officernote, g_online = GetGuildRosterInfo(i)
if (string.lower(name) == string.lower(g_name)) and (tonumber(g_level) == MAX_PLAYER_LEVEL) then
if (string.lower(name) == string.lower(g_name)) and (tonumber(g_level) >= sepgp.VARS.minlevel) then
-- == MAX_PLAYER_LEVEL]]
return g_name, g_class, g_rank, g_officernote
end
end
@@ -2102,6 +2124,14 @@ function sepgp:lootMaster()
end
end
function sepgp:testMain()
if (sepgp_main == nil) or (sepgp_main == "") then
if (IsInGuild()) then
StaticPopup_Show("SHOOTY_EPGP_SET_MAIN")
end
end
end
function sepgp:make_escable(framename,operation)
local found
for i,f in ipairs(UISpecialFrames) do
@@ -2396,5 +2426,5 @@ function sepgp:EasyMenu(menuList, menuFrame, anchor, x, y, displayMode, level)
ToggleDropDownMenu(1, nil, menuFrame, anchor, x, y)
end
-- GLOBALS: sepgp_saychannel,sepgp_groupbyclass,sepgp_groupbyarmor,sepgp_groupbyrole,sepgp_raidonly,sepgp_decay,sepgp_minep,sepgp_reservechannel,sepgp_main,sepgp_progress,sepgp_discount,sepgp_altspool,sepgp_altpercent,sepgp_log,sepgp_dbver,sepgp_looted,sepgp_debug
-- GLOBALS: sepgp_saychannel,sepgp_groupbyclass,sepgp_groupbyarmor,sepgp_groupbyrole,sepgp_raidonly,sepgp_decay,sepgp_minep,sepgp_reservechannel,sepgp_main,sepgp_progress,sepgp_discount,sepgp_altspool,sepgp_altpercent,sepgp_log,sepgp_dbver,sepgp_looted,sepgp_debug,sepgp_fubar
-- GLOBALS: sepgp,sepgp_prices,sepgp_standings,sepgp_bids,sepgp_loot,sepgp_reserves,sepgp_alts,sepgp_logs
+3 -3
View File
@@ -7,10 +7,10 @@
## X-Website: https://github.com/Road-block/shootyepgp/releases/latest
## X-Category: Guild
## X-Credits: shooty, Qcat(zhCN)
## Version: 3.50.5
## X-Alpha: 3.60
## Version: 3.60
## X-Alpha:
## OptionalDeps: Ace2
## SavedVariables: sepgp_saychannel, sepgp_groupbyclass, sepgp_groupbyarmor, sepgp_groupbyrole, sepgp_raidonly, sepgp_dbver, sepgp_debug
## SavedVariables: sepgp_saychannel, sepgp_groupbyclass, sepgp_groupbyarmor, sepgp_groupbyrole, sepgp_raidonly, sepgp_dbver, sepgp_debug, sepgp_fubar
## SavedVariablesPerCharacter: sepgp_main, sepgp_log, sepgp_looted, sepgp_decay, sepgp_minep, sepgp_reservechannel, sepgp_progress, sepgp_discount, sepgp_altspool, sepgp_altpercent
Libs\AceLibrary\AceLibrary.lua