From 7c039dd0da9c19ad02e365a53bd8b40d4c007d98 Mon Sep 17 00:00:00 2001 From: Conatum Date: Fri, 9 Jun 2023 05:17:38 +0300 Subject: [PATCH] fix (tasklist): Bound checks in task hook. --- src/modules/tasklist/cog.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/modules/tasklist/cog.py b/src/modules/tasklist/cog.py index 785477d5..c5483494 100644 --- a/src/modules/tasklist/cog.py +++ b/src/modules/tasklist/cog.py @@ -151,17 +151,18 @@ class TasklistCog(LionCog): ecog = self.bot.get_cog('Economy') recent = await ecog.data.TaskTransaction.count_recent_for(member.id, member.guild.id) or 0 - max_to_reward = max(limit-recent, 0) - to_reward = unrewarded[:max_to_reward] + max_to_reward = limit - recent + if max_to_reward > 0: + to_reward = unrewarded[:max_to_reward] - count = len(to_reward) - amount = count * reward - await ecog.data.TaskTransaction.reward_completed(member.id, member.guild.id, count, amount) - await tasklist.update_tasks(*(task.taskid for task in to_reward), rewarded=True) - logger.debug( - f"Rewarded in " - f"'{amount}' coins for completing '{count}' tasks." - ) + count = len(to_reward) + amount = count * reward + await ecog.data.TaskTransaction.reward_completed(member.id, member.guild.id, count, amount) + await tasklist.update_tasks(*(task.taskid for task in to_reward), rewarded=True) + logger.debug( + f"Rewarded in " + f"'{amount}' coins for completing '{count}' tasks." + ) @cmds.hybrid_group( name=_p('group:tasklist', "tasklist")