Skip to content

Commit c16ff26

Browse files
committed
Optimise Stop pagination
1 parent f7a882a commit c16ff26

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

core/paginator.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ async def run(self) -> typing.Optional[Message]:
154154
await self.view.wait()
155155
await self.close(delete=False)
156156

157-
async def close(self, delete: bool = True) -> typing.Optional[Message]:
157+
async def close(
158+
self, delete: bool = True, *, interaction: Interaction = None
159+
) -> typing.Optional[Message]:
158160
"""
159161
Closes the pagination session.
160162
@@ -170,17 +172,22 @@ async def close(self, delete: bool = True) -> typing.Optional[Message]:
170172
If `delete` is `True`.
171173
"""
172174
if self.running:
175+
sent_emoji, _ = await self.ctx.bot.retrieve_emoji()
176+
await self.ctx.bot.add_reaction(self.ctx.message, sent_emoji)
177+
178+
if interaction:
179+
message = interaction.message
180+
else:
181+
message = self.base
182+
173183
self.running = False
174184

175185
self.view.stop()
176186
if delete:
177-
await self.base.delete()
187+
await message.delete()
178188
else:
179189
self.view.clear_items()
180-
await self.base.edit(view=self.view)
181-
182-
sent_emoji, _ = await self.ctx.bot.retrieve_emoji()
183-
await self.ctx.bot.add_reaction(self.ctx.message, sent_emoji)
190+
await message.edit(view=self.view)
184191

185192

186193
class PaginatorView(View):
@@ -210,8 +217,7 @@ def __init__(self, handler: PaginatorSession, *args, **kwargs):
210217

211218
@discord.ui.button(label="Stop", style=ButtonStyle.danger)
212219
async def stop_button(self, button: Button, interaction: Interaction):
213-
await interaction.response.edit_message(view=self)
214-
await self.handler.close()
220+
await self.handler.close(interaction=interaction)
215221

216222
def fill_items(self):
217223
if self.handler.select_menu is not None:
@@ -235,7 +241,9 @@ def fill_items(self):
235241
async def interaction_check(self, interaction: Interaction):
236242
"""Only allow the message author to interact"""
237243
if interaction.user != self.handler.ctx.author:
238-
await interaction.response.send_message("Only the original author can control this!", ephemeral=True)
244+
await interaction.response.send_message(
245+
"Only the original author can control this!", ephemeral=True
246+
)
239247
return False
240248
return True
241249

0 commit comments

Comments
 (0)