start loop in init, use before loop, waiting on bot ready, to set up needed data.
This commit is contained in:
+13
-12
@@ -21,18 +21,8 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
|||||||
self.bot = bot
|
self.bot = bot
|
||||||
self.current_election = None
|
self.current_election = None
|
||||||
|
|
||||||
@commands.Cog.listener()
|
# pylint doesn't recognize that daily_loop is subclassed from tasks.loop.
|
||||||
async def on_ready(self):
|
self.daily_loop.start() # pylint: disable=no-member
|
||||||
"""
|
|
||||||
Starts the loop when bot is ready.
|
|
||||||
"""
|
|
||||||
await self.bot.wait_until_ready()
|
|
||||||
|
|
||||||
# wait until the discord bot is all ready. Bot needs to know guilds.
|
|
||||||
self.current_election = self.get_current_cycle()
|
|
||||||
|
|
||||||
# pylint doesn't recognize that periodic_update_guild_data is subclassed from tasks.loop.
|
|
||||||
await self.daily_loop.start() # pylint: disable=no-member
|
|
||||||
|
|
||||||
@tasks.loop(time=time(hour=0, tzinfo=timezone("GMT")))
|
@tasks.loop(time=time(hour=0, tzinfo=timezone("GMT")))
|
||||||
async def daily_loop(self):
|
async def daily_loop(self):
|
||||||
@@ -50,6 +40,17 @@ class DailyLoop(commands.Cog, name="Daily Loop"):
|
|||||||
if self.current_election.election_over:
|
if self.current_election.election_over:
|
||||||
self.current_election = None
|
self.current_election = None
|
||||||
|
|
||||||
|
@daily_loop.before_loop
|
||||||
|
async def before_loop(self):
|
||||||
|
"""
|
||||||
|
Actions run before the loop starts. Want to wait for bot to be ready and get the current cycle.
|
||||||
|
"""
|
||||||
|
|
||||||
|
await self.bot.wait_until_ready()
|
||||||
|
|
||||||
|
# Bot needs to know guilds to get the current cycle.
|
||||||
|
self.current_election = self.get_current_cycle()
|
||||||
|
|
||||||
def get_current_cycle(self) -> ElectionCycle:
|
def get_current_cycle(self) -> ElectionCycle:
|
||||||
"""
|
"""
|
||||||
Creates an object for the current election cycle if one is active. An election is considered active
|
Creates an object for the current election cycle if one is active. An election is considered active
|
||||||
|
|||||||
Reference in New Issue
Block a user