Skip to content

Commit 03ed1a7

Browse files
committed
fix: prevent autoclosing when close has been cancelled.
This solves the thread from autoclosing if the closure has been cancelled earlier in a thread.
1 parent 2fb83b0 commit 03ed1a7

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

core/thread.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def __init__(
6767
self.wait_tasks = []
6868
self.close_task = None
6969
self.auto_close_task = None
70+
self.auto_close_cancelled = False # Track if auto-close was explicitly cancelled
7071
self._cancelled = False
7172
self._dm_menu_msg_id = None
7273
self._dm_menu_channel_id = None
@@ -1078,6 +1079,7 @@ async def close(
10781079
self.auto_close_task = task
10791080
else:
10801081
self.close_task = task
1082+
self.auto_close_cancelled = False # Reset flag when manually closing
10811083
else:
10821084
await self._close(closer, silent, delete_channel, message)
10831085

@@ -1278,6 +1280,7 @@ async def cancel_closure(self, auto_close: bool = False, all: bool = False) -> N
12781280
if self.auto_close_task is not None and (auto_close or all):
12791281
self.auto_close_task.cancel()
12801282
self.auto_close_task = None
1283+
self.auto_close_cancelled = True # Mark auto-close as explicitly cancelled
12811284

12821285
to_update = self.bot.config["closures"].pop(str(self.id), None)
12831286
if to_update is not None:
@@ -1810,7 +1813,9 @@ async def send(
18101813
return await destination.send(embed=embed)
18111814

18121815
if not note and from_mod:
1813-
self.bot.loop.create_task(self._restart_close_timer()) # Start or restart thread auto close
1816+
# Only restart auto-close if it wasn't explicitly cancelled
1817+
if not self.auto_close_cancelled:
1818+
self.bot.loop.create_task(self._restart_close_timer()) # Start or restart thread auto close
18141819
elif not note and not from_mod:
18151820
await self.cancel_closure(all=True)
18161821

0 commit comments

Comments
 (0)