aboutsummaryrefslogtreecommitdiff
path: root/discord/ext/tasks
diff options
context:
space:
mode:
authorSteve C <[email protected]>2020-05-06 15:35:41 -0400
committerRapptz <[email protected]>2020-05-07 02:30:24 -0400
commit0fd5eca0d57c3dc49c84ebd0222288ea323b137b (patch)
treeeea1ff84ac8555273cb56b52ca4e791b611bca57 /discord/ext/tasks
parentfix HTTPException explanation in Guild.fetch_member docs (diff)
downloaddiscord.py-0fd5eca0d57c3dc49c84ebd0222288ea323b137b.tar.xz
discord.py-0fd5eca0d57c3dc49c84ebd0222288ea323b137b.zip
[tasks] Fix tasks decorators being discarded
At this moment, when a task seems to be first loaded, it immediately throws away the decorators you give it, and just generates a new instance of itself. In your cog's `__init__`, once you do `self.my_task.start()`, the Loop is remade when it gets to `self.my_task` before executing the `start` function. The original Loop that the cog starts with is where the decorated values are. This fixes that.
Diffstat (limited to 'discord/ext/tasks')
-rw-r--r--discord/ext/tasks/__init__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/discord/ext/tasks/__init__.py b/discord/ext/tasks/__init__.py
index c95d2853..36cfe810 100644
--- a/discord/ext/tasks/__init__.py
+++ b/discord/ext/tasks/__init__.py
@@ -109,6 +109,9 @@ class Loop:
copy = Loop(self.coro, seconds=self.seconds, hours=self.hours, minutes=self.minutes,
count=self.count, reconnect=self.reconnect, loop=self.loop)
copy._injected = obj
+ copy._before_loop = self._before_loop
+ copy._after_loop = self._after_loop
+ copy._error = self._error
setattr(obj, self.coro.__name__, copy)
return copy