crowbartools / Firebot

A powerful all-in-one bot for Twitch streamers
https://firebot.app
GNU General Public License v3.0
308 stars 86 forks source link

[Feature Request] Implement Channel Point Rewards Queue Approval / Rejection #2561

Open Lordmau5 opened 1 month ago

Lordmau5 commented 1 month ago

Describe the solution you'd like So right now Firebot only implements the EventSub event for when someone redeems a channel point reward.

However, the issue with that is that it will trigger effects even when the redemption hasn't been approved yet.

Checking the code it seems to use the onChannelRedemptionAdd hook of Twurple here: https://github.com/crowbartools/Firebot/blob/e79218410e2034470dfff12123f981e08c282f0d/src/backend/twitch-api/eventsub/eventsub-client.ts#L67

Twurple also offers one called onChannelRedemptionUpdate which will update the reward's status to either fulfilled or cancelled: https://github.com/twurple/twurple/blob/56b7d3cfa0d1f51e3f4c270803352401f233b7a6/packages/eventsub-base/src/EventSubBase.ts#L687 https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/#channelchannel_points_custom_reward_redemptionupdate

Moving over to this hook would be easy seeing as Firebot isn't using any of the methods of the old hook event (getReward or updateStatus method)

Additional context I am not sure if both would be needed to support rewards that skip Twitch's reward queue.

Additionally, to not break existing workflows, one idea might be to implement it as a restriction to confirm fulfillment: image

Alternatively, if restrictions can't be limited to just the channel point rewards, maybe adding an extra checkbox to wait for fulfillment would be an idea?

Ultimately though I feel it should be changed alltogether though, since it does seem like it's not implemented to Twitch's spec to me.

(If a reward is skipping the queue, it should trigger an effect immediately. If it is however waiting to be approved, then it should not trigger until it was approved.)

Lordmau5 commented 1 month ago

Dennis just came up with another idea

To add 2 more effect boxes to the Channel Point Reward effect.

Basically one box for Effects To Run On Approval and one for Effects To Run On Rejection or something like that

Maybe also hide the boxes when the Skip Reward Requests Queue checkbox is enabled