Vapok / CommunityDKP

Preimer DKP Management Tool for WoW Classic
https://www.curseforge.com/wow/addons/communitydkp
GNU General Public License v3.0
8 stars 19 forks source link

On-time and interval bonuses not given to raiders on standby #151

Closed sarahbau closed 4 years ago

sarahbau commented 4 years ago

Describe the bug 1) Addon Version and Release: 3.2.3-r60 2) What are your DKP Modes? (see screenshots) 3) What is the issue you're seeing?

When raiders are on the standby list, they receive neither on-time/raid end bonuses, nor time interval bonuses. They do receive boss kill bonuses. This is despite the "include standby" option for raid initialization being checked. See in screenshots: Holyknight, Tigolebitys, Merlinn, and Smellulater each received boss kill dkp for C'thun and Viscidus, but are neither in their own group of bonus DKP for interval/end, nor in the group of raiders who received it.

To Reproduce Steps to reproduce the behavior:

  1. Set options to auto-award dkp, including standby, and to not require standby opt-in
  2. Initialize a raid with on-time/end/interval bonuses, with the "include standby" option checked
  3. Observe that standby members get boss kill dkp, but no bonus dkp.

Expected behavior All standby members should get both boss kill and raid start/end/interval bonuses.

Screenshots settings_1 settings_2 init_settings dkp_history

CommunityDKP Version 3.2.3-r60

Taidtuskecyh commented 4 years ago

Hi,

I think your problem is the 'Online Only' checkbox. Not sure why it applies to standby but it does. As you can see below, auto awarding works for standby list (taken from my last raid)

image

if #CommDKP:GetTable(CommDKP_Standby, true) > 0 and core.DB.DKPBonus.IncStandby then
    local i = 1
    while i <= #CommDKP:GetTable(CommDKP_Standby, true) do
        local standbyProfile = CommDKP:GetTable(CommDKP_Standby, true)[i].player;
        local isOnline = UnitIsConnected(standbyProfile);
        if strfind(tempList, standbyProfile) then
            table.remove(CommDKP:GetTable(CommDKP_Standby, true), i)
        else
            if standbyProfile and (not OnlineOnly or isOnline) then
                CommDKP:AwardPlayer(standbyProfile, amount)
                tempList = tempList..standbyProfile..",";
            end
                i=i+1
        end
    end
end