@@ -154,7 +154,9 @@ async def run(self) -> typing.Optional[Message]:
154
154
await self .view .wait ()
155
155
await self .close (delete = False )
156
156
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 ]:
158
160
"""
159
161
Closes the pagination session.
160
162
@@ -170,17 +172,22 @@ async def close(self, delete: bool = True) -> typing.Optional[Message]:
170
172
If `delete` is `True`.
171
173
"""
172
174
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
+
173
183
self .running = False
174
184
175
185
self .view .stop ()
176
186
if delete :
177
- await self . base .delete ()
187
+ await message .delete ()
178
188
else :
179
189
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 )
184
191
185
192
186
193
class PaginatorView (View ):
@@ -210,8 +217,7 @@ def __init__(self, handler: PaginatorSession, *args, **kwargs):
210
217
211
218
@discord .ui .button (label = "Stop" , style = ButtonStyle .danger )
212
219
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 )
215
221
216
222
def fill_items (self ):
217
223
if self .handler .select_menu is not None :
@@ -235,7 +241,9 @@ def fill_items(self):
235
241
async def interaction_check (self , interaction : Interaction ):
236
242
"""Only allow the message author to interact"""
237
243
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
+ )
239
247
return False
240
248
return True
241
249
0 commit comments